備份是個好習慣


備份是個好習慣

http://123.206.87.240:8002/web16/

 

 

 

通過提示 關鍵詞 ’備份‘ 可以聯想到 →  備份文件

備份文件一般都是.bak結尾的

 

用工具掃一下

這里推薦大佬的工具  yihangwang/SourceLeakHacker

 

https://git.coding.net/yihangwang/SourceLeakHacker.git

 

 

 可以看到index.php.bak

訪問一下試試

 

有一個bak備份文件 ,不多解釋了,下載后打開

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: Norse
 5  * Date: 2017/8/6
 6  * Time: 20:22
 7 */
 8 
 9 include_once "flag.php";
10 ini_set("display_errors", 0);  //in_set 設置指定配置選項的值 11 $str = strstr($_SERVER['REQUEST_URI'], '?');   //strstr 截取字符串 12 $str = substr($str,1);    // 返回字符串的一部分 1為字符串總數的返回開始位 13 $str = str_replace('key','',$str);  //在$str 中替換 key 為 '' 14 parse_str($str); //把字符串解析到變量里 這里可以這么理解字符串為key1=1,key2=2 → $key=1;$key2=2 15 echo md5($key1);
16 
17 echo md5($key2);
18 if(md5($key1) == md5($key2) && $key1 !== $key2){
19     echo $flag."取得flag";
20 }
21 ?>

 

 

 

 

 

11行  strstr 獲得URI從'?'往后(包括'?')的字符串         stristr 同strstr用法一樣,不區分大小寫

12行  substr 去掉'?'

13行  str_replace 把字符串中的'key'替換為空可以使用類似這樣的語句:kkeyey 處理

14行  parse_str 把字符串解析到變量中

 

 

end 最后需要得到key1,key2不相等而二者md5相等,可以利用php弱類型比較繞過

 

php弱類

https://www.cnblogs.com/Mrsm1th/p/6745532.html

https://cloud.tencent.com/developer/article/1046701

 

 

 

 

 

 

 


 

 

這里稍微提一下php弱類

 

首先,我們一般說php變量類型8種

 

標量類型:布爾boolean,整形integer,浮點float,字符string

 

復雜類型:數組array,對象object

 

特殊類型:資源resource,空null

 

 

與別的語言不同,php是一個弱類型的語言

==表示的是等於 ,只要數值等於就可以了,類型無所謂的

就是說上面列舉的那些類型 之間相互比較  只看值就行了 不用看類型

 

 

 

php弱類型語言總的類型判斷

php一個數字和一個字符串進行比較或者進行運算時,PHP會把字符串轉換成數字再進行比較。

PHP轉換的規則的是:若字符串以數字開頭,則取開頭數字作為轉換結果,若無則輸出0。

 

 

 

 

 

 

那么回過頭來看題目(-_-)

這一題需要構造的是 $key1 == $key2

構造的要求是md5值相同,但未計算md5的值不同的繞過。

那我們就來構造  O(∩_∩)O

 

介紹一批md5開頭是0e的字符串,

0e在比較的時候會將其視作為科學計數法,所以無論0e后面是什么,

0的多少次方還是0md5('240610708') == md5('QNKCDZO')成功繞過!

 

QNKCDZO 0e830400451993494058024219903391 s878926199a 0e545993274517709034328855841020
  
s155964671a
0e342768416822451524974117254469 s214587387a 0e848240448830537924465865611904 s214587387a 0e848240448830537924465865611904 s878926199a 0e545993274517709034328855841020 s1091221200a 0e940624217856561557816327384675 s1885207154a 0e509367213418206700842008763514

 

 

 

 

 

構造payload:?kkeyey1=QNKCDZO&kkeyey2=240610708

 

 

 

 

 

參考 :

https://blog.csdn.net/xuchen16/article/details/82756559

https://blog.csdn.net/eustiasora/article/details/79149411


免責聲明!

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



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