freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

如何使用OverRide学习源码漏洞利用和逆向工程分析
2021-04-29 17:58:56

关于OverRide

OverRide是一款功能强大的代码研究工具,OverRide以类似“游戏”的形式提供了十个小挑战,广大研究人员可以使用OverRide来学习和了解关于反汇编、代码漏洞利用和逆向工程分析相关的知识。

在该项目的每一个等级文件夹中,你将会看到:

flag:针对下一关卡的密码;

md:告诉你如何找到过关密码;

c:逆向工程代码;

md:ASM相关内容;

最终分数:125/100

工具下载

广大研究人员可以从下列地址下载OverRide:

https://projects.intra.42.fr/uploads/document/document/2096/OverRide.iso

虚拟机配置

在macOS上,首先需要安装VirtualBox。然后在VirtualBox中,创建一台新的虚拟机。

虚拟机配置清单如下:

内存大小:4MB

磁盘文件类型:VDI

物理磁盘存储:动态分配

文件大小:12GB

接下来,点击设置->网络->适配器1->绑定至:桥接适配器。

还是在设置界面,加载我们之前下载好的ISO磁盘镜像。

然后启动虚拟机,运行之后将会显示虚拟机的IP地址并提示用户进行登录。

SSH连接

在一个单独的Shell中登录,用户名为level00,密码也是level00:

ssh level00@{VM_IP} -p 4242

Level过关

作为level00用户身份,其目标就是读取用户level01的登录密码,密码可以在/home/users/level01/.pass处找到。但是,用户level00并没有权限去读取这个文件。

在用户level00的主目录下,有一份level00源码,我们可以通过这个文件来处理用户level01的权限:

我们必须使用gdb找出level00源码中的安全漏洞,然后利用这个漏洞来运行“system("/bin/sh")”,并以用户level01的身份打开一个Shell,最终拿到读取密码的权限:

cat /home/users/level01/.pass

接下来,以用户level01登录:

su level01

以此类推,不断继续过关。

关卡概述

0 - 硬编码密码


1 - Ret2Libc攻击


2 - printf()格式字符串攻击


3 - 暴力破解密码


4 - gets()栈溢出 + libc攻击


5 - Shellcode + printf()格式字符串攻击


6 - 使用gdb发现哈希值


7 - 针对未受保护的数据表执行Ret2Libc攻击


8 - 通过符号链接备份源码密码


9 - Off-by-one错误

项目地址

OverRide:https://github.com/anyaschukin/OverRide

参考资料

https://github.com/anyashuka/Override/blob/main/subject.pdf

https://github.com/anyaschukin/RainFall

https://projects.intra.42.fr/uploads/document/document/2096/OverRide.iso

https://www.virtualbox.org/

# 逆向工程 # 代码分析 # 关卡游戏
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录