The 5th A&D-CTF

Crypto

1.convert

提示说一进制,二进制,三进制。。。。。。分析可知,数据中最大为3。故可能该数据为三进制。然后转化为十进制,在转化成文本。脚本如下:

flag{crypto_1s_easy}

2.babyRSA(最后做的)

下载题目解压有如下:

之前有了解过rsa相关。然后想到题目有多项式。尝试搜索 多项式rsa。得到一个。。不过环境搭建了好几个小时。那个stagemath下载了win版本的,弄了好阵子。。。才懂得怎么用。。。。。。然后复现的时候,不是这里出问题就是那里出问题。。。总之,感觉这道题不应该出现在招新题。。。python还没怎么搞明白就各种库。。。。超纲啦。。。

如下:

最后那个库装不了。。把运行出来的flag放在在物理机跑出来了

flag{P1ea5e_k33p_N_as_A_inTegeR~~~~~~}

3.easyRSA

下载题目,是一个.py文件。打开后。里面有两组 n.e.c

看到第一组,n小,e小。里面想到了分解n得到p和q

然后脚本跑一下

分解出来,发现只是一半

然后数了一下刚好发现16位数。猜测剩下16位数在下面一组。继续。。。

第二组卡了整整一天。。。。。。。一直弄的是那道我就感觉是低指数加密攻击,,然后搞了一天没搞出来。上网找的模板也改了一天没改出来,。中间还把python3删掉换了python2,,然后。。很多东西出问题了。。例如我IDA。。。。每次启动都有

提示,哭了,到时候再问师兄吧。

然后还是解不出来,然后跑去问群主,群主说 hastad。。我上网搜了一下,是低指数广播攻击,但是要有多组n相同e才行。。。。然后感觉老是不对劲,一直试也试不出来。。。难受。。然后。。。忘了啥时候。。出现新的hint。。是低指数攻击。。然后回到我原来的方法。。。继续改脚本。。最后改出来了。。。

然后直接两个合并

得到flag

flag{57d6638c4c490b9601f77d11ba271d92}

4.贝斯家族与变异的罗马奠基人

这题简单。,虽然中间卡了一下。然后对着ASCII码.搞出来了

贝斯六十四世=base64

罗马奠基人=凯撒加密

先base解密网站解密有:64636877667866397C69706D4267

看到D先到,。这可能是十六进制编码。然后数了一下,刚好为偶数。

然后转化成文本:dchwfxf9|ipmBg

然后网上找的凯撒在线解密平台

解密。显而易见的失败了。。。题目说了变异变异。。然后了解到凯撒加密是依靠平移实现的。

对ABCD的平移失败了。。那可能是ASCII码表的平移了。。尝试+一直加了二十多个,没有特殊意义的字符串。。然后试试减,,减一就出来了

脚本如下:

flag{caesar_1s_ea5Y}

web

1.web签到

进去直接有密文,。但是不能右键打开源码。。直接f12。。然后找到标签下的该值。(手速要快)

​ bG9sLGFyZSB5b3UgdHlwaW5nIG9uZSBieSBvbmU/b2ssaXQncyB5b3VyIGZsYWc6ZmxhZ3toMzExMF9odG0xfei/juaOpeWPpuS4gOS4quaZqOabpu+8jOW4puadpeWFqOaWsOepuuawlOawlOaBr+aUueWPmOaDheWRs+S4jeWPmO+8jOiMtummmemjmOa7oeaDheiwiuaIkeWutuWkp+mXqOW4uOaJk+W8gO+8jOW8gOaUvuaAgOaKseetieS9oOaLpeaKsei/h+WwseacieS6hum7mOWlke+8jOS9oOS8mueIseS4iui/memHjOS4jeeuoei/nOi/kemDveaYr+WuouS6uuivt+S4jeeUqOWuouawlOebuOe6puWlveS6huWcqOS4gOi1t++8jOaIkeS7rOasoui/juS9oOaIkeWutuenjeedgOS4h+W5tOmdku+8jOW8gOaUvuavj+auteS8oOWlh+S4uuS8oOe7n+eahOWcn+WjpOaSreenje+8jOS4uuS9oOeVmeS4i+WbnuW/humZjOeUn+eGn+aCiemDveaYr+WuouS6uuivt+S4jeeUqOaLmOekvCDnrKzlh6DmrKHmnaXmsqHlhbPns7vvvIzmnInlpKrlpJror53pophBJkTmrKLov47kvaDvvIzkuLrkvaDlvIDlpKnovp/lnLA=

