【安全测试】【sqlmap】sqlmap快速入门
2022-09-27 15:58 码上起舞 阅读(310) 评论(0) 编辑 收藏 举报一、目的
本文主要介绍如何用sqlmap来测试某个接口是否有sql注入的风险,以及查看对应的注入的payload。
sqlmap支持-u指定接口的url信息,也支持-r 来解析文件中的请求信息。本文主要介绍-r的方式。其他的sqlmap的命令行模式,见sqlmap命令行参数详解。
二、准备接口报文
准备工作主要是指收集接口的请求信息,包括单接口或多接口,get请求或post请求,cookie参数等,以下以一个接口的注入测试为例
辅助工具:fiddler、Burpsuite(以下二者选一即可,目的是拿到接口请求的raw报文)
2.1 fiddler收集接口的请求信息
1.fidler设置代理,在页面访问指定功能后,fidler抓取对应的接口请求信息;
2.将raw原始的接口请求信息,全部复制粘贴,保存到文件req.txt(文件名无限制,后缀为txt即可)
2.2 Burpsuite收集接口的请求信息
2.2.1.设置Burpsuite代理
2.2.2.Burpsuite设置只打断指定ip的请求
2.2.3.设置浏览器代理(google为例)
设置--高级--打开代理设置,输入代理为第2.2.1中设置的Burpsuite的ip和端口
2.2.4 访问页面,在Burpsuite的target-sitemap中找到对应的请求信息,查看raw请求
2.2.5 将raw复制,保存到文件req.txt文件中,后续步骤要用
三、sqlmap执行
前提:有sqlmap安装包已经解压好,以windows为例(linux同理),sqlmap安装包解压在D:\sqlmap文件夹下,可以找到sqlmap.py文件
cd D:\sqlmap\ python sqlmap.py -r D:\req.txt -v 3 --risk=2 --tamper=space2comment
说明:
req.txt 是第二步中保存的请求报文文件
-v 表示输出信息的级别,3级别会输出payload信息,默认为1级别
-batch 表示无需手动输入交互信息,自动判断输入,默认输入Y
四、结果检查
在控制台会实时输出注入信息
以下输出表示无注入风险:
以下输出表示有注入漏洞存在: