CTF Web安全

[HarekazeCTF2019]Easy Notes(代码审计)

Posted on 2020-03-17,1 min read

这题。先去github上。把源码下下来。
先随便用个号登陆。存在一个add note和下载功能。成为admin得到flag。着重看下下载功能。


包含了init.php。
init.php又包含了config.php和lib.php
lib.php是一些函数。config.php定义了session的保存位置为/var/www/tmp/
想到写入session伪造admin用户。继续看

此处文件名好像可控。我们把用户名改为"sess_"、type改为点号。然后经过替换置空。文件名就为sess_-xxxxxxxx
现在文件名可控了。内容呢。

ok。内容也得到了。
session默认使用的是php序列化引擎
当我们输入admin|b:1;时。可以成功访问admin属性为True

去靶机上试试
title为admin|b:1;
然后下载时。type设置为点号
会下载一个最终文件名的压缩包。
仿佛数据不能正常解析

我们可以通过|N;来闭合前面的杂乱数据。
最终效果为xxxx|N;admin|b:1;xxxxxx

下一篇: [DDCTF 2019]homebrew event loop→