关于sqlmap的两个小坑
0x00 概述
近日在利用sqlmap注入测试时遇到一个奇怪的现象,高版本sqlmap无法检测出注入,但是低版本的可以测出注入,并且能跑出数据不是误报,经过对比测试和查看sqlmap源码,发现两个小坑。
0x01 情景重现
注入点形式:json
……”whereparams”:[{“name”:”keyWord”,”value”:”test”}]}
可注入参数:value
sqlmap命令:
python sqlmap.py -r sqlpk.txt –flush-session -vv
sqlmap v1.2.11无法注入
sqlmap v1.2成功注入![]()
同理v1.2.10无法注入,v1.1.12可以注入
经过分析,两坑如下:
(1)v1.2.11(/v1.2.10/v1.2.9/master)的boundaries.xml没有了针对模糊查询(%)的测试,而v1.2(/v1.1.12/1.1.4/1.2.2)则有。
(2)v1.2.11(/v1.2.10/1.2.9/master)必须手动设置json的某个参数为*才能对这个参数进行注入(即使选了y-inject inside),否则payload直接跟在json后导致无法注入,而v1.2(/v1.1.12)则可以默认回车(y)即可对json的某个参数注入。
0x02 详细测试
坑点(1):
先了解sqlmap的payload组成:
//图片来源https://www.freebuf.com/column/161797.html
看看v1.2的测试payload:![]()
使用了payload:%‘ and 5731=5731 and ‘%’=’
这是挺常见的搜索框注入
看看V1.2的boundaries.xml:![]()
而v1.2.11的boundaries.xml没有对模糊查询的注入测试!
https://github.com/sqlmapproject/sqlmap/blob/master/xml/boundaries.xml
于是添加模糊查询的注入测试到v1.2.11的该文件中,并手动添加*到注入参数(如value),即可成功注入!
附上添加后的版本:
https://github.com/theLSA/sqlmap/tree/dev![]()
![]()
![]()
pr得到答复是因为误报太多所以移除了相关payload,但是将会有限的恢复。
https://github.com/sqlmapproject/sqlmap/pull/3372
坑点(2):
对比v1.2和v1.2.11的payload:![]()
可以看出v1.2.11直接将payload接在json末尾了。
在注入参数value手动添加*
%22whereparams%22%3A%5B%7B%22name%22%3A%22keyWord%22%2C%22value%22%3A%22*%22%7D%5D%7D
即可成功注入!
0x03 结语
1. 个人建议添加模糊查询的测试payload,误报还是好过漏报,况且是很常见的模糊查询注入。
2. 遇到json参数尽量加手动*(针对某些版本的sqlmap)。
3. 利用sqlmap测试的时候建议加上-vv。
4. 不能过于依赖工具,尽量工具+手工测试比较保险。
关于sqlmap的两个小坑的更多相关文章
- mciSendString 的两个小坑
刚刚修正了自己用的小闹钟的代码. 坑1:REPEAT 选项的作用范围 原来用得好好的,之后选择 .wav 文件,居然不出声音了…… 诶,MCI 肯定支持 .wav 的啊…… 仔细想想,我以前都是选 . ...
- swiper 初始化的两个小坑
1.当swiper loop设为true时,同时你又改变了sliderPerview的值,这时候轮播,按prev按钮到第一个时,会出现空白页: 解决办法:sliderPerview设置为auto,lo ...
- kvm 虚机环境碰到的两个小坑
1)当部署一个商用VA的时候,出现virsh version|grep "Using library" 返回错误,经过查看,发现里面有汉字,猜应该是这个原因导致无法检索到libvi ...
- win2016 配置IIS 和mysql5.7 迁移数据表的两个小坑
今天配置一整天,就IIS都装了一整天,都是没办法安装.net3.5的问题. 最后解决办法:https://help.aliyun.com/knowledge_detail/38203.html?spm ...
- Xcode7 的两个小坑
Xcode7 还在 beta.时不时崩一下什么的倒也是预料之中的事.没料到的是之前用着好好的,今天升完 El Capitan 之后,模拟器竟然不见了,设备倒是在 schema 栏右边里能看到.只是注明 ...
- Java实现快排+小坑+partition的两种思路
在做一道剑指Offer的题的时候,有道题涉及到快排的思路,一开始就很快根据以前的思路写出了代码,但似乎有些细节不太对劲,自己拿数据试了下果然.然后折腾了下并记录下一些小坑,还有总结下划分方法parti ...
- 这两个小技巧,让我的SQL语句不仅躲了坑,还提升了1000 倍
原文: https://cloud.tencent.com/developer/article/1465618 本次来讲解与 SQL 查询有关的两个小知识点,掌握这些知识点,能够让你避免踩坑以及提高查 ...
- [LeetCode]29 两数相除和一个小坑点
给定两个整数,被除数 dividend 和除数 divisor.将两数相除,要求不使用乘法.除法和 mod 运算符. 返回被除数 dividend 除以除数 divisor 得到的商. 示例 1: 输 ...
- C#中的Infinity有个小坑
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 昨天家里有事,上网也不方便,就没有推送文章.今天很累,也不长篇大论了.简单介绍一下最近遇到的 ...
随机推荐
- PHP AJAX返回 "TEXT"
例子:通过AJAX间接访问数据库,查出Nation表显示在页面上,并添加删除按钮 //首先在外层添加一个按钮,并造好表头 <div><input type="button& ...
- 【makefile】make程序的命令行选项和参数
Make命令参数的典型序列如下所示: make [-f makefile文件名][选项][宏定义][目标] 这里用[]括起来的表示是可选的.命令行选项由破折号“–”指明,后面跟选项,如: make – ...
- LC 163. Missing Ranges 【lock, hard】
Given a sorted integer array nums, where the range of elements are in the inclusive range [lower, up ...
- 发布nuget包
首先在nuget(www.nuget.org)注册账号,这里可以使用微软账号直接登录 一般有两种方式 1:在工程上右键打包然后直接在网站上上传就可以 2:通过获取key,然后使用控制台提交 登录后在右 ...
- iOS 应用"无法安装应用程序 因为证书无效"的解决方案
原因是由于iOS7.1要安装企业应用,url必须是https的,不能是http,这就要求我们的服务器要支持https.因此,只要将原链接: itms-services://?action=downlo ...
- java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:list
package DisplayAuthors; import java.sql.*; public class DisplayAuthors { private static final Str ...
- 关于ansbile
YAML语法规则 规则一:缩进(一个缩进两空格,注意一定不用tab) 规则二:冒号(每个冒号后一定要有空格) 规则三:短横线 - (短横线后面要空格) 编写案例 ansible-playbook -- ...
- Java模拟实现百度文档在线浏览
Java模拟实现百度文档在线浏览 这个思路是我参考网上而来,代码是我实现. 采用Apache下面的OpenOffice将资源文件转化为pdf文件,然后将pdf文件转化为swf文件,用FlexPaper ...
- centos升级glibc2.23编译安装
wget http://ftp.gnu.org/gnu/glibc/glibc-2.23.tar.gz tar -zxvf glibc-2.23.tar.gz cd glibc-2.23 mkdir ...
- 跨平台python异步回调机制实现和使用方法
跨平台python异步回调机制实现和使用方法 这篇文章主要介绍了python异步回调机制的实现方法,提供了使用方法代码 1 将下面代码拷贝到一个文件,命名为asyncore.py 代码如下: impo ...