20145225 《网络对抗》逆向及Bof基础实践
实践目标
- 本次实践的对象是一个名为pwn1的linux可执行文件。
- 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。
- 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell。正常情况下这个代码是不会被运行的。我们实践的目标就是想办法运行这个代码片段。
- 本次实践主要是学习两种方法:
- 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。
- 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。
- 现实情况中的攻击目标:
- 运行原本不可访问的代码片段
- 强行修改程序执行流
- 以及注入运行任意代码。
实践过程
直接修改程序机器指令,改变程序执行流程
1.备份
2.修改可执行文件
(d8>>c3)
3.反汇编看一下,call指令是否正确调用getShell
4.运行下改后的代码,会得到shell提示符#
通过构造输入参数,造成BOF攻击,改变程序执行流
1.构造输入字符串
2.将input的输入,通过管道符“|”,作为pwn1的输入
posted on 2017-03-05 22:48 20145225唐振远 阅读(121) 评论(0) 编辑 收藏 举报