格式化字符串走过的坑 pwn109
格式化字符串走过的坑 pwn109今天做的一道题有一个坑我调试半天终于买通了,格式化字符串的坑,确实不少,东西也比力多容易忘记,怎么说呢,功夫在平时,履历少了
老规矩先看一下保护
https://img2024.cnblogs.com/blog/3419447/202404/3419447-20240408204025113-593053924.png
Full RELRO意味着got不能修改也就是不能通过格式化字符串漏洞来改got表,但是nx保护关闭了,也就是我们可以通过修改返回地址到我们写的shellcode上就好了
iad打开
https://img2024.cnblogs.com/blog/3419447/202404/3419447-20240408204259242-1309816123.png
选项2printf打印你写的数据(格式化字符串漏洞)选项1是往栈上写数据,而且他还把栈地址给你了,就不必要额外泄露了
https://img2024.cnblogs.com/blog/3419447/202404/3419447-20240408204512838-875915270.png
https://img2024.cnblogs.com/blog/3419447/202404/3419447-20240408204533117-1251674159.png
起首计算一下我们输入的数据偏移
https://img2024.cnblogs.com/blog/3419447/202404/3419447-20240408204916951-1677458803.png
那既然有栈地址了尚有偏移了直接构造payload
https://img2024.cnblogs.com/blog/3419447/202404/3419447-20240408205141283-1326643135.png
https://img2024.cnblogs.com/blog/3419447/202404/3419447-20240408205238643-1324297063.png
但是却失败了,怎么回事,难道我手工改失败了用工具再试一遍
https://img2024.cnblogs.com/blog/3419447/202404/3419447-20240408205404587-89114931.png
https://img2024.cnblogs.com/blog/3419447/202404/3419447-20240408205421315-1990354336.png
依旧失败,这里我选择一步步去调试了,我起首猜疑返回地址添补的数据不够,因为ida静态毕竟没有动态更能体现返回地址的题目
https://img2024.cnblogs.com/blog/3419447/202404/3419447-20240408205953304-1183265631.png
https://img2024.cnblogs.com/blog/3419447/202404/3419447-20240408210033078-2057909558.png
奇怪的是返回地址是正确的,然后我选择3退出的时间看一下返回地址
https://img2024.cnblogs.com/blog/3419447/202404/3419447-20240408210234490-440640776.png
发现返回地址并不是刚刚的地址而是这个地址,那么我们把找到的ret_addr + 0x10
https://img2024.cnblogs.com/blog/3419447/202404/3419447-20240408210610189-223620553.png
乐成了!!
https://img2024.cnblogs.com/blog/3419447/202404/3419447-20240408210554366-663369477.png
也就是说刚刚手改是正确的,这里我发起最好自己手改几次,对这个原理明白透彻,才能更好的学习,只会不停的用工具,而不懂原理这样的学习是没有太大意义的
格式化字符串走过的坑........
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]