CTF PWN
K1ose
这个作者很懒,什么都没留下…
展开
-
mrctf2020_shellcode_revenge
下载附件,checksec一下;存在可读可写可执行的段;看一下IDA pro的汇编;和先前的题目类似,先read也给0x400bytes的字符串,然后compare一下eax和0;jg表示jump if greater,如果eax>0则跳转,否则eax为0,跳到另一个地址;接下来看到很多判断语句,截取其中一部分进行分析;这里比较al和`的大小,jle表示jump if less or equal,即小于等于;如果al<=60h,则跳转到11DA,如果al<=7Ah,则跳原创 2021-04-24 11:13:41 · 752 阅读 · 1 评论 -
pwnable_orw
file orw;32位程序;checksec;IDA pro分析;main函数下可直接执行shellcode;但是存在沙箱,只能执行open、read、write等几个系统函数;seccomp-tools dump ./orw显示允许使用的系统调用函数;这里想的是:open('/flag')read(3,buf,0x66) #这里3是因为一般stdin、stdout、stderr占用了0,1,2;write(1,buf,0x66) #这里1为标准输出;buf可读可写;这原创 2021-04-23 00:16:33 · 369 阅读 · 1 评论 -
ciscn_2019_s_9
下载附件,file一下,是32bit程序;checksec一下;基本没保护措施;IDA里分析一波;main()跳到pwn();看看pwn()的内容;看到fgets立马想到栈溢出;又注意到有一个hint()函数;其内容如下:这里直接跳到了$esp,$esp是在堆栈上的;既然有栈溢出,栈可执行,又有一个跳转到$esp的函数,思路就很清晰了;我们先利用栈溢出,覆盖pwn()函数的返回地址为jmp esp的地址,然后我们再使得$esp指向shellcode所在的地址,完美!但是因为原创 2021-04-22 01:13:28 · 803 阅读 · 0 评论 -
mrctf2020_shellcode
拿到附件后,先file一下;看到是个64bit的程序,拖到ida64里;再checksec一下附件,看看保护情况;栈没有保护,有可读可写可执行的段;可以dbg调试一下,看看具体情况;可以看到有一个段可读可写可执行,栈也确实没有什么保护;现在去IDA分析一下程序;变量参数如下可以看到前几行在设置标准输入输出和错误;接着输出"Show me your magic!";然后read一个400bytes的数据;接着是关键代码,将$eax赋值给[rbp+var_4],接着与0进行比较原创 2021-04-21 23:37:02 · 585 阅读 · 1 评论