php马作为最常用的上马方式之一,各类waf对其的防护与检测也在不断完善
相信各位在对一些网站渗透测试中碰到过传马被删或者被拦的情况,刚好最近整理了一些php免杀方法,下面来分享一下
字符串类
字符串拼接:
base64加密:
函数绕过:
ucwords() //把每个单词的首字符转换为大写ucfirst() //首字符转换为大写trim() //移除字符串两侧的字符substr_replace() //函数把字符串的一部分替换为另一个字符串substr() //函数返回字符串的一部分strtr() //函数转换字符串中特定的字符strtoupper() //把所有字符转换为大写strtolower() //把所有字符转换为小写strtok() //函数把字符串分割为更小的字符串str_rot13() //函数对字符串执行 ROT13 编码chr() //从指定 ASCII 值返回字符hex2bin() //把十六进制值转换为 ASCII 字符bin2hex() //ASCII 字符的字符串转换为十六进制值gzcompress()、gzdeflate()、gzencode() //字符串压缩gzuncompress()、gzinflate()、gzdecode() //字符串解压base64_encode() //base64编码base64_decode() //nase64解码pack() //数据装入一个二进制字符串unpack() //从二进制字符串对数据进行解包
不常见函数:
gzcompress() //此函数使用数据格式压缩给定的字符串pack() //将输入参数打包成 format 格式的二进制字符串。openssl_encrypt() //使用给定的方法和密钥加密给定的数据,返回原始或 base64 编码字符串
使用
gzcompress():
pack():
$test=pack("H14","706870696e666f");$a = "a";$s = "s";$c=$a.$s.$_GET["test2"];$c($test);#assert(phpinfo())
openssl_encrypt:
传参绕过:
cookie:
之后通过burp抓包修改PHPSESSID即可
session:
burp通过cookie添加session,之后取出session
特征绕过
替换
[] {}[] foreach
魔术方法:
__FILE__:返回当前文件的绝对路径(包含文件名)。__CLASS__:返回当前的类名(包括该类的作用区域或命名空间)。__NAMESPACE__:返回当前文件的命名空间的名称
自动免杀:掩日免杀(分离)(网络)
不常见的:
注释和空白符绕过:
类方法调用:
demo()($_GET[1]);
类的静态方法:
总结:
php上马免杀,理论上是只要绕过waf就可以,但特殊情况下存在驻场人员手动监控,看到一些奇怪的参就直接给你ban了,所以各位师傅尽量不要在一些敏感时期进行渗透测试,仅用于技术学习
推荐大家去看一下这位师傅的文章php免杀合集 - 跳跳糖 (tttang.com),里面还有一些扩展,十分详细
来源地址:https://blog.csdn.net/ZxC789456302/article/details/127473366