免杀:参考网址 xz.aliyun.com/t/5152
隐藏:漏洞银行公开课
一、函数eval 与函数 assert介绍
eval函数
eval 是一个语言构造器而不是一个函数,不能被可变函数调用
可变函数:
通过一个变量,获取其对应的变量值,然后通过给该值增加一个括号(),让系统认为该值是一个函数,从而当做函数来执行。
通俗的说比如 <?php $a=eval;$a() ?> 这样是不行的,也造就了用eval的话达不到assert的灵活,但是在php7.1以上assert也不行
assert函数
assert() 回调函数在构建自动测试套件的时候尤其有用,因为它允许你简易地捕获传入断言的代码,并包含断言的位置信息。 当信息能够被其他方法捕获,使用断言可以让它更快更方便!
二、免杀方法——字符串变形
字符串变形多数用于BYPASS安全狗,相对于D盾,安全狗更加重视"形"
一个特殊的变形就能绕过安全狗,PHP手册中,有着很多关于操作字符串的函数
ucwords() //函数把字符串中每个单词的首字符转换为大写。
ucfirst() //函数把字符串中的首字符转换为大写。
trim() //函数从字符串的两端删除空白字符和其他预定义字符。
substr_replace() //函数把字符串的一部分替换为另一个字符串
substr() //函数返回字符串的一部分。
strtr() //函数转换字符串中特定的字符。
strtoupper() //函数把字符串转换为大写。
strtolower() //函数把字符串转换