2024NSSCTF签到

图片[1]-2024NSSCTF签到-松鼠博客

在submit.php可以提交个人博客链接,然后在save_user.php check一下,数据会被序列化写进一个文件中,最后可以在/show_blog.php?file=php.txt被反序列化加载。这是这个网站的正常用法。

在blog的位置,既然可以是博客链接,那么尝试file伪协议或者php、data伪协议读取文件。发现php和data都不能用,但是flie伪协议可以,所以可以进行任意文件读取。

flag没读出来=-=

图片[2]-2024NSSCTF签到-松鼠博客

看一下save_user.php是怎么读文件的:是通过curl_exec();

图片[3]-2024NSSCTF签到-松鼠博客

再看一下show_blog.php是怎么读文件的:是通过include,这里是文件包含,说明可以执行php代码。

图片[4]-2024NSSCTF签到-松鼠博客

图片[5]-2024NSSCTF签到-松鼠博客

这里包含的文件只有username和blog可控,也就是说,我们如果可以在username或者blog创建的时候写一个马进去,就可以rce了。但是username过滤了<,不能用,blog这里可以用,试试ls:

这里会匹配伪协议格式,所以得用一个伪协议,后面可以用井号或者问号分割,不能用空格,会报错。

图片[6]-2024NSSCTF签到-松鼠博客

图片[7]-2024NSSCTF签到-松鼠博客

成功执行!发现当前目录下有一个README,读一下试试。

都说了是签到了,提权的事就之后再说吧
执行 readflag 即可获得 flag 哦

看来是要执行readflag

可以传这样一个马上去

file:///etc/passwd#<?=exec($_GET[123]);?>

图片[8]-2024NSSCTF签到-松鼠博客

吗的老子找了半天readflag在哪,结果在网站根目录下,而且名字叫readflag.sh

图片[9]-2024NSSCTF签到-松鼠博客

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容