ciscn_2019_n_1
ciscn_2019_n_1
benksihciscn_2019_n_1
逆向分析
依旧通过ida分析。
main函数里有两个设置缓冲区的,以及调用了func函数,我们看看func是干啥的。
一眼就看见了我们的老朋友gets函数,典型的栈溢出了。看这个函数的逻辑,我们需要让这个本来是0.0的v2变成11.28125
而看栈里的内存分配,正好v1可以覆盖v2,所以逻辑就很清楚了。通过v1的栈溢出将v2溢出成11.28125,看ida上面的内存分析
正好是填充完44个v1后就是v2。这样的话就可以开始写payload了。
payload
1 | from pwn import * |
import struct来打包float类型的数据,<f,f说明是float浮点数,<说明是小端序。
直接运行。
成功!
flag:
评论
匿名评论隐私政策






