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)();