2020 Ciscn 初赛 部分WriteUp
师傅们太太太太强了orz
感谢队友们带飞~~~
第一次在规模这么大的比赛拿到第一,开心~
Web
easyphp
1 |
|
代码审计。
php多进程,主进程会等待子进程运行结束,子进程异常退出会触发phpinfo()
。
直接拿php函数列表fuzz。
以上函数均可导致子进程异常退出,随便找一个即可。
payload:
1 |
|
flag在环境变量 ICQ_FLAG字段。
babyunserialize
扫描目录,存在源码泄漏www.zip
。
fatfree框架,版本3.7.2,最新版,目测0day。
首页提示反序列化:
1 |
|
挖掘反序列化链,全局搜索__destruct
,只有三处起点,最后选择\DB\Jig
为起点。
1 |
|
跟进write
方法
1 |
|
调用\Base->write
,继续跟进。
1 |
|
$file
,$data
均可控,可以任意文件写。
POC:
1 |
|
写入shell后,读取phpinfo,flag在环境变量 ICQ_FLAG字段。
rceme
1 |
|
题目自己实现了一个简单模板引擎,line 44 eval
可以代码注入。
利用反引号``直接绕过过滤,执行命令。
起一个http服务器,写入反弹shell命令。
1 |
|
反弹shell
1 |
|
littlegame
set-value
原型链污染。
Affecting set-value package, versions <2.0.1 || >=3.0.0 ❤️.0.1 https://snyk.io/vuln/SNYK-JS-SETVALUE-450213
POC:
1 |
|
题目版本是 3.0.0。
漏洞点在/route/index.js
1 |
|
/Privilege
处可以触发原型污染。污染后,按照路由请求,验证密钥即可。
1 |
|
exp:
1 |
|
easytrick
1 |
|
审计源码,需要两个变量,变量1先强转成string类型,然后两个变量需要强弱类型比较不相等且md5相等。
使用浮点数中的NAN即可绕过。
exp:
1 |
|
Pwn
babyjsc
把pwn爷爷做自闭了,真的坑。
题目给了个docker 镜像,里面有个server.py
。
1 |
|
一看环境python2,完事了。
漏洞出在line 5的input()
。
python2
input()
⇒ python3eval(input())
。
python2应该用raw_input()
。
不知道是出题人环境配错了,还是就是预期解。。
exp:
1 |
|
Misc
签到
所以最后凑出来十个澳门ip没有= =
the_best_ctf_game
随便找个notepad打开,直接就能看到flag。
WamaCry1
有个壳是 Enigma Virtual Box。
用脱壳器可以解压获得里面的东西。
逆向 son.exe 获得远程服务器的 ip 和端口。
WamaCry逻辑:
生成公私钥 -> 公钥加密文件,私钥上传至服务器
服务器ip 120.53.241.181
,端口:12345。
nmap端口扫描
1 |
|
8080端口存在tomcat服务,弱口令tomcat/tomcat进入后台。
上传war包,getshell。
/tmp
目录下找到私钥,以及server,私钥格式不对。
1 |
|
逆向server。
server对传输文件每行的首个字符异或1。
将获取到的密钥每行首个字符异或1,还原私钥。
1 |
|
解密得到flag。
1 |
|