buuctf-pwn PWN2(整数溢出)题解(学习过程持续更新)

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

此处我将文件命名为pwn

checksec pwn 查看一下保护机制

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

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

可以看到然我我们输入一个值nbytes,如果有符号整型nbytes<=10就可以执行read(0,&buf,(unsigned int)nbytes)。所以我们需要(signed int)nbytes小于等于10,同时(unsigned int)nbytes足够大,才可以发生栈溢出,覆盖返回地址。

signed int范围:2**31~2**31-1

unsigned int范围:0~2**32-1

我们如果让nbytes=2**31,那么(signed int)nbytes就会等于-2**31,(unsigned int)nbytes就会等于2**31,正好满足我们的要求

返回虚拟机

ROPgadget --binary pwn --only "pop|ret"

得到ret_addr = 0x400599

nano exp.py开始写攻击脚本

第一次发送2**31,整数溢出

payload:填充0x10+8的垃圾数据至return address;ret_addr用于栈对齐;0x400726为backdoor函数的地址,用于覆盖返回地址,获得shell

保存退出

python3 exp.py

cat flag

此题完

相关推荐
hui-梦苑1 小时前
[Math]复合函数极限存在定理:单调连续函数反函数连续性定理推论
学习·数学·定理·函数极限·海涅定理
在线OJ的阿川1 小时前
基于智慧一考通Web平台的测试报告
功能测试·学习·测试报告
蒲公英eric1 小时前
从弱加密到安全实现:DVWA 密码学模块完整漏洞分析教程
安全·web安全·ai·dvwa·ai安全·密码学模块
Elastic 中国社区官方博客1 小时前
隐藏在可观测性数据中的安全攻击
大数据·网络·安全·elasticsearch·搜索引擎·全文检索
YHHLAI1 小时前
Danci —— 用 AI 驱动开发一个全栈英语单词学习平台
人工智能·学习
Neighbor_OldY2 小时前
CSRF跨站请求伪造攻击检测与应急处置实战:伪造请求识别与防护落地
运维·安全·web安全
白猫不黑2 小时前
AI时代如何利用AI学好网络安全
人工智能·安全·web安全·计算机·网络安全·信息安全
LuminousCPP2 小时前
数据结构 - 排序(二):快速排序从错误初版到优化版|双指针划分 + 三数取中 + 小区间插入优化
c语言·数据结构·笔记·算法·排序算法
smartpi_ai2 小时前
自学习“放着不动“会自动退出吗?超时退出缺席的交互兜底、退出条件挂串口的状态联动设计
学习·microsoft·交互