用户
搜索
  • TA的每日心情
    奋斗
    2019-3-4 00:30
  • 签到天数: 316 天

    连续签到: 10 天

    [LV.8]以坛为家I

    i春秋作家

    Rank: 7Rank: 7Rank: 7

    13

    主题

    271

    帖子

    3192

    魔法币
    收听
    0
    粉丝
    3
    注册时间
    2017-3-22

    i春秋签约作者

    发表于 2018-11-19 22:26:50 1511424
    本帖最后由 __LSA__ 于 2018-11-20 00:06 编辑

    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无法注入
    sqlmappb00.png
    sqlmap v1.2成功注入
    sqlmappb02.png

    同理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组成:

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

    看看v1.2的测试payload:
    sqlmappb01.png

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

    而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
    sqlmappb08.png sqlmappb09.png sqlmappb10.png

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

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

    可以看出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. 不能过于依赖工具,尽量工具+手工测试比较保险。




    评分

    参与人数 1魔法币 +10 收起 理由
    初来乍到01 + 10 欢迎分析讨论交流,i春秋论坛有你更精彩!.

    查看全部评分

    回帖奖励 +5

    最好 是先手工测试一下,然后在用工具,工具可以选择几个版本都试一下
    有一天他会突然觉得累了甚至忘了初衷 放弃了梦想也许因为年纪的关系奔波于现实 然后拉黑了网络认识的所有人或者说不用了一个号码换了一个QQ 那么记得他叫大叔 这个网络他曾来过
    使用道具 举报 回复
    发表于 2018-11-21 10:19:56

    回帖奖励 +5

    手工测试,然后几个工具试一下
    使用道具 举报 回复

    回帖奖励 +5

    之前没遇到过,学习了。
    使用道具 举报 回复
    发表于 2018-11-21 13:14:31

    回帖奖励 +5

    如果手工判断存在有问题,而工具检测没有问题,那就换个攻击或版本,因为这个时候肯定是发开的方式不正确
    不服你TMD来打我啊!
    使用道具 举报 回复
    发表于 2018-11-21 15:52:44

    回帖奖励 +5

    sqlmap最新版本的绕wef脚本有点问题,我用老版本没什么问题,但是新版本一模一样就是绕不过
    使用道具 举报 回复
    发表于 2018-11-21 19:52:52

    回帖奖励 +5

    手工测试+各个版本sqlmap测试
    使用道具 举报 回复
    发表于 2018-11-21 21:29:07

    回帖奖励 +5

    类似的情况在安恒一个选拔赛中的新闻题目中也出现了,高版本的跑不出flag低版本的有flag
    使用道具 举报 回复

    回帖奖励 +5

    哇,我居然一直不知道这个问题。。。我都是最新版的。。。
    使用道具 举报 回复
    发表于 2018-11-22 09:26:51

    回帖奖励 +5

    CTF见过……
    使用道具 举报 回复
    发表于 2018-11-22 14:49:05

    回帖奖励 +5

    666666666666666666666
    使用道具 举报 回复
    发表于 2018-11-24 14:55:16
    我都没注意到,大佬niupi
    使用道具 举报 回复
    感谢分享
    使用道具 举报 回复
    发表于 2018-11-26 22:01:12
    涨知识了
    使用道具 举报 回复
    这个倒还真没注意过
    使用道具 举报 回复
    12下一页
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册