知识点
小端序说明,数据在内存里是如何存储的?下表里数据都为16进制
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0998b35f9e4376a4e62bbf2d3144cd78.png)
解题流程
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c4b117d401bf2d177216a9b46b741bed.png)
题目Hint:更新 LibcSeacher 的 libc-database
checksec查看保护机制
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1d2eca0e856002d26f5dca55081b030a.png)
存在Canary和NX。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9a82ac652b9e832a6058d99566a88dc0.png)
0x28=40
0x10=16
0x29=41
0x300=768
0x2C=44
buf长度为48,而read读取长度为768
v5长度为520,而read读取长度为768
所以存在栈溢出漏洞
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/503fe053ca5fade8d34e17f3ada5a237.png)
注意关注以下两条语句
.text:000000000040082C mov rax, fs:28h