渗透测试(五)远程命令注入
本文最后更新于162 天前,其中的信息可能已经过时,如有错误请发送邮件到fupcode@outlook.com

远程命令注入(Remote Command Injection,简称 RCE)是一类严重的安全漏洞,通常出现在 Web 应用或网络服务中。它允许攻击者向目标服务器发送恶意命令,从而在服务器上执行任意代码。对渗透测试者而言,远程命令注入不仅提供了直接控制目标系统的途径,还能帮助进一步扩展攻击面,提升权限或植入持久后门。

一、注入场景

1. 命令行参数传递

这是命令注入最直接的表现形式。应用程序使用 system()exec()popen() 等函数或直接执行 Shell 脚本,将用户输入直接拼接到命令行并在 Shell 中执行。只要攻击者能够控制输入,就可能借助特殊字符(如 ;&& 等)在 Shell 中分隔和注入其他命令。

2. 文件操作或网络工具调用

此场景应隶属于上一场景,但此场景的特征更为明显。应用程序调用系统工具(如 pingcurlnslookup 等)并将用户输入作为参数,执行外部命令时,如果没有处理输入,就可能被攻击者插入额外命令。

3. 文件上传中的命令注入

文件上传注入是一种间接的命令注入攻击。攻击者通过上传恶意文件(如带有木马的 PHP 文件),并在服务器上执行该文件,从而获得对系统的控制。

此方式主要依赖服务器是否能够执行上传的文件,举一个最简单的例子,如果允许上传 .php 等可执行文件到网站目录下,则可通过网站自带的 php 解析功能执行恶意代码。但往往服务器具有类型检查,只允许上传图片等特定文件,此时则需要伪装木马,但难点在于让木马被解析执行,例如 php 通过 include 解析一个含有木马代码的图片文件。

二、注入木马示例

php 木马

一句话 php 木马

<?php system($_POST['cmd']); ?>

system 这些函数是被默认禁用的,此时可退而求其次,试一试 eval.

<?php @eval($_POST['phpcode']); ?>

三、绕过检测

  • 请求头检测:修改请求头的 MIME 类型
  • 后缀检测:使用 .php3.phtml 等可以被服务器识别为 PHP 的扩展名;使用 .pphphp 双写绕过; %00 截断技巧;或上传允许的后缀名然后寻找执行漏洞。
  • 图像魔术字检测cat muma.php origin.png >> 1.png 可伪造一个图片木马,然后寻找执行漏洞。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