文件上传16.17关

二次渲染-Pass-16

直接看源码:文件上传16.17关_第1张图片

我们还是按照13,14,15的思路进行上传:发现没有info信息了。文件上传16.17关_第2张图片

二次渲染的时候把码的信息给干掉了。怎么办呢?
把原图和他修改过的图片进行比较,看看哪个部分没有被修改。将php代码放到没有被更改的部分,再重新上传即可绕过。
使用HxD Hex Editor进行比较
下载地址:https://mh-nexus.de/en/hxd文件上传16.17关_第3张图片

自己搞,jpg图片容易损坏,建议试用gif尝试。

可以在没有修改的地方去插入码,二次渲染的时候就不会被干掉了。

重新上传:文件上传16.17关_第4张图片

温馨提示:在找GIF图片的时候一定要记得找上传之后能够打开的,不然会制作失败。


条件竞争-Pass-17
查看源码:文件上传16.17关_第5张图片

我们看代码他是先将图片上传上去,才开始进行判断后缀名、二次渲染。如果我们在上传上去的一瞬间访问这个文件,那他就不能对这个文件删除、二次渲染。这就相当于我们打开了一个文件,然后再去删除这个文件,就会提示这个文件在另一程序中打开无法删除。
这个地方需要对并发有一定了解才行。
总体操作是,直接上传一个php文件,利用burp抓包,然后跑一个Null payloads文件上传16.17关_第6张图片

文件上传16.17关_第7张图片文件上传16.17关_第8张图片文件上传16.17关_第9张图片
然后发包,用另一个浏览器一直访问shell.php地址,只要在上传的一瞬间,他还没来的及删除、修改就可以了。

文件上传16.17关_第10张图片

你可能感兴趣的:(安全)