python渗透开发之 sql注入SqlmapApi自动化扫描方式讲解 单方法编写代码 SRC漏洞挖掘逻辑分析

目录

介绍

安装和配置 Sqlmap

启动 Sqlmap API 服务:

使用 API 进行扫描(Python代码部分)

SQLMAPAPI开发整体过程

获取任务ID

设置任务ID扫描信息

开始扫描对应ID任务

读取扫描状态判断结果 

扫描结果查看 

扫描结束删除ID并获取结果

最后:

python渗透开发之 sql注入SqlmapApi自动化扫描方式讲解 单方法编写代码 SRC漏洞挖掘逻辑分析_第1张图片

介绍

  • SQL注入的自动化扫描方式,可以通过使用 Sqlmap 提供的 API 来实现。
    • SQLMAP是一个强大的开源自动化SQL注入工具,可以用于发现和利用SQL注入漏洞。
    • 通过 Sqlmap 的 API,你可以编写脚本来自动化执行 SQL 注入扫描任务,减少手动操作,提高效率。

安装和配置 Sqlmap

  • 首先,确保你已经安装了 Sqlmap。
    • 如果没有安装,可以使用以下命令进行安装:
  • git clone https://github.com/sqlmapproject/sqlmap.git
  • cd sqlmap
  • Sqlmap 的 API 是通过其 lib 中的 Python 文件来实现的,通常不需要额外安装

启动 Sqlmap API 服务:

  • 参考这篇文章:

python 渗透开发工具之SQLMapApi Server不同IP服务启动方式处理 解决方案SqlMapApiServer外网不能访问的情况_sqlmap api-CSDN博客文章浏览阅读1.1w次,点赞38次,收藏16次。通过调用sqlmapApi 代码python调用具有更大的灵活性以及全面性。API的出现给了我们使用代码来实现自动化渗透sql注入测试相关操作。sqlmap 我们可以使用这个工具手动使用 相关指令进行测试!也就是只能你本地访问 这个上面已经说过了。不然每个注入点,都需要我们手动使用sqlmap。如果不知道扫描是api这个就自己补充知识吧!当服务端和客户端不是一台主机会连接不上。这个只是针对于我们本地调用的时候使用的。sqlmapApi 服务安装相关。这样就能访问外网了。_sqlmap apihttps://blog.csdn.net/zhzx123aa/article/details/144479409https://blog.csdn.net/zhzx123aa/article/details/144479409


使用 API 进行扫描(Python代码部分)

  • 启动 API 后,你可以通过 HTTP 请求与之交互。下面是通过 Python 调用 Sqlmap API 的基本步骤:

