![图片[1]-2024NSSCTF签到-松鼠博客](https://squirrelblog.com/wp-content/uploads/2024/11/Pasted-image-20241023120509-1024x457.png)
在submit.php可以提交个人博客链接,然后在save_user.php check一下,数据会被序列化写进一个文件中,最后可以在/show_blog.php?file=php.txt被反序列化加载。这是这个网站的正常用法。
在blog的位置,既然可以是博客链接,那么尝试file伪协议或者php、data伪协议读取文件。发现php和data都不能用,但是flie伪协议可以,所以可以进行任意文件读取。
flag没读出来=-=
![图片[2]-2024NSSCTF签到-松鼠博客](https://squirrelblog.com/wp-content/uploads/2024/11/签到2.png)
看一下save_user.php是怎么读文件的:是通过curl_exec();
![图片[3]-2024NSSCTF签到-松鼠博客](https://squirrelblog.com/wp-content/uploads/2024/11/签到3-1024x393.png)
再看一下show_blog.php是怎么读文件的:是通过include,这里是文件包含,说明可以执行php代码。
![图片[4]-2024NSSCTF签到-松鼠博客](https://squirrelblog.com/wp-content/uploads/2024/11/签到4.png)
![图片[5]-2024NSSCTF签到-松鼠博客](https://squirrelblog.com/wp-content/uploads/2024/11/签到5.png)
这里包含的文件只有username和blog可控,也就是说,我们如果可以在username或者blog创建的时候写一个马进去,就可以rce了。但是username过滤了<,不能用,blog这里可以用,试试ls:
这里会匹配伪协议格式,所以得用一个伪协议,后面可以用井号或者问号分割,不能用空格,会报错。
![图片[6]-2024NSSCTF签到-松鼠博客](https://squirrelblog.com/wp-content/uploads/2024/11/签到6-1024x427.png)
![图片[7]-2024NSSCTF签到-松鼠博客](https://squirrelblog.com/wp-content/uploads/2024/11/签到7-1024x285.png)
成功执行!发现当前目录下有一个README,读一下试试。
都说了是签到了,提权的事就之后再说吧
执行 readflag 即可获得 flag 哦
看来是要执行readflag
可以传这样一个马上去
file:///etc/passwd#<?=exec($_GET[123]);?>
![图片[8]-2024NSSCTF签到-松鼠博客](https://squirrelblog.com/wp-content/uploads/2024/11/签到8.png)
吗的老子找了半天readflag在哪,结果在网站根目录下,而且名字叫readflag.sh
![图片[9]-2024NSSCTF签到-松鼠博客](https://squirrelblog.com/wp-content/uploads/2024/11/签到9.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容