看到=号。。不用想,直接打开base64解码平台解码。

得到flag

flag{h3110_htm1}

2.最强心算

三秒钟提交。。。。再快也无法。。

然后看到这道题一下子很多人做出来。然后理解了一下,又想到之前学过一点爬虫。但是忘了。。感觉能做然后边学边做。

先请求,然后爬取,。然后提交,网上也有类似的模板,。拿来改一下正则,和提交按钮。成功kill。

flag{Y0u_D0n3_751737b66c5621a0}

Misc

1.签到题

扫码。关注公众号,发送关键词:flag

得到flag

flag{we1c0me_t0_AD_Lab}

2.find_the_flag

拖进010,发现为zip文件。
改后缀

打开

flag{i_f1nd_it!!!}

3.秋天第一杯奶茶

明显要改高度。拖进010。先进属性看一下高宽。然后改为十六进制在png第二行。对比找到。然后改高度就行,改高一点

flag{i_love_milk_t34}

4.明文攻击(未)

不知道为什么明文攻击做不出来,。。。换了好几个压缩工具了。。。两个版本的AC。。。我个太难了。。

5.baby拼图

用PS,拼接旋转一下。

6.合格的社工选手(未)

得到压缩包,但不知道怎么找压缩密码。。。原来群主头像有文章可循。。。。。

7.ADblind

两个图片都伪加密了。把压缩包拖进010改两个图片的伪加密位

得到两张图片。。一开始我脚本错了。。搞了半天。然后换个脚本成功跑出来

指令 python2 decode.py ADblind.png ADori.png

有点难看。。。

flag{blindwater_is_interesting}

8.easy拼图

题目说要用python脚本。。。但是当时没注意,。对比原图。直接找出来了。。

因为图片没有经过旋转之类的操作一个一个拖着靠近一点,拼出flag

flag{m4rvel_i5_50_coolll!!!}

reverse

1.CrackMe01

在main发现。第一行先复制15个数到v3

我们进unk_427070.发现

然后根据strcmp函数可知。我们要比较。而比较后的是已经加密过的。加密过的字符串就是上面图中的这串,而加密脚本在sub_40100

原字符串与4异或。那解密就是将加密字符串与4异或即可

脚本如下:

str='bhecplmw[mw[e[bhecy'
flag=''

for i in str:
    str=ord(i)^4
    flag+=chr(str)

print(flag)
flag{this_is_a_flag}

2.CrackMe02

跟第一题差不多,把加密算法倒过来就是解密算法了。

脚本:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char str[]="4:/5{1B47A4C<]ZX}";
    char str2[18] ="";
    for(int i=0;i<18;i++)
        printf("%d",str[i]);
    for (int i = 0; i<18; ++i)
    {
        if (str[i]< 40 || str[i] > 75)
        {
            if (str[i] < 82 || str[i] > 108)
                str2[i] = str[i];
            else
                str2[i] = str[i] - 40;
         }
        else
        {
        str2[i] = str[i] + 50;
    }
    }
    for(int i =0;i<17;i++)
    {
        printf("%c",str2[i]);
    }

    getchar();
    return 0;
    
}

flag{ctfisfun520}

3.RE1

关键字符串

关键代码

脚本

str=[0x67,0x6D,0x60,0x66,0x7A,0x76,
     0x64,0x6D,0x62,0x6E,0x6C0,0x6C,0x64,0x5E,
     0x75,0x6E,0x5E,0x40,0x45,0x72,0x64,0x62,0x6D,
     0x60,0x63,0x20,0x7C]
flag=''
for i in str:
    print(i)
    i=((i-48)^1)+48
    flag+=chr(i)
    #flag+=chr(i)
print(flag)

flag{welcoہme_to_ADseclab!}

4.RE2

打开ida,shift+f12,字符串,congratulation

已经直接给出。拼出来就是flag

flag{This_is_you_flag}

5.RE3

关键代码:

(注意大小端存取)

