【技术干货】基于蜻蜓打造在线SQL注入检测系统
2023-2-6 10:29:15 Author: 星阑实验室(查看原文) 阅读量:13 收藏

daxia
@PortalLab实验室

背景

一般情况下我们都是使用命令行方式去调用SQLMap,但在一些场景下用界面操作SQLMap更方便,还可以保留检测结果,在一些开源项目中也发现了SQLMAP-Web-GUI,不过我觉得还是不太方便,比如部署必须要有一台公网服务器才能24小时提供服务,这往往需要买云服务器,而用云服务器进行检测容易被服务商封锁。

我不想买公网服务器,又需要有一个24小时能为我提供服务的平台,还不想被封公网IP;于是自己造了一个轮子把sqlmap安装在蜻蜓平台中,这样我不需要关注购买公网IP服务器问题,而且需要用的时候直接打开蜻蜓页面操作即可。

克隆SQLMap应用

写好的应用我共享到了蜻蜓市场中,如果要使用可以直接去市场应用里克隆即可,下面是我的使用方法,主要是手工界面操作和调用API操作。

手工界面检测

从市场克隆应用之后,会出现在工作台界面,运行之前需要填写要检测的URL地址,这里找一个靶场从里面找一个有参数的URL地址放进去。

注意:一定要有参数,没有参数意味着不存在注入点,SQLMap肯定是检测不出结果的。

点击运行按钮,就会开始对URL进行检测,检测时间会根据网络质量和漏洞类型等因素出结果时间也不同。需要耐心等待一下。

在运行历史记录里面状态为已完成的时候,可以点击结果按钮,查看这次检测的结果,会跳转到数据中心来。

如果想看详情,可以点击查看按钮可以看到数据的详细信息。

调用API检测

有些场景下,你可能想把这个功能集成到你自己的项目中,蜻蜓里面内置了API接口,你可以直接通过接口运行工作流。

启动工作流

启动工作流你可以通过CURL的方式来运行,如果工作流里需要填写参数,可以通过--from的方式来提交参数。

curl --request POST \  --url 'http://qingting.starcross.cn/api/index/start?usce_id=2945' \  --header 'content-type: multipart/form-data' \  --header 'token: 78b2e04f519b4axxx202fe457cb' \  --form 'scan_url=http://10.1.1.140:6789/home/index.php?m=tiezi&a=index&bk=7'

调用成功,会返回版本号信息。

{  "code": 0,  "msg": "启动成功",  "data": {"task_version":"1672798589"}}

获取执行状态

获取任务执行状态的命令,参数中需要有工作流ID和执行版本号。

curl --request GET \  --url 'http://qingting.starcross.cn/api/index/getStatus?task_version=1672798589&flow_id=2945' \  --header 'token: 78b2e04f519b4axxx202fe457cb'

获取执行状态的返回信息,1代表执行中。

{  "code": 0,  "msg": "执行中",  "data": 1}

获取执行结果

请求获取结果的CURL命令如下所示。

curl --request GET \  --url 'http://qingting.starcross.cn/api/index/getResult?flow_id=2945' \  --header 'token: 78b2e04f519b4axxx202fe457cb'

获得SQLMap执行的结果。

{  "code": 0,  "msg": "",  "data": [    {      "raw": "sqlmap identified the following injection point(s) with a total of 205 HTTP(s) requests:\n---\nParameter: bk (GET)\n    Type: time-based blind\n    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)\n    Payload: m=tiezi&a=index&bk=7 AND (SELECT 2330 FROM (SELECT(SLEEP(5)))klfn)\n---\nweb server operating system: Linux Ubuntu\nweb application technology: PHP, Nginx 1.14.0\nback-end DBMS: MySQL >= 5.0.12\n"    },    {      "raw": "sqlmap identified the following injection point(s) with a total of 205 HTTP(s) requests:\n---\nParameter: bk (GET)\n    Type: time-based blind\n    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)\n    Payload: m=tiezi&a=index&bk=7 AND (SELECT 2671 FROM (SELECT(SLEEP(5)))kzvf)\n---\nweb server operating system: Linux Ubuntu\nweb application technology: PHP, Nginx 1.14.0\nback-end DBMS: MySQL >= 5.0.12\n"    }  ]}

GitHub地址:https://github.com/StarCrossPortal/QingTing

官网地址:http://qingting.starcross.cn/
微信交流群:

关于Portal Lab

星阑科技 Portal Lab 致力于前沿安全技术研究及能力工具化。主要研究方向为API 安全、应用安全、攻防对抗等领域。实验室成员研究成果曾发表于BlackHat、HITB、BlueHat、KCon、XCon等国内外知名安全会议,并多次发布开源安全工具。未来,Portal Lab将继续以开放创新的态度积极投入各类安全技术研究,持续为安全社区及企业级客户提供高质量技术输出。


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg3NDcwMDk3OA==&mid=2247484436&idx=1&sn=f74b96c3982b58e91ed3aa72ab122b42&chksm=cecd8dc9f9ba04dffe9c8b1c0ad079d18472da62197b7210bd725d75c0f966b99d7231ff7c0b#rd
如有侵权请联系:admin#unsafe.sh