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)();
标签:文件,code,解码,base64,新生,绕过,上传
From: https://www.cnblogs.com/lmylmy/p/18279041