CTF-安恒十二月月賽部分writeup
CTF-安恒十二月月賽部分writeup
這次題目都比較簡單蛤,連我這菜雞都能做幾道。
WEB1-ezweb2
打開網站,啥也沒有,審計源代碼,還是啥都沒有,也沒什麽功能菜單,掃了一下目錄,掃到了admin.php,但是提示:你不是管理員。好吧,抓個包看看
解一下碼--:
將user改為admin,發現直接跳轉到了admin.php頁面。
這個框試了一下是可以執行命令的,ls
但是ls / 卻錯誤,ls -l 也是錯誤,應該是過濾了空格通過 $IFS 可以繞過
cat /ffLAG_404 也就是cat$IFS/ffLAG_404即可讀取flag
flag為:flag{6f1d95159e3b90ed28186c518dd15e8c}
WEB2-easy
是一道代碼審計題
代碼如下
<?php @error_reporting(1); include ‘flag.php‘; class baby { public $file; function __toString() { if(isset($this->file)) { $filename = "./{$this->file}"; if (file_get_contents($filename)) { return file_get_contents($filename); } } } } if (isset($_GET[‘data‘])) { $data = $_GET[‘data‘]; preg_match(‘/[oc]:\d+:/i‘,$data,$matches); if(count($matches)) {die(‘Hacker!‘); } else { $good = unserialize($data); echo $good; } } else { highlight_file("./index.php"); } ?>
unserialize 一眼就看到了是反序列化題目,
用戶類定義了一個__toString為了讓應用程序能夠將類作為一個字符串輸出(echo $good),而且其他類也可能定義了一個類允許__toString讀取某個文件。
那麽構造反序列化字符串即可讀取任意文件,但是題目存在正則篩選,preg_match(‘/[oc]:\d+:/i‘,$data,$matches);篩掉了[oc]:數字:。
如果正常的反序列化payload:O:4:"baby":1:{s:4:"file";s:8:"flag.php";}中前面的O:4:符合正則的條件,因此將其繞過即可。利用符號+就不會正則匹配到數字
所以payload為:O:+4:"baby":1:{s:4:"file";s:8:"flag.php";}
flag為flag{ad2328a2c3f0933c053fd3c6f28f6143}
MISC2-簽到
關註官方微信號 回答腦筋急轉彎即可 答案為蝸牛
MISC3-學習資料
題目只有一個txt可以打開
壓縮包是加密的,沒有密碼提示,也不是壓縮包偽加密,那只能爆破了 上工具ARCHPR
N年以後....
密碼居然有10位 : 1qazmko098
word隱寫嘿嘿,套路1檢查文檔
有是有,但是找半天,後來發現flag在圖片後面......
所以flag為flag{edaa144c91a4e5b817e4a18cbdb78879}
其實把word後綴改為zip,打開找word/document.xml
MISC4-juju
壓縮包裏只有一張png圖,一頓測試後,發現在kali打不開
那就是說圖片的文件內容肯定被改了,題目提示說有11只豬,但是png只有幾只,所以大概知道是什麽了
上winhex
這兩個位置決定著圖片的高度,如果更改它的值,圖片高度也會發生變化,值越大圖片越長
改了後面的參數幾次還是沒出來,所以直接該前一位 02為22
好了,圖片夠長了
base的格式,但是不是base64,是base32,解一下得到flag
所以flag為flag{a213072327f762855e475779eb081ca3}
CTF-安恒十二月月賽部分writeup