关于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的问题怎么分析

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

0x02 详细测试

坑点(1):
先了解sqlmap的payload组成:

关于sqlmap的问题怎么分析

//图片来源https://www.freebuf.com/colum…

看看v1.2的测试payload:

关于sqlmap的问题怎么分析

使用了payload:%‘ and 5731=5731 and ‘%’=’
这是挺常见的搜索框注入
看看V1.2的boundaries.xml:

关于sqlmap的问题怎么分析

而v1.2.11的boundaries.xml没有对模糊查询的注入测试!
https://github.com/sqlmapproj…
于是添加模糊查询的注入测试到v1.2.11的该文件中,并手动添加*到注入参数(如value),即可成功注入!
附上添加后的版本:
https://github.com/theLSA/sql…

关于sqlmap的问题怎么分析

pr得到答复是因为误报太多所以移除了相关payload,但是将会有限的恢复。
https://github.com/sqlmapproj…

坑点(2):
对比v1.2和v1.2.11的payload:

关于sqlmap的问题怎么分析

可以看出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的问题怎么分析”就介绍到这了,更多相关内容可以搜索亿速云以前的文章,希望能够帮助大家答疑解惑,请多多支持亿速云网站!

文章标题:关于sqlmap的问题怎么分析,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/27944

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云认证作者
上一篇 2022年9月21日 上午12:20
下一篇 2022年9月21日 上午12:21

相关推荐

  • 电脑出现0x0000007b如何解决

    解决方法: 方法一: 1、很可能是更新了错误的显卡驱动,出现错误代码后先重启电脑。 2、随后按下“F8”进入安全模式选择界面,选择“最近一次的正确配置”就能进入系统了。 3、这样可以解决应用程序冲突问题,如果无法解决,那么可以尝试更改硬盘启动模式。 方法二: 1、首先重启电脑,然后使用热键进入bio…

    2022年9月18日
    63300
  • C语言中for循环与while循环怎么使用

    一、单层for循环 引例:C语言实现求1到10的和(用for循环实现) #include <stdio.h>int main(){ int i, sum = 0; for (i = 1; i <= 10; i++) sum = sum + i; printf(“sum = %dn”…

    2022年9月15日
    76200
  • word字体放大少了一截怎么解决

    解决方法 1、 首先把文字选中(全选的快捷键是ctrl A)。 2、在选中的文字上面右击鼠标,选择“段落”。 3、找到间距一栏,里面有行距和设置值.我们可以看到设置成了固定值。 4、点击行距旁边的下拉框按钮,然后选择单倍行距,或者1.5倍行距等等.这里以单倍行距为例。 5、选择好之后如图,点击确定。…

    2022年9月18日
    65100
  • windows steam错误代码105如何解决

    steam错误代码105解决方法: 1、首先打开steam设置,然后点击左侧的“网页浏览器”。 2、然后选择“删除网页浏览器缓存”,再点击“删除所有浏览器cookie”。 3、右击右下角网络,点击属性然后进入网络选项,双击“Internet协议版本4”。 4、随后可以进入dns修改界面,此时可以设置…

    2022年8月31日
    1.5K00
  • mdf文件打开方法是什么

    mdf文件怎么开: 如果mdf是镜像文件,我们需要虚拟光驱进行加载,下载并安装Daemon Tools虚拟光驱软件,打开就行了。 如果mdf是数据库文件,我们需要使用SQLServer管理工具进行打开,打开后点击文件,选择导入连接,选择需要打开的mdf文件 1、找到要打开的数据库文件 2、该数据库文…

    2022年9月8日
    2.3K00
  • win8如何取消开机启动项

    win8取消开机启动项的方法 1、 点击电脑开始键,找到设置。 2、点击应用选项。 3、点进去之后这里有一个启动,点进去。 4、想要关闭的应用,这里点击后面的关闭就可以了。 关于“win8如何取消开机启动项”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频…

    2022年9月24日
    64200
  • MySQL事务的ACID特性及并发问题实例分析

    一、事务的概念 一个事务是由一条或多条对数据库操作的SQL语句所组成的一个不可分割的单元,只有当事务中所有操作都正常执行完了,整个事务才会被提交给数据库,如果有部分事务处理失败,那么事务就要回滚到最初的状态,因此,事务要么全部执行成功,要么全部失败。 所以要记住事务几个基本概念,如下: 事务是一组S…

    2022年9月13日
    64300
  • Excel small函数如何使用

    一、函数语法: SMALL(array,k) k 为返回的数据在数组或数据区域里的位置(从小到大)。 array 查找的数据区域。 二、SMALL函数使用实例: 1.数组是A3到A7,从中查找最小数和倒数第二小的数。 2.在C4单元格输人=SMALL(A3:A7,1), 3.回车以后C4单元格取得最…

    2022年9月2日
    55100
  • jquery动画队列怎么实现

    jquery动画队列是一个动画函数队列,把多个的动画任务放到一起,确保只有当前面的任务完成了,才会开始下一个任务;可以对jQuery元素应用fade、slide、animate等动画,当在JQuery对象上调用动画方法时,如果对象正在执行某个动画效果,那么会把后面的动画效果,放在一个队列里面,然后按…

    2022年9月10日
    59100
  • Redis环境搭建和使用的方法

    一、常见的非关系型数据库NOSQL分类 NOSQL类型 主要数据库产品 类型特色 K-V键值对存储类型 Redis、Memcached 使用key可以快速的查询到value,Memcached可以支持String类型的值value,Redis支持的值的数据类型很多如:Stringsethashsor…

    2022年9月18日
    1.0K00
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部