BUUCTF [ACTF2020 新生賽]BackupFile
阿新 • • 發佈:2021-11-13
- BackupFile,開啟網頁啥也沒有,用dirsearch掃描目錄
- 常見的備份檔案字尾名有 .git .svn .swp .~ .bak .bash_history
- 得到一個這個檔案
- 訪問 下載下來得到
<?php include_once "flag.php"; if(isset($_GET['key'])) { $key = $_GET['key']; if(!is_numeric($key)) { exit("Just num!"); } $key = intval($key); $str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3"; if($key == $str) { echo $flag; } } else { echo "Try to find out source file!"; }
- GET型別,先要經過 is_numeric($key) 審查,然後再經過 intval($key) 轉換
is_numeric()
:檢測變數是否為數字或數字字串,返回true或者false
intval()
:獲取變數的整數值 - 關鍵:$key == $str
php中有兩種比較的符號 == 與 ===
<?php
$a = $b ;
$a===$b ;
?>
=== 在進行比較的時候,會先判斷兩種字串的型別是否相等,再比較
== 在進行比較的時候,會先將字串型別轉化成相同,再比較
如果比較一個數字和字串或者比較涉及到數字內容的字串,則字串會被轉換成數值並且比較按照數值來進行
同時弱比較:如果比較一個數字和字串或者比較涉及到數字內容的字串,則字串會被轉換成數值並且比較按照數值來進行,在比較時該字串的開始部分決定了它的值,如果該字串以合法的數值開始,則使用該數值,否則其值為0。所以直接傳入key=123就行
7. 構造payload
http://5281fc14-7a98-4b08-8e21-c602c847e530.node4.buuoj.cn:81/?key=123
8. 得到flag
flag{ef6d9f77-937a-4f9b-9ce8-92a039f12f22}
原文連結:
https://blog.csdn.net/weixin_45674567/article/details/106412484
https://www.cnblogs.com/Mrsm1th/p/6745532.html