AHU 2022 CTF新生赛web_writeup
第一次當出題人,給新生做的,簡簡單單啦~
按不了的F12
啟動靶機:
根據題目名稱可知,這題與f12按鍵有關,即查看網頁源代碼。
按下f12發現f12按鍵被禁用:
嘗試另一種方式:右鍵->查看網頁源代碼
發現同樣被禁用,嘗試第三種方式:ctrl+u
發現同樣被禁用,于是,在chrome瀏覽器的選項欄中打開開發者工具或ctrl+shift+i:
獲得flag。
GET and POST
啟動靶機:
根據題目名稱可知,這題考察的是http協議的請求方法,主要是get和post兩種。
觀察url發現:
需要傳入一個參數:what
根據網頁上的提示,將flag作為payload傳入:
頁面反饋:
這里考察更改請求方式的方法。
使用burpsuite抓包:
使用Rpeater模塊更改請求參數:
更改如下:
發送數據包,獲得flag:
世界上最好的語言
啟動靶機:
發現php源碼,分析源碼可知:
程序從get請求的參數中獲取變量flag,然后將flag的值進行md5加密,并將加密后的數據與字符串"s155964671a"進行md5加密后的數據進行比較,若相等且flag的值不與給定字符串相同,則輸出flag。
編寫腳本,獲取字符串"s155964671a"的md5值:
發現結果以0e開頭,由此可知存在md5碰撞漏洞,使用md5值同樣以0e開頭的其它字符串作為payload傳入(網上有很多,也可以自己寫腳本跑出來,這里不贅述)
獲得flag:
補充知識:
MD5是一種哈希算法,任意長度的輸入經過處理后輸出為128位的信息,且盡量使結果不沖突和信息不可逆。
php是一門弱類型語言,腳本中進行兩個值的比較時,使用的是 == ,這是一種弱類型比較運算,之比較值,不比較類型。
PHP規定當進行字符串與數字的弱比較時,會進行如下步驟:
先看字符串開頭是否為數字,如果為數字,則截止到連續數字的最后一個數字,即"123abc456"=>123
如果開頭不為數字,則判斷為false,即0。因此
(“aaa123”==0) =>true
(“123a”==123) =>true
由于兩個md5值字符串都以0e開頭且0e后不含有字母,所以在使用 == 進行比較時,都被當作用科學計數法表示的數字,因為0的n次冪仍為0,所以這條語句恒為真。
愛冒險的朵拉
啟動靶機:
非常可愛的畫面hhh~
點擊頁面上的幾個按鈕,發現除了頁面上的提示變化,url也有相應的變化:
由此可知,頁面顯示不同的信息是通過讀取服務器上的不同文件實現的,由此推測存在目錄穿越(任意文件讀取)漏洞,即通過更改url,可以讀取服務器上的任意文件。
根據題目的提示信息:
嘗試構造payload,讀取服務器根目錄下的flag.txt
http://172.23.12.119:10869/index.php?place=../../../../flag.txt這里的…/代表的是linux文件系統中的上層目錄,通過疊加可以逐層返回到上一層目錄,直至根目錄(層數不一定,可以根據需要嘗試)
傳入參數,獲得flag:
小心搗蛋鬼
啟動靶機:
發現兩個base64字符串:
572R56uZ6KaB6K6w5b6X5aSH5Lu95ZOm 5pivdGFyLnh65LiN5pivdGFyLmd4fg==分別解密后得到:
網站要記得備份哦 是tar.xz不是tar.gx~由此推測服務器上存在網站的備份文件泄漏漏洞
獲取泄露文件的方法一般就是先尋找備份目錄以及備份文件名然后下載
常見的備份文件所在目錄
/ /admin /data /default /index /login /manage /cmseditor /db /bbs /phpadmin常見的備份文件的文件名
web website backup back www wwwroot temp db data code test admin user sql常見的備份文件后綴名
.rar .zip .7z .tar.gz .bak index.php.bak .txt .old .temp _index.html .swp .sql .tgz tar可以手工逐個嘗試,也可以寫腳本跑出來
根據頁面上兩個提示,直接訪問 url/www.tar.xz 下載備份文件
獲取下載文件后解壓,進入備份文件夾:
發現一個備份文件和一個.git文件夾,首先查看index.php.bak
發現flag不在這里面,于是想到.git文件,可能需要git回滾
使用git log命令查看commit信息
使用git reset xxx --hard命令進行回滾(xxx表示commit編號)
回滾至323e1cc649260beea8af3b2ea6bfe9b6ebbe02e7版本時,發現index.php.bak.swp文件,推測還需要還原vim編輯器的備份文件
使用命令 vim -r index.php.bak.swp 或 nvim -r index.php.bak.swp打開備份文件:
獲得flag。
總結
以上是生活随笔為你收集整理的AHU 2022 CTF新生赛web_writeup的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: FPV无人机集训召集令~
- 下一篇: 交付是一种基本的态度
