目錄
一、滑稽
二、計算器
方法一
方法二
三、alert
四、你必須讓他停下
五、頭等艙
六、GET
七、POST
方法一
方法二
八、source
九、矛盾
十、備份是個好習慣
一、滑稽
1.啟動環境后,訪問URL,頁面出現了一堆滑稽表情
2.按f12(或fn+f12)打開開發者工具查看網頁源碼,發現flag
二、計算器
啟動環境后訪問URL,出現了一個簡單的數學計算題,輸入答案時發現只能最多只能輸入1位
方法一
按f12點擊輸入框,將maxlength的值改為3,輸入正確答案即可得到flag
方法二
直接打開調試器在代碼中搜索flag
三、alert
1.啟動環境后訪問URL,出現一個彈窗,點擊確定后彈窗不斷出現
2.直接按f12在調試器中查看網頁源代碼,在最后一行的注釋中看到可疑信息
3.猜測應該是Unicode編碼,解碼后發現是flag
四、你必須讓他停下
1.啟動環境后訪問URL,頁面一直在不斷刷新
2.使用burpsuit持續抓包,在下圖出現時查看響應包
3.發送到repeater中查看響應包,響應包中發現flag
五、頭等艙
1.啟動環境后訪問URL,網頁源碼和f12均沒有什么發現
2.用burpsuite抓包,發送到repeater中查看響應包,在頭部FLAG字段中發現flag
六、GET
1.啟動環境后訪問URL,頁面出現一段代碼
代碼審計
????????這段代碼表示從 URL 中獲取 what 參數,輸出其值,并檢查是否為 'flag' ,若匹配則額外輸出 'flag{***}'。其中,$_GET 是 PHP 的一個超全局數組,用于獲取通過 URL 查詢字符串傳遞的參數。
2.根據代碼的提示,在URL后拼接/?what=flag,頁面回顯flag
七、POST
啟動環境后訪問URL,頁面出現一段代碼
代碼審計
????????這段代碼表示從 POST 請求獲取 what 參數,輸出其值,并檢查是否為 'flag',若匹配則輸出 'flag{***}'。其中,$_POST 是 PHP 的超全局數組,用于獲取通過 HTTP POST 方法提交的數據(通常來自表單提交)。
方法一
使用火狐插件HackBar,選中Post data輸入數據what=flag,頁面回顯flag
方法二
1.使用burpsuite抓包
2.發送到repeater中更改提交方式并插入內容what=flag,響應包中顯示flag
八、source
1.啟動環境后訪問URL,頁面沒有什么信息
2.f12發現了一個flag,但是是假的flag
3.打開kali虛擬機,掃描網站目錄
dirsearch -u http://117.72.52.127:14333/ -x 403
4.發現了一個flag.txt文件,也是假的
5.有許多git目錄,應該是git源碼泄露,訪問url/.git/
git源碼泄露是什么?
????????git 源碼泄露指的是通過git版本控制系統的某些操作或配置不當,導致存儲庫中的敏感信息(如源代碼、配置文件、密鑰等)被意外暴露給未經授權的訪問者。.git/config 可能包含遠程倉庫 URL,.git/HEAD 指向當前分支,.git/objects 存儲所有提交和文件內容。
與git相關的命令
git log:查看歷史記錄
git filter-branch 或 BFG Repo-Cleaner :刪除敏感數據
git reflog:記錄 HEAD 和分支的操作歷史,用于恢復丟失提交或查看操作記錄
git show:顯示指定提交Git對象詳細信息
6.使用wget將git源碼下載下來,文件會存儲到以url命名的文件夾中
?wget -r http://117.72.52.127:14333/
7.進入/.git目錄下,查看下載文件,發現有三個文件和flag相關
8.依次查看三個文件,即可找到flag
九、矛盾
1.啟動環境后訪問URL,頁面顯示一段代碼
代碼審計
????????這段代碼表示從 URL 獲取 num 參數,檢查其是否為數值,輸出該值,并檢查是否等于 1,若等于則輸出 'flag{********}'。is_numeric() 函數檢查輸入是否為數字類型,如果不是數字(例如字符串、數組等),則進入條件塊。
PHP 的 == 比較會嘗試將兩側值轉換為相同類型后再比較,對于字符串和數字的比較,PHP 會將字符串轉換為數字,如果字符串開頭是有效的數字部分,則取該部分作為數值,否則轉換為0。例如:
????????"1abc" == 1 為 true,因為 "1abc" 被轉換為 1
????????"abc" == 1 為 false,因為 "abc" 被轉換為 0?
????????"1" == 1 為 true,因為 "1" 被轉換為 1
2.在URL后拼接/?num=1aaa,頁面回顯num值與 flag
十、備份是個好習慣
1.啟動環境后訪問URL
2.打開kali虛擬機,掃描網站目錄
?dirsearch -u http://117.72.52.127:17267/ -x 403
3.訪問并下載index.php.bak文件,應該是一個index.php的備份文件
代碼審計
????????這段 PHP 代碼的作用是從 URL 的查詢字符串中提取參數,嘗試解析為 $key1 和 $key2,計算它們的 MD5 哈希值,并通過檢查哈希值相等但值不同的條件來輸出存儲在 flag.php 中的 $flag 變量拼接 "取得flag",然而由于 str_replace("key", "", $str) 刪除了 "key" 前綴,需輸入特定 MD5 碰撞對才能滿足條件并獲取 flag。
4.找到并拼接兩個值不同但哈希值相同的字符串,頁面回顯flag
/?kkeyey1=MMHUWUV&kkeyey2=MAUXXQC
聲明
1.本博客文章均為博主日常學習原創內容,轉載請注明出處。
2.文章內容如有涉及侵犯您的知識產權和版權問題,請及時與我聯系。
3.希望以上的學習經驗分享能對您有所幫助。
4.本內容僅供學習和研究使用,嚴禁用于任何非法或不道德的行為,任何違反法律的行為將由行為人自行承擔。