方法同上: gdb warmup_csaw_2016gdb-peda$ pattern create200'AAA%AAsAABAA$AAnAACAA-AA(AADAA;AA)AAEAAaAA0AAFAAbAA1AAGAAcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOAAkAAPAAlAAQAAmAARAAoAASAApAATAAqAAUAArAAVAAtAAWAAuAAXAAvAAYAAwAAZAAxAAyA'gdb-peda$ rStarting program: /mn...
3、pwn1_sctf_201632位main函数如下:int __cdecl main(int argc, const char **argv, const char **envp) { vuln(); return 0; }vuln()函数如下:int vuln() { const char *v0; // eax char s[32]; // [esp+1Ch] [ebp-3Ch] BYREF char v3[4]; // [esp+3Ch] [ebp-1Ch] BYREF ...
[BUUCTF]PWN---pwn1_sctf_2016 例行检查 ,开启了NX(堆栈不可执行)保护,即堆栈上不可写入 nc一下,没有什么有价值的信息 用32位IDA打开,shift+F12查看字符串,注意到了cat flag.txt,继续跟进。 函数的作用是输出flag的内容,地址flag_addr=08048F0D 跳转到主函数 12行是输入点,但是它只读入了32(0x20)长度...
ida中,可以看到,存在溢出 使用peda计算偏移为72 exp 4、pwn1_sctf_2016 先check一下文件 文件开启了NX。使用ida查看: 程序功能:将输入的所有的‘I’转化为you,然后输出“So,[输入]” 在fgets处,对输入的s进行了限制,不能溢出。但是在strcpy函数中,未对s进行限制,v0对输入的I进行变换后:V0长度=I的个数*...
pwn1_sctf_2016 这题是栈回溯的题目,看原函数发现没有溢出点,输入空间够大而且输入进行了限制: 但是26行位置进行了替换,当输入"I"的时候会被替换为you, 所以就可以用 20 个”I“ (小于 32) 得到 60 (0x3c)个字符造成溢出,再随便填一个返回地址就完成溢出。
运行脚本获得权限提取flag即可 总结:这几道题里难的就是pwn1_sctf_2016和ciscn_2019_n_1,算是使用ROPgadget前相对来说比较难的基础题。难在代码审计和数据转换,对我来说算是一种比较新的题型了,可以多总结练习一下,把基础夯实,更好学习后面的知识 __EOF__...