本次免考实践提纲及链接

第一部分 基础知识

1.1 0day漏洞概述

1.2二进制文件概述

1.3 必备工具

1.4 crack实验

第二部分 漏洞利用

2.1栈溢出利用

2.1.1 系统栈工作原理

2.1.2 修改邻接变量

2.1.3 修改函数返回地址

2.1.4 代码植入

2.2 DEP

2.2.1 DEP机制的保护原理

2.2.2 linux下利用Ret2Lib绕过DEP

2.2.3 windows下利用Ret2Libc绕过DEP

2.3 GS

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漏洞的更多相关文章

  1. 20155306 白皎 0day漏洞——基础知识

    20155306 白皎 0day漏洞--(第一篇)基础知识 写在前面: 本次免考实践方向是0day漏洞,以博客的形式记录了我的学习实践过程.第一篇博客主要围绕什么是0day漏洞以及一些以后学习中需要的 ...

  2. 20155306 白皎 0day漏洞——漏洞利用原理之GS

    20155306 白皎 0day漏洞--漏洞利用原理之GS 一.GS安全编译选项的保护原理 1.1 GS的提出 在第二篇博客(栈溢出利用)中,我们可以通过覆盖函数的返回地址来进行攻击,面对这个重灾区, ...

  3. 20155306 白皎 0day漏洞——漏洞利用原理之栈溢出利用

    20155306 白皎 0day漏洞--漏洞利用原理之栈溢出利用 一.系统栈的工作原理 1.1内存的用途 根据不同的操作系统,一个进程可能被分配到不同的内存区域去执行.但是不管什么样的操作系统.什么样 ...

  4. 20155306 白皎 0day漏洞——漏洞利用原理之DEP

    20155306 白皎 0day漏洞--漏洞利用原理之DEP 一.DEP机制的保护原理 1.为什么出现DEP? 溢出攻击的根源在于现代计算机对数据和代码没有明确区分这一先天缺陷,就目前来看重新去设计计 ...

  5. 20155306白皎 《网络对抗》 Exp9 Web安全基础实践

    20155306白皎 <网络对抗> Exp9 Web安全基础实践 一.基本问题回答 SQL注入攻击原理,如何防御 原理是: 就是通过把SQL命令插入到"Web表单递交" ...

  6. 20155306 白皎 《网络攻防》 Exp2 后门原理与实践

    20155306 白皎 <网络攻防> Exp2 后门原理与实践 一.实践基础 后门程序又称特洛伊木马,其用途在于潜伏在电脑中,从事搜集信息或便于黑客进入的动作.后程序和电脑病毒最大的差别, ...

  7. 20155306 白皎 《网络攻防》Exp1 PC平台逆向破解——逆向与Bof基础

    20155306 白皎 <网络攻防>Exp1 PC平台逆向破解--逆向与Bof基础 实践相关说明 1.1 实践目标 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. ...

  8. 20155306 白皎 《网络攻防》 EXP8 Web基础

    20155306 白皎 <网络攻防> EXP8 Web基础 一.问题回答 - 什么是表单 表单:一般用来收集用户的信息和反馈意见 表单包括两个部分:一部分是HTML源代码用于描述表单(例如 ...

  9. 20155306 白皎 《网络攻防》 EXP7 网络欺诈技术防范

    20155306 白皎 <网络攻防> EXP7 网络欺诈技术防范 问题回答 (1)通常在什么场景下容易受到DNS spoof攻击 局域网内的攻击以及连接公众场所的共享wifi (2)在日常 ...

随机推荐

  1. 【SPL标准库专题(8)】 Datastructures:SplFixedArray

    SplFixedArray主要是处理数组相关的主要功能,与普通php array不同的是,它是固定长度的,且以数字为键名的数组,优势就是比普通的数组处理更快. 类摘要 SplFixedArray im ...

  2. sqlserver sql优化案例及思路

    始sql: SELECT TOP 100 PERCENT ZZ.CREW_NAME AS 机组, ZZ.CREW_ID, AA.年度时间, CC.当月时间, DD.连续七天时间 AS 最近七天 FRO ...

  3. Python实例---爬取下载喜马拉雅音频文件

    PyCharm下python爬虫准备 打开pycharm 点击设置 点击项目解释器,再点击右边+号 搜索相关库并添加,例如:requests 喜马拉雅全网递归下载 打开谷歌/火狐浏览器,按F12打开开 ...

  4. 4星|《门口的野蛮人2》:美国宝万之争专业户KKR公司的疯狂借债收购史

    门口的野蛮人2:KKR与资本暴利的崛起(珍藏版) 英文版是1992年出的.主要内容是1977-1998年之间KKR在美国的杠杆收购简史.从KKR创立开始,讲到1990年KKR差点倒闭.国内A股市场上前 ...

  5. Symbol Table Applications

    符号表应用 在计算机发展的早期,符号表帮助程序员从使用机器语言的数字地址进化到在汇编语言中使用符号名称:在现代应用程序中,符号名称的含义能够通行于跨域全球的计算机网络.快速查找算法曾经并继续在计算机领 ...

  6. vagrant设置虚拟机的名字

    如果我们不在vagrant init 命令生成的vagrantfile文件中声明虚拟机的名字的话,一般会默认给我们指定一个名字,指定的方法: config.vm.provider "virt ...

  7. 洛谷P4053 [JSOI2007]建筑抢修

    放题解 题目传送门 放代码 #include <bits/stdc++.h>//万能头 #define MAXN 150000//最多的建筑数量(数据范围) using namespace ...

  8. MyBatis实战之配置

    MyBatis最重要的配置也就两个,一个是mybatis-config.xml,又称MyBatis的全局配置,另一个就是XXXDao.xml或XXXMapper.xml映射配置. mybatis-co ...

  9. WorldWind源码剖析系列:星球类World

    星球类World代表通用的星球类,因为可能需要绘制除地球之外的其它星球,如月球.火星等.该类的类图如下. 需要说明的是,在WorldWind中星球球体的渲染和经纬网格的渲染时分别绘制的.经纬网格的渲染 ...

  10. 矿难让显卡压了那么多货咋办?NV如是说

    在苏州 GTC 开幕的几天前,英伟达刚刚遭遇了一次股价的腰斩. 近来加密货币的热度渐低,受到挖矿热潮照顾许多的英伟达「矿机」销量受到打击,甚至出现了严重的库存危机,加上近来刚刚发的 RTX20 系列显 ...