SQLMAPAPI开发整体过程

  •   开发当前项目过程(利用sqlmapapi接口实现批量url注入安全检测)

    1 创建新任务记录任务ID @get("/task/new")

    2 设置任务ID扫描信息 @post("/option//set")

    3 开始扫描对应ID任务 @post("/scan//start")

    4 读取扫描状态判断结果 @get("/scan//status")

    5 扫描结果查看 @get("/scan//data)

    6 扫描结束删除ID并获取结果@get("/task//delete")


获取任务ID

task_url = "http://192.168.1.8:8775/task/new"
resp = requests.get(task_url).json()
task_id = resp['taskid']
task_status = resp['success']
  • 返回结果获取ID (ID值每次都不同)url用的本地搭建的sqllabs

    • 搭建好sqllabs服务器

    • url 也就是需要做sql注入的地址

python渗透开发之 sql注入SqlmapApi自动化扫描方式讲解 单方法编写代码 SRC漏洞挖掘逻辑分析_第2张图片


设置任务ID扫描信息

data = {
    'url': 'http://192.168.1.9/pikachu/vul/sqli/sqli_widebyte.php',
}
headers = {
    'Content-Type': 'application/json',
}
scan_id = f'http://192.168.1.8:8775/option/{task_id}/set'
scan_set = requests.post(scan_id, data=json.dumps(data), headers=headers)
print(scan_set.text)

开始扫描对应ID任务

task_start_url = f'http://192.168.1.8:8775/scan/{task_id}/start'
task_scan = requests.post(task_start_url, data=json.dumps(data),headers=headers).json()
print(task_scan)

读取扫描状态判断结果 

task_status_url = f'http://192.168.1.8:8775/scan/{task_id}/status'
task_status_resp = requests.get(task_status_url).json()
print(task_status_resp)

扫描结果查看 

task_result_url = f'http://192.168.1.8:8775/scan/{task_id}/data'
task_result = requests.get(task_result_url)
task_result_data = task_result.json()
print(task_result_data)

data_ID_url = "http://192.168.1.8:8775/scan/{0}/data".format(str(task_id))
print(task_result_data)
print(data_ID_url)

扫描结束删除ID并获取结果

task_delete_url = f'http://192.168.1.8:8775/task/{task_id}/delete'
task_delete_req = requests.get(task_delete_url)
task_delete_resp = task_delete_req.json()
print(task_delete_resp)

总结代码

import json
import requests
# SQLmapApi
"""
    1 创建新任务记录任务ID@get("/task/new")
    # {
    #     "success": true,
    #     "taskid": "d54afabecf0d9198"
    # }
"""
task_url = "http://192.168.1.8:8775/task/new"
resp = requests.get(task_url).json()
task_id = resp['taskid']
task_status = resp['success']

"""
    2 设置任务ID扫描信息 @post("/option//set")
"""
data = {
    'url': 'http://192.168.1.9/pikachu/vul/sqli/sqli_widebyte.php',
}
headers = {
    'Content-Type': 'application/json',
}
scan_id = f'http://192.168.1.8:8775/option/{task_id}/set'
scan_set = requests.post(scan_id, data=json.dumps(data), headers=headers)
print(scan_set.text)
"""
    3 开始扫描对应ID任务 @post("/scan//start")
"""
task_start_url = f'http://192.168.1.8:8775/scan/{task_id}/start'
task_scan = requests.post(task_start_url, data=json.dumps(data),headers=headers).json()
print(task_scan)

"""
    4 读取扫描状态判断结果 @get("/scan//status")
"""
task_status_url = f'http://192.168.1.8:8775/scan/{task_id}/status'
task_status_resp = requests.get(task_status_url).json()
print(task_status_resp)

"""
扫描结果查看 @get("/scan//data)
"""
#
task_result_url = f'http://192.168.1.8:8775/scan/{task_id}/data'
task_result = requests.get(task_result_url)
task_result_data = task_result.json()
print(task_result_data)

data_ID_url = "http://192.168.1.8:8775/scan/{0}/data".format(str(task_id))
print(task_result_data)
print(data_ID_url)

# """
# 扫描结束删除ID并获取结果@get("/task//delete")
# """
task_delete_url = f'http://192.168.1.8:8775/task/{task_id}/delete'
task_delete_req = requests.get(task_delete_url)
task_delete_resp = task_delete_req.json()
print(task_delete_resp)
#

最后:

  • SQLMap API SRC 漏洞挖掘逻辑分析是针对 SQLMap 的漏洞挖掘和利用逻辑的一种深入探讨
  • 涉及到 SQL 注入的漏洞自动化扫描
  • 利用过程和如何通过其 API 与 SQLMap 交互进行漏洞挖掘的整体框架
  • 了解这个过程可以帮助更好地利用 SQLMap 进行漏洞挖掘
  • 特别是在自动化扫描环境中。

  • 自动化SQL SRC漏洞注入方式
  • 要实现 SQLMap API 自动化 SRC 漏洞挖掘,你可以通过编写一个自动化脚本
  • 利用 SQLMap API 进行 SQL 注入漏洞扫描并挖掘目标系统的安全漏洞。
  • 自动化的主要目标是通过 SQLMap API 来进行扫描、验证、利用,并生成漏洞报告。
  • 你可以将此过程作为一个完整的漏洞挖掘流程来执行,避免手动干预。

喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。

python渗透开发之 sql注入SqlmapApi自动化扫描方式讲解 单方法编写代码 SRC漏洞挖掘逻辑分析_第3张图片

你可能感兴趣的:(渗透测试开发,python,pygame,virtualenv,plotly,scikit-learn,pyqt,scipy)