渗透测试CISP-PTE-系列学习笔记
第一章 渗透测试CISP-PTE:Web安全简介
第二章 渗透测试CISP-PTE:信息收集
第三章 渗透测试CISP-PTE:漏洞扫描
第四章 渗透测试CISP-PTE:HTTP请求流程
第五章 渗透测试CISP-PTE:SQL注入
第六章 渗透测试CISP-PTE:暴力破解
第七章 渗透测试CISP-PTE:XSS
文章目录
前言
XSS (Cross-Site Scripting) 攻击是一种利用 Web 应用程序的漏洞,通过在用户输入的数据中注入恶意脚本来实施攻击的方法。
一、XSS攻击类型
1、反射性XSS
攻击者将恶意脚本注入到 URL 中,当用户点击包含恶意脚本的链接时,脚本会在用户的浏览器中执行。攻击者设置圈套,构造一个恶意代码/链接,让受害者访问,当用户访问带有XSS恶意代码的URL请求时,服务器端接收数据后处理,然后把带有XSS代码的数据发送到用例浏览器,浏览器解析这带有XSS代码的数据后,最终造成XSS漏洞
例如这个页面存在xss漏洞,在php中 . 的左右
<?php $username = $_GET['username']; echo 'hello world: ' . $username; ?>例如让受害者访问http://127.0.0.1?username=<script>alert("xss");</script>
使用反射型xss将用户的cookie反馈给攻击者
http://127.0.0.1?username=
攻击场景,仅仅弹个框?
假如http://test.com/xss1.php存在XSS反射型跨站漏洞,那么攻击者的步骤可能如下。
- test1是网站test.com的用户,此时正在登录的状态中。
- 攻击者发现http://test.com/xss1.php存在XSS反射型跨站漏洞,然后精心构造JavaScript代码,此段代码可以窃取用户的cookie。
- 攻击者将带有反射型XSS漏洞的URL通过站内信息发送给用户test1,使用各种诱导的方式让用户 test1去打开链接。
- 如果用户test1打开了带有XSS漏洞的URL,那么就会把自己的cookie发送到攻击者中。
- 攻击者接受到用户test1的会话cookie,就可以直接利用cookie以test1的身份登录test.com网站中。
以上步骤,通过使用反射型XSS漏洞可以以test1的身份登录网站,这就是其危
2、存储型XSS
存储型XSS又被称为持久性XSS,存储型XSS是最危险的一种跨站脚本。允许用户存储数据的WEB应用程序都可能会出现存储型XSS漏洞,当攻击者提交一段XSS代码后,被服务器端接收并存储,当再次访问页面时,这段XSS代码被程序读取响应给浏览器,造成XSS跨站攻击,这就是存储型XSS。
如下图所示,攻击者将恶意脚本存储在服务器上,当用户访问包含该脚本的页面时,脚本会从服务器加载并执行。
在测试是否存在XSS时,首先要确定输入点与输出点,例如:我们要在留言内容上测试XSS漏洞,首先就要去寻找留言内容输出(显示)的地方是在标签内还是标签属性内,或者在其他地方,如果输出的数据在属性内,那么XSS是不会被执行的。
攻击场景
- 在留言板处使用XSS代码。
<script>alert(document.cookie)</script
- 重新加载留言处页面时,代码被执行。
3、DCOM型XSS
DOM的全称为Document Object Model,即文档对象模型,DOM通常用于代表在HTML、XHTML和XML中的对象。使用DOM可以允许程序和脚本动态地访问和更新文档的内容、结构和样式。
通过JavaScript可以重构整个HTML页面,而要重构页面或者页面中的某个对象,JavaScript就需要知道HTML文档中所有元素的“位置”。而DOM为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构。根据DOM规定,HTML文档中的每个成分都是一个节点。
DOM的规定如下:
• 整个文档是一个文档节点
• 每个HTML标签是一个元素节点
• 包含在HTML元素中的文本是文本节点
• 每一个HTML属性是一个属性节点
• 节点与节点之间都有等级关系
传统类型的XSS漏洞(反射型或存储型)一般出现在服务器端代码中,而DOM XSS是基于DOM文档对象模型的一种漏洞,所以,受客户端浏览器的脚本代码所影响。
DOM XSS取决于输出位置,并不取决于输出环境,因此也可以说DOM XSS既有可能是反射型的,也有可能是存储型的,简单去理解就是因为他输出点在DOM。
攻击者将恶意脚本注入到页面的 DOM (文档对象模型)中,当用户交互操作触发脚本执行时,脚本会执行恶意操作
二、HTML对象/标签对应的事件
允许JavaScript在HTML文档元素中注册不同事件的处理程序,事件通常于函数结合使用,函数不会在事件发送前执行。
1、鼠标事件
2、框架/对象(Frame/Object)事件
三、XSS常见Payload
1.简单的弹窗告警
2.获取cookie
3.其他标签
4.嵌入其他网站链接
XSS输入HTML代码段,如使网页不停刷新
<meta http-equiv=“refresh” content=“0”;>
5.注释符
5.1.HTML注释符
或者5.2.JavaScript/PHP注释符
单行注释://
多行注释:/* *** */
四、XSS漏洞测试流程
1.测试流程
- 在目标上找输入点,比如查询接口、留言板
- 输入一组“特殊字符(>, ',")等+唯一识别字符”,点击提交,查看返回源码,看后端返回的数据(输出点)是否有处理(过滤、转义等)
- 通过搜索定位到唯一字符,结合唯一字符前后语法确定是否可以构造执行JS的条件(构造闭合\构造payload)目的是让输入的数据(从属性或标签当中逃逸出来)变成代码来执行
- 提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞
XSS漏洞的防御原则:输入做过滤、输出做转义
2.输出点位置的不同,闭合方式不同
2.1.输出在HTML属性中
- 闭合html属性,插入新的属性
- 闭合input标签,插入新的script标签
"/>
2.2.输出在CSS代码中
- 闭合css代码中的属性,插入新的属性
2.3.输出在JavsScript中
- 闭合javasript代码,插入攻击代码
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
一、网安学习成长路线图
网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网安视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
三、精品网安学习书籍
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、网络安全源码合集+工具包
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、网络安全面试题
最后就是大家最关心的网络安全面试题板块
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
这时候可以搞点实战案例来学习。
五、网络安全面试题
最后就是大家最关心的网络安全面试题板块
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-ThXDj7eS-1712637496098)]