简单粗暴,就是让你栈溢出,但这道题没有sys,需要自己构造,需要自己找大量的汇编代码,来进行系统调用。 其实就是控制eax=11 ebx=‘binsh’ ecx=0 edx =0 其实binsh 在该程序中没有,需要我们自行输入,我们可以调用read函数来往bss段上输入一个字符串 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
cmcc_simplerop来自BUUCTF 这道题听名字simplerop我直接先用ret2libc做了,发现不行,还是我太年轻了。 这道题用到了系统调用和rop技术。构造rop链。来我们看题。 checksec 只开了NX。 只有一个栈溢出漏洞,在左边函数栏中搜索system函数没有,也没有printf_plt显然不是ret2libc file文件可以发现这是一个静态链接的...
可以看到执行后程序进行了 system 函数,成功攻击 6.关于在 cmcc_simplerop 这一题中,当 payload 为 payload = b'a'*0x20 + p32(eax) + p32(0xb) + p32(edx_ecx_ebx) + p32(0)*2 + p32(next(elf.search(b'sh\x00'))) + p32(int_0x80) 为什么会攻击失败,因为 execve 调用参数时会将参数...
cmcc_simplerop (int 80 系统调用) 32位的程序,只开启了NX保护(也就无法注入shellcode了) 找到危险函数read 可以进行溢出 IDA中显示到Ret的偏移是1c但使用gdb进行调试发现 是0x20 然后 在文件中找到了 int 0x80 所以解决这道题 可以使用系统调用 先通过溢出构造一个read读取shellcode 然后再使用 int 0x80 进行...
cmcc_simplerop 摘要:cmcc_simplerop 比较有意思的一题 1.ida分析 由于题目没有用导入库,所以泄露got地址的方法不行了。 找到一个int 0x80,这时大概思路就是泄露栈的地址,然后来构造system('/bin/sh') 2.checksec 3.解决 exp from pwn import * f 阅读全文 posted @ 2021-07-23 14:45 mio_yy 阅读(...
cmcc_simplerop 函数逻辑比较简单。 这里经过调试,发现padding为0x20 寻找一些又用的gadget。 使用SROP来进行攻击! frompwnimport* context(log_level='debug',os='linux',arch='i386') r = remote('node4.buuoj.cn',28123)#r = process('./simplerop')elf = ELF('./simplerop') ...
第一次输入来泄漏ebp的值,然后第二次输入利用栈迁移在栈上布置ROP链,程序有system@plt exp: frompwnimport* local =0binary ="./ciscn_2019_es_2"# libc_path = ''port ="27748"iflocal ==1: p = process(binary)else: p = remote("node3.buuoj.cn",port)defdbg(): ...