脚本:

#include <stdio.h>
#include <string.h>
int main()
{
	int str[]={0x2F,0x33,0x2D,0x28,0x2D,0x27,0x3C,
     0x72,0x6D,0x25,0x14,0x40,0x15,0x64,
     0x3C,0x7C,0x7A,0x34,0x68,0x6B,0x71,
     0x74,0x65,0x68,0x22,0x7E,0x70,0x75,
     0x0C,0x47,0x47,0x11,0x15,0x43,0x45,0x44,
     0x18,0x45,0x43,0x10,0x13,0x15,0x5C};
	char str1[]="I_LOVE_CTF!!!I_LOVE_ADSECLAB!!!!!!!!!!!!!!!";
	char str2[43]="";
	for(int i=0;i<43;i++)
	{
		str2[i]=str[i]^str1[i];
	}
	for(int i=0;i<43;i++)
		printf("%c",str2[i]);

    getchar();
	return 0;
}

6.CrackMe03

直接写在函数里面了,。。。

7.CrackMe04

用ida打开 shift+f12

有base64的码表。上面两个==,。显然base64加密,而码表也没换。。直接在线解码得到flag

flag{AD_FOREVER}

8.task9

没时间,要实验课了。。。

直接动态调试。改跳转。程序运行结果直接出flag

补:

打开ida调试

运行调试的程序

物理机打开ida附加Linux

随便输入值让IDA跑起来。

main函数入口下断。继续运行。

发现关键跳,如果实现则输出为wrong

改ZF位使其条件不成立。

一直F8运行。程序运行完毕。输出即为flag。

10.CrackMe06

关键字符串

一眼看过去。。目测突然发现,前面减一为fl,故每位减一可能为flag,用脚本跑一下看看。恰好瞎猫碰上野耗子。。直接提交。正确

str='gmbh|BE`HPHPHP~'
flag=''

for i in str:
    str=ord(i)-1
    flag+=chr(str)
print(flag)
flag{AD_GOGOGO}

11.CrackMe07

关键函数

有两个函数分别两个游戏。有两个解。但好像直接做最后一个也行。

第一个:

向上还原即可。

脚本:

#include<stdio.h>
#include <stdlib.h>
int main(){

char Str[]="LRGM{GJLOXYZMGSK}";
char v4[18]=" ";
for ( int i = 0; i < 18; ++i )
  {
    v4[i] = Str[i];
    if ( v4[i] != '{' && v4[i] != '}' )
    {
      v4[i] -= 'x06';
      if ( v4[i] > 90 )
        v4[i] -= 26;
    }
    Str[i] = v4[i];
  }

  for (int i = 0; i < 18; i++)
  {
         printf("%c",Str[i]);
  }

第二个。看到函数。wasd。上下左右。然后再栈又看到

地图

直接 ssdsssddddwwaa

加上flag{}即可,不过在控制台提交会直接闪退。也不会提示你正确

flag{ssdsssddddwwaa}

12.music

这道题挺好玩的。。。

右键,只能搜索字符串。

看到1:00想到题目说超过1:00有flag。运行到此处。这里代表程序开始从1:00开始运行。

然后要取消断点才能运行。。没用。。再找入手点。不是想要的,可能接近了而已。想到之前超过1分钟有个字符串 1?????

在智能搜索,找到1。。猜测附近肯定有个判断是否超过1分钟。。在附近看到一个大跳 jL 和比较的cmp。

尝试在jl下断。程序不能运行。运行。后发现。歌曲播放时长+1S。。然后又发现CMP上面有个十六进制?,用计算机算了一下,


发现是60的千倍,那应该是毫秒了。

那可以肯定下的断点没有错了。(先取消断点,程序到58秒在下断。在带着断点运行一次+1S)

将程序运行到59秒。该跳转,。不知道为啥改 Z 位不行,那就直接跳了。。。。。

发现这里还有一个检测。。(题目也提醒我了。。。我还以为出bug了。试了好几次。。。)

发现上面还有一个jge条件跳转。。我们在运行到那里。

又是改Z不跳,我们直接jmp

直接看标题改变了。。(有个坑,flag不是全部,只是后面单词而已)

原文地址:https://www.cnblogs.com/pupububu/p/14131185.html