pwn ciscn_2019_n_1 1

image
可以看到用gets让用户输入v1,还比较了v2的值,但此之前已经设置了v2的值为0.0

法一

可以用传统的方法栈溢出,覆盖返回地址为system的地址
image

法二

v2也存在栈上,也可以通过gets栈溢出修改v2原本的数据
movss xmm0, [rbp+var_4] #将v2的值放到xmm0里面
ucomiss xmm0, cs:dword_4007F4 #比较xmm0和11.28125
image
我们点进去dword_4007F4,是可以看到11.28125的十六进制的
image
然后v1和v2相差0x30-0x4的距离,用gets输入
image

点击查看代码
v1  #rbp-30
v2  #rbp-4
rbp
ret
据此构造exp

image

posted @ 2025-01-10 00:23  fdddddd  阅读(31)  评论(0)    收藏  举报