ysoseri.us

技术内容 / 本科的一些学习笔记和wp / 2021上海市赛SYCTF

2021上海市赛SYCTF

Misc

checkin

题目给了+AGYAbABhAGcAewBkAGgAYgBfADcAdABoAH0- 是UTF-7编码,解码得到flag

图片 1

flag为:

flag{dhb_7th}

1

project

下载附件,解压之后发现这是道工控题目,但是解压之后里面有一个压缩包problem_bak.zip

图片 2

解压得到你来了~

图片 3

图片 4

这里面一共有三段数据,第一段是base64编码

解码得到:

通过这解码得到的结果可以明显的观察到有隐藏字符

图片 5

通过解0宽字符得到hurryup,很明显这应该是某个地方的密钥,但现在暂时还未遇到,继续往下看

在线解0宽字符的网址:https://330k.github.io/misc\_tools/unicode\_steganography.html

图片 6

第二部分说了是quoted-printable加密,编码方式是,在线解密得到

图片 7

其中的文字是跟第一段base64的文字相吻合的。

第三段说了是jpg图片,并且是base64加密的数据

图片 8

这段base64数据是没有添加数据头的,自行补上data

/jpg;base64,,然后转为图片得到这张图

图片 9

用010打开,发现图片结尾FF D9之后是有多余的数据的

图片 10

最终发现是OurSecret隐写,因为用这个软件打开,如果图片不是OurSecret隐写,那么将不会显示数据大小的

图片 11

这里显示了数据的大小,也就证实了是OurSecret隐写,密钥就是第一段0宽解密出来得到的hurryup

图片 12

图片 13

所以flag为:

JumpJumpTiger

jump.exe打开ida,查看到hint

大致意思,奇偶分离。

查看jump.exe内码,发现大量疑似base64编码,直接提取

直接尝试奇偶分离

刚好拿到两串base64编码均以=号结尾

分别解码,得到了一张jpg和一张png,两张图片看起来是一样的,很明显就是盲水印了,直接使用命令:

图片 14

得到flag.png,打开即能看到flag

图片 15

flag为:

Web

apacheprOxy

打开附件,发现这是Weblogic

图片 16

Weblogic有一个cve-2020-14882远程命令执行漏洞,GitHub上有现成的exp

EXP地址:https://github.com/zhzyker/exphub/blob/master/weblogic/cve-2020-14882\_rce.py

因为开了反代,直接访问就进了i春秋官网了,抓个包获取一下真实的题目环境地址

图片 17

使用命令:

图片 18

然后直接cat /flag:

图片 19

所以flag为:

EzGadget

开始审计,IndexController.java

绕过这里再输出流再

就好了

ToStringBean.java

可以看到加载了字节码,这里加载字节码的函数是toString,cc5链的BadAttributeValueExpException的readobject方法正好调用了toString,该类是jdk自带的,并且参数可控

图片 20

加载的字节码类

这里进一下if

生成的payload可以直接打,之后vps监听收到反弹的shell

图片 21

Pwn

cpp1

2.31 漏洞点在edit里 ,可以造成溢出
用0x80的chunk填满tcache后 溢出打size
造成堆快重叠,并且释放重叠的堆块进unsortedbin
然后show出libc 后面就正常的tcache attack 溢出打freehook为system getshell

Exp如下:

图片 22

flag为:

bg3

泄露libc:因为可以申请大chunk,于是
释放一个>0x420chunk 进unsortedbin 然后申请回来 直接show得到libc
get shell : 漏洞点在add里面 相同index的size可以叠加
于是通过溢出打free_hook为system get shell

Exp如下:

图片 23

flag为:

gcc2

漏洞点在Remove里,有uaf。
leak_libc : 通过uaf首先泄露堆地址
然后改tcache的fd指针指向原本地址+0x10处
再申请回来时,可以造成堆快向下的0x10溢出,溢出改size为0xe1
然后对0xe1的chunk进行edit绕过double free check
把该chunk释放7次进tcache中
再释放一次 进入unsortedbin show得到libc
最后利用uaf直接tcache attack打free_hook为system get shell.

图片 24

flag为:

boom_script

这题是c解释器有关的题,正好前一段时间有师傅给我发了类似的题,这题是uaf的漏洞,通过字符串的变换可以进行堆块的申请与释放,来进行泄露和getshell

Exp:

图片 25

flag为:

Reverse

ooo

送分题,就是做慢了,呜呜呜

图片 26

图片 27

图片 28

照着搞就行了,一如既往,偷懒,暴力跑

图片 29

图片 30

flag为:

mod

这道题关键是花指令的去除,偷偷懒,只去除算法段,丢IDA F5

图片 31

图片 32

好了,base魔改,懒得分析算法,直接暴力跑

图片 33

flag:

Hell’s Gate

刚开始拿到这题,看到了很多个0x100感觉是RC4,就很激动(秒了,秒了),根据习惯,我还是先爆破,再来分析算法,单步到如下图的时候,发现这里一直指针异常,说明有异常处理之类的东西,然后果然。。。。

图片 34

图片 35

跟到00416F90函数,上面有部分貌似是反调试(反正没检测到我OD,估计是检测windbg之类的),能处理就处理吧,不过多阐述。找到算法段,发现了些奇奇怪怪的东西,类似于下图还有很多种这个代码。

图片 36

Retf顾名思义,能给cs寄存器赋值,而cs寄存器为23的时候代表是32位汇编模式,33的时候则是64汇编模式,所以下面的汇编代码是64位的,windbg貌似也不能调试起来(也懒得找原因,好像是异常)因为每个64位汇编call代码量普遍不多,我就用CE去看汇编代码,逐个分析功能,如下图,就是个指针赋值call,经过一段时间分析,发现是tea算法

图片 37

图片 38

脚本如下:

图片 39

flag为:

hello

调用JNI

图片 40

String2 可以用log找到

图片 41

图片 42

So代码

图片 43

脚本如下:

图片 44

flag为:

Crypto

BlockEncrypt

反编译,得到不完整的加密函数,可以发现是aes,然后解密

脚本如下:

图片 45

flag为: