0


SqlmapAPI调用实现自动化SQL注入安全检测

文章目录

应用案例:前期通过信息收集拿到大量的URL地址,这个时候可以配置sqlmapAP接口进行批量的SQL注入检测 (SRC挖掘)

查看sqlmapapi使用方法

  1. python sqlmapapi.py -h

启动sqlmapapi 的web服务:

在这里插入图片描述

任务流程:

  1. 1.创建新任务记录任务ID @get("/task/new"))
  2. 2.设置任务ID扫描信息 @post("/option/<taskid>/set")
  3. 3.开始扫描对应ID任务 @post ("/scan/<taskid>/start")
  4. 4.读取扫描状态判断结果 @get("/scan/<taskid>/status")
  5. 5.如果结束删除ID并获取结果 @get ("/task/<taskid>/delete")
  6. 6.扫描结果查看 @get("/scan/<taskid>/data")

简单使用

  • 1.创建新任务记录任务ID
  1. import requests
  2. # 1.创建新任务记录任务ID
  3. task_new_url='http://127.0.0.1:8775/task/new'
  4. response=requests.get(url=task_new_url)print(response.json())

在这里插入图片描述

  • 2.设置任务ID扫描信息
  1. import requests
  2. import json
  3. # 1.创建新任务记录任务ID
  4. task_new_url ='http://127.0.0.1:8775/task/new'
  5. response = requests.get(url=task_new_url)
  6. taskid = response.json()['taskid']# 2.设置任务ID扫描信息
  7. data={'url':'http://192.168.8.3/sqli-labs-master/Less-2/?id=1'}
  8. headers={'Content-Type':'application/json'}
  9. task_set_url='http://127.0.0.1:8775/option/'+taskid+'/set'
  10. task_set_response=requests.post(url=task_set_url,data=json.dumps(data),headers=headers)print(task_set_response.content.decode('utf-8'))

在这里插入图片描述

  • 3.开始扫描对应ID任务
  1. import requests
  2. import json
  3. # 1.创建新任务记录任务ID
  4. task_new_url ='http://127.0.0.1:8775/task/new'
  5. response = requests.get(url=task_new_url)
  6. taskid = response.json()['taskid']# 2.设置任务ID扫描信息
  7. data ={'url':'http://192.168.8.3/sqli-labs-master/Less-2/?id=1'}
  8. headers ={'Content-Type':'application/json'}
  9. task_set_url ='http://127.0.0.1:8775/option/'+ taskid +'/set'
  10. task_set_response = requests.post(url=task_set_url, data=json.dumps(data), headers=headers)# print(task_set_response.content.decode('utf-8'))##### 3.开始扫描对应ID任务
  11. task_start_url='http://127.0.0.1:8775/scan/'+taskid+'/start'
  12. task_start_data=requests.post(task_start_url,data=json.dumps(data),headers=headers)print(task_start_data.content.decode('utf-8'))

在这里插入图片描述

这边任务id和上面不一样是因为我重启了服务

在这里插入图片描述

  • 获取扫描状态
  1. import requests
  2. import json
  3. # 1.创建新任务记录任务ID
  4. task_new_url ='http://127.0.0.1:8775/task/new'
  5. response = requests.get(url=task_new_url)
  6. taskid = response.json()['taskid']# 2.设置任务ID扫描信息
  7. data ={'url':'http://192.168.8.3/sqli-labs-master/Less-2/?id=1'}
  8. headers ={'Content-Type':'application/json'}
  9. task_set_url ='http://127.0.0.1:8775/option/'+ taskid +'/set'
  10. task_set_response = requests.post(url=task_set_url, data=json.dumps(data), headers=headers)# print(task_set_response.content.decode('utf-8'))# 3.开始扫描对应ID任务
  11. task_start_url ='http://127.0.0.1:8775/scan/'+ taskid +'/start'
  12. task_start_data = requests.post(task_start_url, data=json.dumps(data), headers=headers)# print(task_start_data.content.decode('utf-8'))# 4.读取扫描状态判断结果
  13. task_scan_url ='http://127.0.0.1:8775/scan/'+ taskid +'/status'
  14. task_scan_data = requests.get(task_scan_url)print(task_scan_data.content.decode('utf-8'))

在这里插入图片描述

  • 查看结果

查看扫描结果是get请求,所以可以在浏览器中查看结果

在这里插入图片描述

在这里插入图片描述

上述代码,在每运行一次都会创建一个任务ID,所以需要进行代码优化

优化

  1. import time
  2. import requests, json
  3. # 创建任务defsqlmapapi(url):# 创建任务id
  4. task_new_url ='http://127.0.0.1:8775/task/new'
  5. response = requests.get(url=task_new_url)
  6. taskid = response.json()['taskid']if'success'in response.content.decode('utf-8'):print('sqlmapapi task create success !')
  7. data ={'url': url
  8. }
  9. headers ={'Content-Type':'application/json'}# 设置 任务
  10. task_set_url ='http://127.0.0.1:8775/option/'+ taskid +'/set'
  11. task_set_response = requests.post(url=task_set_url, data=json.dumps(data), headers=headers)if'success'in task_set_response.content.decode('utf-8'):print('sqlmapapi task set success !')# 扫描任务
  12. task_start_url ='http://127.0.0.1:8775/scan/'+ taskid +'/start'
  13. task_start_data = requests.post(task_start_url, data=json.dumps(data), headers=headers)if'success'in task_start_data.content.decode('utf-8'):print('sqlmapapi task start success !')# 获取扫描状态whileTrue:
  14. task_status_url ='http://127.0.0.1:8775/scan/'+ taskid +'/status'
  15. task_status_data = requests.get(task_status_url)if'running'in task_status_data.content.decode('utf-8'):print('sqlmapapi task scan running .....')else:# 查看扫描结果
  16. task_data_url ='http://127.0.0.1:8775/scan/'+ taskid +'/data'
  17. task_data = requests.get(task_data_url)print(task_data.content.decode('utf-8'))break
  18. time.sleep(3)if __name__ =='__main__':# url='http://192.168.8.3/sqli-labs-master/Less-2/?id=1'for url inopen('url.txt'):
  19. url = url.replace('\n','')
  20. sqlmapapi(url)
标签: python 自动化 sql

本文转载自: https://blog.csdn.net/ZhaoSong_/article/details/134695079
版权归原作者 过期的秋刀鱼- 所有, 如有侵权,请联系我们删除。

“SqlmapAPI调用实现自动化SQL注入安全检测”的评论:

还没有评论