2017年网络空间安全技术大赛部分writeup

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017年网络空间安全技术大赛部分writeup相关的知识,希望对你有一定的参考价值。

作为一个bin小子,这次一个bin都没做出来,我很羞愧。

0x00 拯救鲁班七号

具体操作不多说,直接进入反编译源码阶段

 

 

可以看到,只要2处的str等于a就可以了,而str是由1处的checkPass返回,于是进入checkPass函数。

 

 

从代码看,这是调用了so库里的函数,并且我们知道so库的名字叫humen

 

 

于是找到so库,拖进ida静态分析

 

找到checkPass函数,直接F5,通过分析,2中的代码最为关键

这段代码把我们输入的密码做了非常复杂的变换,变换后得到的字符串为S!@#@1FD23154A34

 

于是我找了16张纸,将flag变换出来了。。。。。

 

0x01 取证密码

反编译

进入encrypt函数

找到XTU.so拖进ida静态分析。

这段代码很简单,脚本如下

 

1 dest = [0x39,0x20,7,0xA,0x20,0x29,0x13,2,0x3A,0xC,0x11,0x31,0x3B,0xB,7]
2 str = \'Welc0meT0XTUCTF\'
3 str1 = \'yInS567!bcNOUV8vwCDefXYZadoPQRGx13ghTpqrsHklm2EFtuJKLzMijAB094W\'
4 a = len(str)
5 b = \'\'
6 for i in range(a):
7     b += str1[dest[i]]
8 print b

 

 

 

运行,得到flag.

0x02 人民的名义-抓捕赵德汉1

是个jar文件,直接反编译。

分析逻辑,直接进入checkPassword分析

很明显只要MD5解密就行

0x03人民的名义-抓捕赵德汉2

是个jar文件,直接反编译

好多乱码,很方,但还是继续分析,进入这个不知名的函数

看到两个关键函数,先进入第一个函数分析,一路追踪

 

 

复现这段代码

 

得到字符串JsnatterrtJuaththovacke

然后进入开始的第二个函数

代码逻辑很简单,下面是脚本

 1 # -*- coding: utf-8 -*-
 2 def f1(a,b):
 3     return f2(a) % len(b)
 4 def f2(b):
 5     if b > 2: 
 6         return f2(b - 1) + f2(b - 2)
 7     else:
 8         return 1
 9 x = \'JsnatterrtJuaththovacke\'
10 b = \'\'
11 z = 0
12 for i in range(0,4):
13     for j in range(0,4):
14           b += x[f1(z + j,x)]
15     z += 5
16 print b    

 

运行得到flag.注意格式flag{xxxx-xxxx-xxxx-xxxx}                                                                                                                        .

以上是关于2017年网络空间安全技术大赛部分writeup的主要内容,如果未能解决你的问题,请参考以下文章

2021年“羊城杯”网络安全大赛部分Writeup

2021年江西工业互联网安全技术技能大赛线下决赛部分Writeup

2021年江西工业互联网安全技术技能大赛线下决赛部分Writeup

2017广东省红帽杯网络安全攻防大赛writeup

西湖论剑2021中国杭州网络安全技能大赛部分Writeup

第二届“祥云杯”网络安全大赛暨吉林省第四届大学生网络安全大赛 WriteUp 2021年祥云杯misc