20155306 白皎 免考实践总结——0day漏洞
本次免考实践提纲及链接
第一部分 基础知识
1.1 0day漏洞概述
1.2二进制文件概述
1.3 必备工具
1.4 crack实验
第二部分 漏洞利用
2.1.1 系统栈工作原理
2.1.2 修改邻接变量
2.1.3 修改函数返回地址
2.1.4 代码植入
2.2.1 DEP机制的保护原理
2.2.2 linux下利用Ret2Lib绕过DEP
2.2.3 windows下利用Ret2Libc绕过DEP
2.3.1 GS安全编译选项的保护原理
2.3.2 利用未被保护的内存突破GS
2.3.3 覆盖虚函数突破GS
2.3.4 攻击异常处理突破GS
2.3.5 同时替换栈中和.data中的Cookie突破GS
3.1 Ubuntu16.04 (CVE-2017-16995)
3.2 Flash 0day(CVE-2018-4878)
总结与体会
一、 总结
终于历经辛苦完成了本次免考实践,可以安心复习其他课程了哈哈。回顾这次免考实践,刚开始选择0day漏洞这个课题,起初是因为在微信群里看到老师发了一个2018年5月的Flash 0day漏洞的相关链接,经了解后,便萌生了想要从头自学0day漏洞相关原理知识的想法。通过在图书馆借阅相关书籍、以及从网上购买书籍和查阅资料,我大概确定了自己的免考思路,如上述目录所列的内容。
首先,我学习了对0day漏洞环境的搭建,以及相关工具的熟悉,并掌握了很多必备的工具。
其次,我选择学习了0day漏洞初级、高级的原理并进行实践。其中,第一部分,主要介绍了学习0day漏洞需要掌握应用了四种工具以及关于PE文件等的基础知识,主要收获是学习了通过查看内存地址,寄存器的值以及栈中的数值变化来判断出程序运行目前的状态。第二部分,学习了漏洞原理之栈溢出利用,目标代码嵌套到shellcode中,通过溢出覆盖地址的方式,替换掉本来的地址,而是将地址指向我想要执行的shellcode,以达到目的。除此之外,成功利用系统函数system()实现了在Linux下做Ret2Lib绕过DEP,并掌握了在Windows下做Ret2Lib绕过DEP的各种思路方法。在最后模块,我主要是实践如何突破GS,GS是微软提供的一种编译保护选项,主要目的是为了增加栈溢出的难度。在这一部分的实践过程中我尝试了许多方法,找了很多教程,但是网上相关的内容并不多,因此遇到了很多问题,感受到自己的知识还有很大差距。比如,在老师的帮助下,我才了解在程序里设断点,并且把程序改成release版本是会报错的,断点必须在OD中设置,也正是因为这个问题让我调试了很久,浪费了很多时间。在此,还是要非常感谢老师!
最后,我原本的初心是通过这次免考所学到的知识可以去复现并分析一个近两年的漏洞。但是我发现仅仅通过这次免考实践我所掌握的知识还是非常浅薄的,只是最原始的知识层面,因此主要完成了复现近两年的两个0day漏洞。希望以后在时间充裕的情况下,还可以进一步深入学习。
二、 体会
总之,本次实践的整体过程难免遇到了一些问题,进行了一些调整,但最终这次免考实践我最大的感触就如Krashen的“i+1”理论,它既没有像“i+0”让我在原有的知识层面上毫无所获,也没有像“i+N(N远大于1)”让我丧失对获得新鲜知识的兴趣甚至产生畏惧感。一个人单独完成这项任务给了我很大的压力,但也让我能够转化为动力,踏踏实实沉下心来去研究、去思考,从而让我收获颇丰。
我另一点印象最深的体会就是在向老师请教的时候,老师说的那句话,一定要做得很开心、很享受,知道自己在做什么。虽然说实话最开始我们都是怀抱一颗仅仅是想要获得好成绩的心选择免考哈哈,但是在这个过程中,一次次实践的成功让我获得巨大的成就感,让我真正地用心体会到了“兴趣才是最好的老师”这个简单质朴却又极其经典的道理。免考实践就像是整个网络攻防课程的缩影,如果我们只是被动地疲于应付老师每次要求的实践任务,便没有任何意义。而只有主动地积极学习,享受学习带来的乐趣,才能在整个学习的过程在收获幸福感、获得感!
20155306 白皎 免考实践总结——0day漏洞的更多相关文章
- 20155306 白皎 0day漏洞——基础知识
20155306 白皎 0day漏洞--(第一篇)基础知识 写在前面: 本次免考实践方向是0day漏洞,以博客的形式记录了我的学习实践过程.第一篇博客主要围绕什么是0day漏洞以及一些以后学习中需要的 ...
- 20155306 白皎 0day漏洞——漏洞利用原理之GS
20155306 白皎 0day漏洞--漏洞利用原理之GS 一.GS安全编译选项的保护原理 1.1 GS的提出 在第二篇博客(栈溢出利用)中,我们可以通过覆盖函数的返回地址来进行攻击,面对这个重灾区, ...
- 20155306 白皎 0day漏洞——漏洞利用原理之栈溢出利用
20155306 白皎 0day漏洞--漏洞利用原理之栈溢出利用 一.系统栈的工作原理 1.1内存的用途 根据不同的操作系统,一个进程可能被分配到不同的内存区域去执行.但是不管什么样的操作系统.什么样 ...
- 20155306 白皎 0day漏洞——漏洞利用原理之DEP
20155306 白皎 0day漏洞--漏洞利用原理之DEP 一.DEP机制的保护原理 1.为什么出现DEP? 溢出攻击的根源在于现代计算机对数据和代码没有明确区分这一先天缺陷,就目前来看重新去设计计 ...
- 20155306白皎 《网络对抗》 Exp9 Web安全基础实践
20155306白皎 <网络对抗> Exp9 Web安全基础实践 一.基本问题回答 SQL注入攻击原理,如何防御 原理是: 就是通过把SQL命令插入到"Web表单递交" ...
- 20155306 白皎 《网络攻防》 Exp2 后门原理与实践
20155306 白皎 <网络攻防> Exp2 后门原理与实践 一.实践基础 后门程序又称特洛伊木马,其用途在于潜伏在电脑中,从事搜集信息或便于黑客进入的动作.后程序和电脑病毒最大的差别, ...
- 20155306 白皎 《网络攻防》Exp1 PC平台逆向破解——逆向与Bof基础
20155306 白皎 <网络攻防>Exp1 PC平台逆向破解--逆向与Bof基础 实践相关说明 1.1 实践目标 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. ...
- 20155306 白皎 《网络攻防》 EXP8 Web基础
20155306 白皎 <网络攻防> EXP8 Web基础 一.问题回答 - 什么是表单 表单:一般用来收集用户的信息和反馈意见 表单包括两个部分:一部分是HTML源代码用于描述表单(例如 ...
- 20155306 白皎 《网络攻防》 EXP7 网络欺诈技术防范
20155306 白皎 <网络攻防> EXP7 网络欺诈技术防范 问题回答 (1)通常在什么场景下容易受到DNS spoof攻击 局域网内的攻击以及连接公众场所的共享wifi (2)在日常 ...
随机推荐
- 学习笔记(5)——实验室集群LVS监控Web界面配置
症状:通过虚拟IP能访问到监控页面:http://192.168.253.110/ipvsadm.php,但是却无法读出LVS任务分发及集群负载信息. 打开ipvsadm.php页面,源码如下: &l ...
- Lambda表达式 For Android
Lambda简介 A lambda expression is a block of code with parameters. lambda表达式是带参数的代码块. 虽然看着很先进,其实Lambda ...
- Android 常见adb命令
Android 常见adb命令 by:授客 QQ:1033553122 1. 查看所有已链接的设备 命令: adb devices 例: C:\Users\laiyu>adb device ...
- LeetCode题解之Palindromic Substrings
1.问题描述 2.问题分析 对于每一个字符,以该字符为中心计算回文个数. 3.代码 int countSubstrings(string s) { ; ) ; ; i < s.size(); i ...
- Sql server 使用drop database 语句,无法删除正在使用的数据库的解决办法
使用DROP DATABASE 删除数据库 显示“无法删除数据库 ,因为该数据库当前正在使用. 解决办法:在删除某一个数据库(下例中的“DB1”数据库)前,强制kill掉该数据库上的所有数据库连接. ...
- win10的ie11正确卸载与重新安装
win10的ie11是自带与斯巴达共存的浏览器,不正确的卸载或安装可能会导致不可预知的问题,以下为我总结出来正确的方法: 卸载: 进入 控制面板--程序与功能 之后在左侧选择 “启动与关闭Window ...
- MySQL优化之Explain命令解读,optimizer_trace
简述: explain为mysql提供语句的执行计划信息.可以应用在select.delete.insert.update和place语句上.explain的执行计划,只是作为语句执行过程的一个参考, ...
- java读取txt文件的2中方法---并将内容(每一行以固定的字符分割切成2段)存到map中去
#java读取txt文件的第一种方法 /** * 方法:readTxt * 功能:读取txt文件并把txt文件的内容---每一行作为一个字符串加入到List中去 * 参数:txt文件的地址 * 返回: ...
- ISO8583组包、解包
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace POS. ...
- vsftp配置
网上很多,但我还是想再整理一份属于自己的 1.vsftp简介 vsftp提供三种登陆方式:.匿名登录 .本地用户登录 .虚拟用户登录 vsftpd的特点:.较高的安全性需求 .带宽的限制 .创建支持虚 ...