1. 程式人生 > >CTF——南郵攻防平臺(web)

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藏在它的請求頭中:
這裡寫圖片描述

十道集齊,發射~~