CTF——南郵攻防平臺(web)
一、簽到題
火狐瀏覽器中開啟頁面,F12開啟開發人員工具檢視網頁原始碼,發現flag:
二、md5 collision
題目所給的php原始碼如下:
<?php
$md51 = md5('QNKCDZO');
$a = @$_GET['a'];
$md52 = @md5($a);
if(isset($a)){
if ($a != 'QNKCDZO' && $md51 == $md52) {
echo "nctf{*****************}";
} else {
echo "false!!!";
}}
else{echo "please input a" ;}
?>
閱讀後我們發現要找到flag就要找到和‘QNKCDZO’md5加密後相同的字串。顯然“碰撞”找對應字串是幾乎不可能的,那麼推測應該是利用PHP語言的弱型別的特性:
1)將QNKCDZO進行MD5加密,密文為0e830400451993494058024219903391,發現密文為0e開頭,PHP在進行比較運算時,如果遇到了0e\d+這種字串,就會將這種字串解析為科學計數法。
2)因為0exx都等於0,所以讓兩者相等我們只需再找到一個MD5加密後開頭為0e的字串即可
3)相關字串:
md5('s878926199a')=0e545993274517709034328855841020
md5('s155964671a' )=0e342768416822451524974117254469
三、簽到2
1、開啟頁面檢視原始碼
發現input標籤中限制了輸入的maxlength為10,而提示的口令zhimakaimen長度為11
2、在檢視器中修改DOM結構,去掉這一限制後提交
3、得到flag
四、這題不是web
1、開啟連結,發現一張動圖,聯絡題目懷疑是圖片隱寫題
2、下載圖片,用winhex開啟檢視,在檔案末尾找到了flag
五、層層遞進
3、右鍵檢視頁面原始碼,發現特殊js字元:
4、將jquery-後的字串起來即得flag
六、AAENCODE
打開發現是顏文字,結合題目,我們可以知道是將JS程式碼轉換成常用的網路表情,也就是我們說的顏文字js加密。直接將顏文字在控制檯跑一下即得到flag
七、單身二十年
1、用burpsuit抓包,得到以下內容
八、你從哪裡來
burpsuit抓包,在訊息頭中新增referer:http://www.google.com,提交頁面即得flag
九、檔案包含
看題目應該是檔案包含漏洞,在url中新增?file=php://filter/read=convert.base64-encode/resource=index.php,讀取到base64加密的index.php檔案
base64解密得到flag:
<html>
<title>asdf</title>
<?php
error_reporting(0);
if(!$_GET[file]){echo '<a href="./index.php?file=show.php">click me? no</a>';}
$file=$_GET['file'];
if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
echo "Oh no!";
exit();
}
include($file);
//flag:nctf{edulcni_elif_lacol_si_siht}
?>
</html>
十、單身一百年也沒用
控制檯中發現夾著一個index.php,flag藏在它的請求頭中:
十道集齊,發射~~