新生題

lmy303發表於2024-07-01

MISC

kongfu

用winhex開啟壓縮包,下拉到最後發現key

base64解密後發現是柵欄密碼

audio

開啟發現是一個wav檔案,用Audacity開啟

根據電平,得到01100010 01100001 01101011 01100100 01101111 01110010

二進位制轉字元

進行md5加密

Smtp

base64解碼

foremost

用foremost分解圖片

分解成一張圖片,可以用截圖工具讀取圖片的文字,得到flag

c02流量包

wireshark開啟,過濾http,發現user.php,追蹤流

CRYPTO

變異凱撒

凱撒解密

rsarsa

rsa解出m

import gmpy2
from Crypto.Util.number import *

p =  9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
q =  11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
e =  65537
c =  83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034
n=p*q
phi=(p-1)*(q-1)
d=pow(e,-1,phi)
m=pow(c,d,n)
print(m)

籤個到吧

三次base64解碼即可

圖片中的密碼

foremost解碼得到壓縮包檔案,解壓後將文字內的字元兩次base64解碼即可

c02古典密碼

字元轉ASCII,解為OCU{CTFELXOUYDECTNGAHOHRNFIENM}IOTA。然後進行列置換:將明文按固定長 m 分組,即每

行 m 個字母,在金鑰控制下按某一順序交換列,最後按列優先的順序依次讀出,即產生了密文。

原來字串為 35 位。35=7*5

得到如下結果:

1 234567

OCU{CFT

ELXOUYD

ECTNGAH

OHRNFIE

NM}IOTA

key 值的固定結構為 CTF{}

故第 2 列打頭或第 5 列打頭,接下來是第 7 列,然後是第 6 列,考慮到“{”是第 4 列,考

慮到“}”是最後一列

嘗試後得到

1234567 列轉換為 2764513

即為:

2764513

CTF{COU

LDYOUEX

CHANGET

HEINFOR

MATION}

連起來,答案就是 CTF{COULDYOUEXCHANGETHEINFORMATION}

WEB

程式碼審計1

md5解密

先繞過a,使a的md5值與題目一樣且最後一位是8,首先想到0e繞過,其中240610708符合條件,b可以陣列繞過,d可以用邏輯運算子繞過

檔案上傳1

檢視原始碼發現檔案包含,偽協議嘗試發現只有zip://可以

目錄爆破發現upload.php,上傳一個含有一句話木馬的壓縮包檔案,在bp中把.zip字尾改為.png

之後用蟻劍進行連線

檔案上傳2

禁用js或bp改字尾

web簽到

目錄掃描發現readme.txt,將此內容放入控制檯執行,得到提示Txt.Txt,訪問此檔案,繼續將此檔案的內容放入控制檯即可得到flag。

c02WEB1

點選跳轉到404.php,原始碼指定檔案為flag.txt,可以抓包檢視

base64解碼即可

c02WEB2

 <?php
highlight_file(__FILE__);

if (  isset($_GET['ip'])  ){
    $ip = trim($_GET['ip']);
    $substitutions = array(
        '&'  => '',
        ';'  => '',
        '|'  => '',
        '-'  => '',
        '$'  => '',
        '('  => '',
        ')'  => '',
        '`'  => '',
    );
    
    $ip = str_replace(array_keys( $substitutions ), $substitutions , $ip);
    
    echo $cmd = shell_exec(' ping -c 4 ' . $ip);

}


?> 

%0a繞過

web漏洞

檔案上傳,使用換行繞過,即加%0a

此題上傳檔名應在輸入框裡面改,%0a也要在輸入的檔名上加。

qwb5

<?php
error_reporting(E_ALL^E_NOTICE^E_WARNING);
function GetYourFlag(){
    echo file_get_contents("./flag.txt");
}

if(isset($_GET['code'])){
    $code = $_GET['code'];
    //print(strlen($code));
    if(strlen($code)>27){ 
        die("Too Long.");
    }

    if(preg_match('/[a-zA-Z0-9_&^<>"\']+/',$_GET['code'])) {
        die("Not Allowed.");
    }
    @eval($_GET['code']);
}else{
      highlight_file(__FILE__);
}
?>

執行GetYourFlag(),可以得到flag,運用取反,code定義變數執行GetYourFlag()

<?php
$a="GetYourFlag";
echo urlencode(~$a);
?>

##%B8%9A%8B%A6%90%8A%8D%B9%93%9E%98

code=(~%B8%9A%8B%A6%90%8A%8D%B9%93%9E%98)();

相關文章