当前位置:   article > 正文

Python 渗透测试:利用SQLmap API接口进行批量的SQL注入检测.(SRC挖掘)_sqlmapapi

sqlmapapi

目录

SQL注入检测步骤:

(1)创建新任务记录任务ID.

(2)设置任务ID的配置信息.(扫描信息)

(3)启动对应ID的扫描任务.

(4)获取对应ID的扫描状态.

(5)查看扫描的结果.

SQL注入批量检测步骤:

(1)前提:需要在文件输入扫描的URL.

(2)打开文件,是可以 查看有没有注入点. 


免责声明:

严禁利用本文章中所提到的工具和技术进行非法攻击,否则后果自负,上传者不承担任何责任。


SQL注入检测步骤:

(1)创建新任务记录任务ID.

1.  在 SQLmap 文件下打开命令行执行.

python sqlmapapi.py -s

2. 在 PyCharm 代码里,创建新任务记录任务ID.

  1. import requests
  2. import json
  3. #创建任务ID
  4. task_new_url='http://127.0.0.1:8775/task/new' #创建任务的URL地址(上面执行文件时的IP地址),在IP地址后面加//task/new.
  5. resp=requests.get(task_new_url) #使用get方式请求.
  6. task_id=resp.json()['taskid'] #打印json格式下的taskid数据.
  7. print(task_id)


(2)设置任务ID的配置信息.(扫描信息)

  1. data={ #输入扫描的地址.
  2. 'url':'http://192.168.43.53:801/sql/Less-1/?id=1'
  3. }
  4. headers={ #数据包里的数据.
  5. 'Content-Type':'application/json'
  6. }
  7. task_set_url='http://127.0.0.1:8775/option'+task_id+'/set' #添加的是上面创建的新任务ID(/option和/set这二个是固定的.)
  8. task_set_resp=requests.post(task_set_url,data=json.dumps(data),headers=headers) #使用post方式提交.data=是提交的数据(提交data里面的数据.)
  9. print(task_set_resp.content.decode('utf-8'))


(3)启动对应ID的扫描任务.

  1. task_start_url='http://127.0.0.1:8775/scan/'+task_id+'/start' #添加的是上面创建的新任务ID(/scan和/start是启动对应ID的扫描任务文件.)
  2. task_start_resp=requests.post(task_start_url,data=json.dumps(data),headers=headers) #使用post方式提交.data=是提交的数据(提交data里面的数据.)
  3. print(task_start_resp.content.decode('utf-8')) #打印utf-8格式


(4)获取对应ID的扫描状态.

  1. task_status_url='http://127.0.0.1:8775/scan/'+task_id+'/status' #添加的是上面创建的新任务ID(/scan和/status是启动对应ID的扫描任务文件.)
  2. task_status_resp=requests.get(task_status_url) ##使用post方式提交
  3. print(task_status_resp.content.decode('utf-8')) #打印utf-8格式


(5)查看扫描的结果.

http://127.0.0.1:8775/scan/a7554d9e12ed446f/data        #a7554d9e12ed446f就是下面的数据.


SQL注入批量检测步骤:

(1)前提:需要在文件输入扫描的URL.

  1. import requests
  2. import json
  3. import time
  4. def sqlmapapi(url):
  5. headers = { # 数据包里的数据.
  6. 'Content-Type': 'application/json'
  7. }
  8. data = { # 输入扫描的地址.
  9. 'url': url
  10. }
  11. task_new_url = 'http://127.0.0.1:8775/task/new' # 创建任务的URL地址(在IP地址后面加//task/new). 前面的四个就是获取ID信息.
  12. resp = requests.get(task_new_url) # 使用get方式请求.
  13. task_id = resp.json()['taskid'] # 打印json格式下的taskid数据.
  14. #print(resp.content.decode('utf-8')) #打印utf-8格式
  15. if 'success' in resp.content.decode('utf-8'): #如果success在resp.content.decode('utf-8')里面
  16. print('sqlmapapi 创建任务ID成功!')
  17. scan_task_set_url = 'http://127.0.0.1:8775/option/' + task_id + '/set' #添加的是上面创建的新任务ID(/option和/set这二个是固定的.)
  18. scan_task_set = requests.post(scan_task_set_url, data=json.dumps(data), headers=headers) #使用post方式提交.data=是提交的数据(提交data里面的数据.)
  19. #print(task_set_resp.content.decode('utf-8')) #打印utf-8格式
  20. if 'success' in scan_task_set.content.decode('utf-8'): #如果success在task_set_resp.content.decode('utf-8')里面设置任务ID的配置
  21. print('sqlmapapi 设置任务ID的配置成功!')
  22. task_start_url = 'http://127.0.0.1:8775/scan/' + task_id + '/start' #添加的是上面创建的新任务ID(/scan和/start是启动对应ID的扫描任务文件.)
  23. task_start_resp = requests.post(task_start_url, data=json.dumps(data),headers=headers) # 使用post方式提交.data=是提交的数据(提交data里面的数据.)
  24. # print(task_start_resp.content.decode('utf-8')) #打印utf-8格式
  25. if 'success' in task_start_resp.content.decode('utf-8'): #如果success在task_start_resp.content.decode('utf-8')里面
  26. print('sqlmap 扫描启动成功!')
  27. while 1:
  28. task_status_url = 'http://127.0.0.1:8775/scan/' + task_id + '/status' #添加的是上面创建的新任务ID(/scan和/status是启动对应ID的扫描任务文件.)
  29. task_status_resp = requests.get(task_status_url) #使用post方式提交
  30. #print(task_status_resp.content.decode('utf-8')) #打印utf-8格式
  31. if 'running' in task_status_resp.content.decode('utf-8'): #还在扫描中
  32. print(url + '还在扫描中!')
  33. pass
  34. else: #否则扫描成功!
  35. print('sqlmapapi 扫描结束!')
  36. task_data_url = 'http://127.0.0.1:8775/scan/' + task_id + '/data' #打印data结果.
  37. scan_data = requests.get(task_data_url).content.decode('utf-8') #使用post方式提交
  38. with open(r'bgxg.txt', 'a+') as f: #将结果写到bgxg.txt文件中.
  39. f.write(url + '\n')
  40. f.write(scan_data + '\n')
  41. f.write('下一个数据包'+'\n')
  42. f.close()
  43. scan_deltask_url = 'http://127.0.0.1:8775/task/' + task_id + '/delete'
  44. scan_deltask=requests.get(scan_deltask_url)
  45. if 'success' in scan_deltask.content.decode('utf-8'):
  46. print('删除 task id 成功')
  47. break #结束(跳出)
  48. time.sleep(3) #延迟3秒.
  49. if __name__ == '__main__':
  50. for url in open('url.txt'):
  51. url=url.replace('\n','')
  52. sqlmapapi(url)


(2)打开文件,是可以 查看有没有注入点

   

学习链接:2021小迪渗透测试/网络安全工程师全套(从入门到就业)_哔哩哔哩_bilibili

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/447259
推荐阅读
相关标签
  

闽ICP备14008679号