pwn学习系列--任务4 pwn200

本文介绍了pwn200题目的栈溢出漏洞利用,涉及Ret2libc技术,构造rop链来调用system函数执行/bin/sh。通过ida静态分析找到溢出点,利用read函数在bss段写入'/bin/sh',并返回到system函数的plt地址。详细解析了payload构造过程和相关知识点。
摘要由CSDN通过智能技术生成

栈溢出之pwn200解题步骤

主要涉及到Ret2libc–修改返回地址,让其指向内存中已有的某个函数,以及初步构造rop( Return Oriented Programming )

思路分析:有read函数,变量buf大小为0x68,read可写入0x100,可知有栈溢出。题目中只给出system函数,没有给出"/bin/sh",所以要自己通过read函数写入"/bin/sh",然后返回调用system函数。

0x01 查看题目信息,可知文件是32位
在这里插入图片描述
0x02 checksec 检查可执行文件属性

gdb pwn200
checksec

在这里插入图片描述
可以看到pwn200没有开启各种保护,RELRO为” Partial”,对GOT表具有写权限。

补充一下checksec相关知识:
1.canary,栈保护功能
2.fortify,判断程序哪些buffer会存在可能的溢出
3.nx,将数据所在内存页标识为不可执行
4.pie(aslr),内存地址随机化机制
5.relro,设置符号重定向表格为只读或在程序启动时就解析并绑定所有动态符号
具体的可看下面

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值