第一节 XSS漏洞
课程回顾
- 什么是XSS?
- XSS分类
- XSS演示
总结回答
- XSS: Cross Site Script,跨站脚本。 危害:盗取用户信息,钓鱼,制造蠕虫等。
XSS类型 | 方式 |
---|
存储型 | 将脚本存储在漏洞服务器中,受害者浏览页面就会执行恶意代码 |
反射型 | 访问携带XSS脚本的链接,触发XSS,解析参数输出到响应 |
DOM型 | 访问携带XSS脚本的链接,触发XSS,解析URL过程中执行恶意代码 |
- 略
学习拓展
初级
- 熟练掌握课程当中介绍的实例,读懂实例代码,根据课程当中介绍的知识点复现漏洞,并使用弹窗截图证明
- 了解并学习XSS漏洞的原理和常用测试方法,使用5个课堂当中没有讲解的测试脚本在课程测试环境当中进行测试,并利用弹窗截图进行证明
- 了解并学习常见的XSS漏洞类型,以及相应类型的特点和测试挖掘方法,并根据每种类型至少整理1-3个测试脚本 ,在课程环境进行测试
回答
- 略
- 参考网页
高级
- 搞懂每一个XSS测试脚本的意思和原理
参考链接 - 了解并学习XSS漏洞常用的过滤和绕过方法
参考链接 - 系统学习XSS漏洞相关知识
参考链接
第二节 CSRF漏洞
课程回顾
- CSRF是什么?
- CSRF原理
总结回答
- CSRF:Cross-site Request Forgery ,跨站请求伪造。可以执行恶意操作,蠕虫等。
- CSRF一般方法是在页面内插入一个恶意跳转页面,跳转页面内包含隐私页面的表单提交请求。
学习拓展
初级
- 深刻理解CSRF漏洞原理,至少列举5种在Web应用当中常见的漏洞场景
- 了解并熟悉一下CSRF的攻击脚本的构造和利用过程
回答
漏洞方式 | 造成危害 |
---|
转账漏洞 | 💰损失 |
登录漏洞 | 密码泄漏 |
插件漏洞 | 浏览记录监控 |
浏览器 | 获取浏览器cookie等信息 |
参考资料
2.
参考资料
高级
- 学习CSRF漏洞的防御方法,至少给出两种有效的防御方案,以及利用相应防御方法时的注意事项
- 学习如何将XSS漏洞与CSRF漏洞进行结合利用,给出常见的攻击思路,并结合课程当中的介绍的XSS和CSRF的实例,构造一个攻击脚本
回答
方法 | 缺点 |
---|
验证HTTP Reference | 可能侵犯用户隐私,太过依赖浏览器 |
添加token | 麻烦容易漏掉 |
自定义HTTP头属性 | 局限性大 |
参考网站
- 思路:通过XSS获得相应的cookie值后,用该cookie值来进行验证进一步实现CSRF。
第三节 点击劫持漏洞
课程回顾
- 什么是点击劫持?
- 点击劫持的构造
总结回答
- 是通过覆盖不可见的框架误导受害者点击。
- 构造一个iframe框架通过样式设置格式让诱惑性内容覆盖页面从而使得用户在诱导下进行点击,从而发生点击劫持。
学习拓展
初级
小漏洞大危害,看大牛们是如何利用点击劫持漏洞的
高级
了解并熟悉点击劫持漏洞的构造和防御方法
参考网页
第四节 URL跳转漏洞
课程回顾
- 什么是URL跳转漏洞?
- URL跳转的实现方式
- URL跳转的利用
总结回答
- URL跳转:借助未验证的URL跳转,将应用程序引导到不安全的第三方区域,从而导致安全问题。
- header头跳转
JS跳转
META标签跳转 - 熟悉的链接+恶意网址
http://www.xxx.com?url=www.evil.com
学习拓展
初级
学习互联网当中出现过的URL跳转漏洞,了解如何挖掘该漏洞,并给出至少5个互联网公司当中出现过的漏洞的具体案例
回答
参考链接
高级
- 系统学习URL跳转漏洞,了解其原理、测试方法和修复方案
- 列出一些常见的URL跳转漏洞的绕过方法,并进行测试
回答
- 参考链接
- 浏览器解析@前面的内容为登录内容,因此可以用www.baidu.com@www.evil.com来实现URL跳转,除此之外,还可以使用编码使得evil网站网址变得没那么容易识别。
第五节 SQL注入漏洞
课程回顾
- 什么是万能密码?
- 什么是SQL注入?
- SQL注入的原理,条件和本质
- SQL注入漏洞的利用方法和危害
总结回答
- 万能密码: admin’ –
- SQL注入:SQL Injection,一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问修改数据,或利用潜在的数据库漏洞进行攻击。
- 原理:构造SQL查询,服务器端缺少对输入的验证。
条件:1.可以控制输入的数据; 2.服务器要执行的代码拼接了控制的数据。
本质:数据和代码未分离,即将数据当作代码来执行。 - 利用方法 :构造SQL语句作为参数输入到请求中去。
危害:获取数据库信息;获取服务器权限;植入Webshell,获取服务器后门;读取服务器敏感文件;万能密码等…
学习拓展
初级
- 仔细学习本节内容,通读漏洞实例代码,根据课程内容,复现漏洞,并利用该漏洞获取的数据库用户名和版本信息,截图证明
- 给出常见的SQL注入漏洞类型,并注明类型划分的依据
- 学习SQL注入漏洞在利用过程当中猜解字段数量、字段名称、表名、字段内容的测试方法,并给出在进行猜解时常用的测试函数
回答
- 略
SQL注入类型 | 依据 | 样例 |
---|
布尔型 | 通过判断页面返回情况获得想要的信息 | http://hello.com/view?id=1 and substring(version(),1,1)=5 |
报错型 | 如果页面能够输出SQL报错信息,则可以从报错信息中获得想要的信息 | http://hello.com/view?id=1%20AND%20(SELECT%207506%20FROM(SELECT%20COUNT(*),CONCAT(0x717a707a71,(SELECT%20MID((IFNULL(CAST(schema_name%20 AS%20CHAR),0x20)),1,54)%20FROM%20INFORMATION_SCHEMA.SCHEMATA%20 LIMIT%202,1),0x7178786271,FLOOR(RAND(0)*2))x%20FROM%20INFORMATION_SCHEMA.CHARACTER_SETS%20GROUP%20BY%20x)a) |
可联合查询注入 | 最快捷的方法,通过UNION查询获取到所有想要的数据,前提是请求返回后能输出SQL执行后查询到的所有内容 | http://hello.com/view?id=1 UNION ALL SELECT SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME FROM INFORMATION_SCHEMA.SCHEMATA |
可多语言查询注入 | 即能够执行多条查询语句,非常危险,因为这意味着能够对数据库直接做更新操作 | http://hello.com/view?id=1;update t1 set content = 'aaaaaaaaa' |
基于时间延迟注入 | 判断请求响应的时间,但该类型注入获取信息的速度非常慢 | http://hello.com/view?q=abc' AND (SELECT * FROM (SELECT(SLEEP(5)))VCVe) OR 1 = ' |
参考页面
- 参考页面
高级
- 给出不同的数据库类型对应的延时注入测试方法或者函数,以及如何通过这些延时注入函数来判断是否存在SQL注入漏洞
数据库类型:Access、Mysql、Mssql、Oracle - 系统学习SQL注入漏洞,了解不同的数据库类型出现SQL注入漏洞时的测试方法
回答
数据库类型 | 方法或函数 |
---|
Access | |
Mysql | BENCHMARK() 或sleep() |
Mssql | |
Oracle | DBMS_PIPE.RECEIVE_MESSAGE() |
- 略
第六节 命令注入漏洞
课程回顾
- 什么是命令?
- 命令注入的三个条件?
- 命令注入的攻击过程。
总结回答
- 母鸡。
- 调用可执行系统命令的函数;函数或函数的参数可控;拼接注入命令。
学习拓展
初级
- 仔细学习本节内容,通读课程当中实例代码,并利用课程当中提供的代码复现本节所介绍漏洞,并截图证明。
- 搜集整理在命令执行漏洞测试过程当中常用的测试命令命名为cmd.txt,并了解这些命令对应的返回信息
参考实例:
命令:whoami 返回值:root
高级
结合课程实例,学习命令执行漏洞,深刻理解该漏洞的产生原因、测试方法以及防御方法
参考链接
第七节 文件操作漏洞
课程回顾
- 文件上传漏洞
- 任意文件下载漏洞
- 文件包含漏洞
学习拓展
初级
- 结合课程实例,构造一个homework.php的文件,利用文件上传漏洞进行上传,并输出phpinfo函数的执行截图证明
- 结合课程实例,通过任意文件下载漏洞下载include.php文件,并给出相应的链接地址
- 结合课程实例,复现本地和远程文件包含漏洞(利用文件命名为homework,格式自定义),了解该漏洞在复现时需要哪些系统参数配置的支持,并输出phpinfo()函数执行信息截图证明
高级
- 结合课程实例,熟悉文件上传漏洞产生的原因,以及常见的利用和防御方法
参考链接 - 搜集以下常用文件上传控件在不同版本时期曾经曝光过的历史漏洞,并整理成笔记
控件名称:ewebeditor、fckeditor - 给出常见的文件上传漏洞防御方法,其中包括客户端和服务器端,并说明这些方法的利弊,以及是否存在绕过方法
- 结合课程实例,学习任意文件下载漏洞,学习该漏洞的原理和测试方法
参考链接 - 搜集并整理常见的任意文件下载漏洞的利用脚本,并整理成字典download.txt
- 结合课程实例,学习文件包含漏洞,了解该漏洞的触发条件和测试方法
参考链接