buuctf-pwn xdctf2015_pwn200题解(学习过程持续更新)

本人也是在自学过程,主要目的也是记录学习过程,有些地方做的不太好,都是按照自己理解进行讲解的(不专业),欢迎大家指出问题

此处我将文件命名为pwn

checksec pwn 查看一下保护机制

可以看到这是一个32-bit的文件,NX保护开启

将文件拖入ida,按F5将汇编代码转换成c语言代码,得到

双击vuln(),进入vuln函数

可以看到存在read栈溢出,需要填充0x6c+4的垃圾数据至return address

此题没有system函数,和/bin/sh,所以需要我们自己泄露这些地址

返回虚拟机

nano exp.py 开始写攻击脚本

payload:调用write函数,泄露write@got里存储的write函数的真实地址,进而得到system函数和/bin/sh的地址

payload2:填充0x6c+4的垃圾数据至return address,覆盖返回地址为system函数,调用system("/bin/sh"),获得shell

注释掉的LibcSearcher的方法找不到正确的libc版本,所以我们用固定偏移值来计算

保存退出

python3 exp.py

cat flag

此题完

相关推荐
大衛說1 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习
吃好睡好便好2 小时前
查找函数的使用
学习·算法·matlab·生活·查找函数
学运维的Kysan2 小时前
暑假运维学习打卡第二十九天8.29
学习
zbyyd2 小时前
Linux 进程间通信学习笔记
linux·笔记·学习
一条破秋裤3 小时前
02_软件安装与新建工程
学习
来了就未晚3 小时前
Python基础 学习代码存储与命名规范
开发语言·python·学习
GHL2842710903 小时前
用codex做一个简单技能学习
学习·ai
布莱克6053 小时前
数组详解:定义、作用、应用场景及与链表的区别(C/C++ 代码讲解)
c语言·开发语言·c++·数组
hongmai6668884 小时前
MP2348GTL-Z:这颗24V/4A同步降压芯片,把性能和体积平衡得恰到好处
c语言·开发语言·arm开发·单片机·5g