20155316 Exp1 PC平台逆向破解(5)M
前绪
实验收获与感想
- 初步从三个途径了解了什么是缓冲区溢出以及如何简单实现它,对汇编与反汇编有更直观的了解。
什么是漏洞?漏洞有什么危害?
- 漏洞是指机器体制设计时所没有顾及到的、可以被利用的bug,放任漏洞可能会被他人利用、入侵系统。
NOP, JNE, JE, JMP, CMP汇编指令的机器码
| 指令 | 解释 |
|---|---|
| NOP | 空指令;运行该指令时单片机什么都不做,但是会占用一个指令的时间;当指令间需要有延时(给外部设备足够的响应时间;或是软件的延时等),可以插入“NOP”指令 |
| JNE | 条件转移指令;ZF标志位为0时跳转 |
| JE | 条件转移指令;ZF标志位为1时跳转 |
| JMP | 无条件跳转指令;可转到内存中任何程序段。转移地址可在指令中给出,也可以在寄存器中给出,或在储存器中指出 |
| CMP | 该指令用于(通过两数相减的方法)比较两个数的大小,同时会更新标志寄存器 |
改机器指令
直接修改程序机器指令,改变程序执行流程
操作思路
总思路
- 通过反汇编查找含有跳转指令的汇编行,修改该部分的机器代码使之跳转至getShell函数(其中getShell等函数地址也通过反汇编查询)
分布思路
反汇编查询相关指令行




EIP:80484ba +d7ffffff= 80484ba-0x29正好是8048491(foo首地址)这个值
通过vi编辑器修改相应部分代码

退出编辑前记得将16进制转换为原格式 :%!xxd -r
执行程序,比较修改前后效果

- 若遇到如下情况,可参照此解决方案:【64位Kali无法顺利执行pwn1问题的解决方案 】

备注:更新源建议额外添加kali官方源
简单BOF注入
- 通过构造输入参数,造成BOF攻击,改变程序执行流
操作思路
总思路
- 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。
分布思路
手动测试缓冲区长度

找到1234覆盖了返回地址
用getshell的地址覆盖返回地址
- 通过构造一个含16进制getshell地址的字符串文件,将字符串注入缓冲区
- (地址由反汇编查看)

注入shellcode
操作思路
总思路
- 注入一个shellcode并运行这段shellcode。
分布思路
准备一个shellcode
\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80
##### 修改设置
构造payload
- 结构:anything+retaddr+nops+shellcode
- 首先输入攻击命令
- 找到进程号32549

- 用gdb进行调试,找到注入buf的内存地址


- 地址为0xffffd2f0
- 将地址改为0xffffd2f0

- 攻击成功

20155316 Exp1 PC平台逆向破解(5)M的更多相关文章
- 20155324《网络对抗》Exp1 PC平台逆向破解(5)M
20155324<网络对抗>Exp1 PC平台逆向破解(5)M 实验目标 本次实践的对象是一个名为~pwn1~的~linux~可执行文件. 该程序正常执行流程是:~main~调用~foo~ ...
- 2018-2019-2 20165237《网络攻防技术》Exp1 PC平台逆向破解
2018-2019-2 20165237<网络攻防技术>Exp1 PC平台逆向破解 一.实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调 ...
- 20165221 《网络对抗技术》EXP1 PC平台逆向破解
20165221 <网络对抗技术>EXP1 PC平台逆向破解 一.实验内容 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函 ...
- 2018-2019-2 网络对抗技术 20165325 Exp1 PC平台逆向破解
2018-2019-2 网络对抗技术 20165325 Exp1 PC平台逆向破解(BOF实验) 实验有三个模块: (一)直接修改程序机器指令,改变程序执行流程: (二)通过构造输入参数,造成BOF攻 ...
- 2018-2019-2 20165206《网络对抗技术》Exp1 PC平台逆向破解
- 2018-2019-2 20165206<网络对抗技术>Exp1 PC平台逆向破解 - 实验任务 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:mai ...
- Exp1 PC平台逆向破解 20165235 祁瑛
Exp1 PC平台逆向破解 20165235 祁瑛 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字 ...
- 2018-2019-2 20165317《网络对抗技术》Exp1 PC平台逆向破解
2018-2019-2 20165317<网络对抗技术>Exp1 PC平台逆向破解 实验目的 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP:无作用,英文&quo ...
- 2018-2019-2 网络对抗技术 20165336 Exp1 PC平台逆向破解
2018-2019-2 网络对抗技术 20165336 Exp1 PC平台逆向破解 1. 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常 ...
- 2018-2019-2 20165236郭金涛《网络对抗》Exp1 PC平台逆向破解
2018-2019-2 20165236郭金涛<网络对抗>Exp1 PC平台逆向破解 一.实验内容 1.掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(0.5分) 2.掌 ...
随机推荐
- mvp在flutter中的应用
mvp模式的优点mvp模式将视图.业务逻辑.数据模型隔离,使用mvp模式,能使复杂的业务逻辑变得更加清晰,使代码更具有灵活性和扩展性,正是这些优点,使mvp模式广泛应用于原生开发中. flutter使 ...
- 【疑难杂症04】EOFException异常详解
最近线上的系统被检测出有错误日志,领导让我检查下问题,我就顺便了解了下这个异常. 了解一个类,当然是先去看他的API,EOFException的API如下: 通过这个API,我们可以得出以下信息: 这 ...
- 用烂点子打破沉默的"麦当劳理论"
"麦当劳"理论是啥? 讨论周末聚餐去哪儿的时候,朋友们往往太过顾及彼此的想法,犹豫着等待其他人做决定. 当谁也不愿说出提议的时候, 我往往会耍一个花招:推荐去麦当劳吃. 宝贵的休息 ...
- EntityFramework 贪婪加载与延迟加载以及资源回收
EntityFramework的资源回收 1) Using 内包含Entity的上下文关系,对俩表做Add操作,最好可以直接写一个 entity.SaveChanges(); 完成两张表的同时add操 ...
- jmeter如何保持JSESSIONID
利用Jmeter做接口测试的时候,如何提取头部的JSESSIONID然后传递到下一个请求,继续完成当前用户的请求. 一.如果响应数据里面没有返回JSESSIONID,直接添加http cookies ...
- SQLServer导数据到Oracle
从SQLServer导数据到Oracle大概有以下几种方法: 使用SSMS的导出数据向导,使用Microsoft ODBC for Oracle或Oracle Provider for OLE DB连 ...
- C# 倒计时
c#中有一个叫做timespan的数据类型,可以这样构造: TimeSpan ts = , , ); TimeSpan(hour,minute,second); 然后拖进去一个timer,叫timer ...
- 入坑Vue
长期的后端数据开发着实有些枯燥无趣,项目完工,闲暇之际,最近一直在研究前端方面的东西,不得感叹,前端技术发展速度快的让人有些目不暇接,从jQuery开启的插件化时代,几乎许多网站都被jQuery支配, ...
- Spring中的destroy-method方法
1. Bean标签的destroy-method方法 配置数据源的时候,会有一个destroy-method方法 <bean id = "dataSource" class ...
- 可选的binlog解析组件
本文的mysql-binlog-connector-java:https://github.com/shyiko/mysql-binlog-connector-java 阿里的canal:https: ...
