关于sqlmap的两个小坑

栏目: 编程工具 · 发布时间: 7年前

内容简介:近日在利用sqlmap注入测试时遇到一个诡异的现象,高版本sqlmap无法检测出注入,但是低版本的可以测出注入,并且能跑出数据不是误报,经过对比测试和查看sqlmap源码,发现两个小坑。注入点形式:json……”whereparams”:[{“name”:”keyWord”,”value”:”test”}]}

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的两个小坑

sqlmap v1.2成功注入

关于sqlmap的两个小坑

同理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的某个参数为*才能对这个参数进行注入,否则payload直接跟在json后导致无法注入,而v1.2(/v1.1.12)则可以默认回车(y)即可对json的某个参数注入。

0x02 详细测试

问题(1):

先了解sqlmap的payload组成:

关于sqlmap的两个小坑

//图片来源 https://www.freebuf.com/column/161797.html

看看v1.2的测试payload:

关于sqlmap的两个小坑

使用了payload:%‘ and 5731=5731 and ‘%’=’

这是挺常见的搜索框注入

看看V1.2的boundaries.xml:

关于sqlmap的两个小坑

而v1.2.11的boundaries.xml没有对模糊查询的注入测试!

https://github.com/sqlmapproject/sqlmap/blob/master/xml/boundaries.xml

于是添加模糊查询的注入测试到v1.2.11的该文件中,并手动添加*到注入参数(如value),即可成功注入!

关于sqlmap的两个小坑 关于sqlmap的两个小坑 关于sqlmap的两个小坑

pr得到答复是因为误报太多所以移除了相关payload,但是会有限的恢复。

https://github.com/sqlmapproject/sqlmap/pull/3372

问题(2):

对比v1.2和v1.2.11的payload:

关于sqlmap的两个小坑 关于sqlmap的两个小坑

可以看出直接将payload接在json末尾了。

在注入参数value手动添加*

%22whereparams%22%3A%5B%7B%22name%22%3A%22keyWord%22%2C%22value%22%3A%22*%22%7D%5D%7D

即可成功注入!

0x03 结语

1. 利用sqlmap测试的时候建议加上-vv。

2. 遇到json参数尽量加手动*(针对某些版本的sqlmap)。

3. 建议添加模糊查询的测试payload,个人认为误报还是好过漏报,况且是很常见的模糊查询注入。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Fluent Python

Fluent Python

Luciano Ramalho / O'Reilly Media / 2015-8-20 / USD 39.99

Learn how to write idiomatic, effective Python code by leveraging its best features. Python's simplicity quickly lets you become productive with it, but this often means you aren’t using everything th......一起来看看 《Fluent Python》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具