前言
在渗透测试时,我们向网站服务器写入一句话webshell时,往往会被某狗,某锁,某卫士拦截,导致我们拿不下shell。
一句话webshell 的工作原理:当前PHP脚本会去读取并执行变量中的内容。
文章我介绍两种方法:
1.eval/assert花式变形
2.写入缓存,执行webshell
eval/assert 花式变形
这是最常见的一句话webshell,当然这是不免杀的,一些常见的waf 是基于特定规则查杀文件,当我们绕过这些规则就实现了所谓的免杀。
废话不多说只直接上免杀一句话
当然这个webshell 也可以绕过某锁,首先我们先在网站目录下写入最简单的一句话webshell
不用尝试就知道肯定会被拦截
但是这里一句话是免杀的
下面是一些不常用的PHP函数,可以利用这些函数编写免杀一句话,函数用法自行百度。
写入缓存,执行webshell
这种方法用到两个函数
tempnam() : 建立一个具有唯一文件名的文件
sys_get_temp_dir() : 返回用于临时文件的目录
首先介绍一个概念:定界符,PHP定界符的作用是按照原样,包括换行格式什么的,输出在其内部的东西;
举个栗子:
那么我们可以在定界符内写入php代码,利用前面提到的两个函数构造webshell。
代码如下:
这种方法同样也可以绕过某锁
小小总结
文章提供了两种编写免杀一句话的思路,当然还有更多编写免杀一句话的奇淫技巧。免杀就是在不断尝试的基础上玩转的,欢迎和大家一起探讨更多姿势。
领取专属 10元无门槛券
私享最新 技术干货