本期的技术分享是由我们的实习攻城狮小哥所写,小哥现在还木有毕业,作为名副其实的小鲜肉一枚,为我们分享了一句话木马及绕过WAF的N种姿势。
不了解一句话木马和WAF的童鞋可以从百度百科自行了解~
Eval函数去执行post过来的数据,这个数据当然就是代码。在代码中,我们可以自定义实现所要的功能。比如说是文件管理,或者是模拟终端等。
但是众所周知,服务器端的语言又比较多,极少有人能够知道这么多语言中各个函数的用途。所以这个时候菜刀之类的工具应运而生。它将我们常用的代码封装在软件之中,通过和一句话木马的交互完成工作。如果各位对此菜刀有兴趣,最下面奉上“新版中国菜刀”(Cknife)的开源代码。
回到正题,通过上面的描述,那么一句话木马的工作机制也就很明了了
一句话木马主要包含两个功能,第一个是必须可以接收数据,这个数据是get或者post以及其他方式传送到服务端的指令代码。第二个需要将接收到的代码成功执行。
可以发现,菜刀通过post方式发送数据,将数据进行url解码和base64解码,还原后的php代码如下:
通过对WAF的反复测试,发现对一句话木马的检测,WAF主要分为两个部分。第一个部分,当一句话木马在服务器中的时候,首先检测文件中的内容,正如上文一句话木马工提到的两大特征,WAF也会匹配上述两个特征,当一个php文件具有执行功能和接收数据功能时就会被判定为具有了一句话木马的特征,所以说对于未变形的一句话木马来说,上传上去活下来的机率几乎为零,等不到访问就被查杀掉了。
其第二部分检测在于当一句话木马和菜刀进行通信的时候,WAF会判定提交的数据,当发现危险函数特征的时候也会进行拦截。而且根据测试结果推测,WAF出于降低误拦截的考虑,短时间内并不会对可能是一句话木马的连接进行拦截。而是当多次出现时候才确定。
本文原创,作者:congtou,其版权均为华盟网所有。如需转载,请注明出处:https://www.77169.net/html/27244.html
官方
3.20K篇文章
141.13M总阅读量