实训第四天

1.XSS介绍

1.1 反射型

反射型也称为非持久型,这种类型的脚本是最常见的,也是使用最为广泛的一种,主要用于将恶意的脚本附加到URL地址的参数中。

特点:这种攻击方式往往具有一次性。

攻击方式:攻击者通过电子邮件等方式将包含xss代码的恶意链接发送给目标用户。当目标用户访问该链接时,服务器接收该目标用户的请求并进行处理,然后服务器把带有xss代码的数据发送给目标用户的浏览器,浏览器解析这段带有xss代码的恶意脚本后,就会触发xss漏洞。

1.2 存储型

攻击者将已经构造完成的恶意页面发送给用户,用户访问看似正常的页面后收到攻击,这类XSS通常无法直接在URL中看到恶意代码,具有较强的持久性和隐蔽性。

特点:攻击脚本将被永久地存放在目标服务器的数据库或文件中,具有很高的隐蔽性。

攻击方式:这种攻击多见于论坛、博客和留言板,攻击者在发帖的过程中,将恶意脚本连同正常信息一起注入帖子的内容中。随着帖子被服务器存储下来,恶意脚本也永久地被存放在服务器的后端存储器中 。 当其他用户浏览这个被注入了恶意脚本的帖子时,恶意脚本会在他们的浏览器中得到执行 。所以需要浏览器从服务器载入恶意的xss代码,才能真正触发xss。

1.3 DOM

DOM型XSS无需和后端交互,而是基于JavaScript上,JS解析URL中恶意参数导致执行JS代码。

特点:其中攻击的payload由于修改受害者浏览器页面的DOM树而执行的。其特殊的地方就是payload在浏览器本地修改DOM树而执行,并不会传到服务器上,这也就使得DOM型XSS比较难以检测。

攻击方式:用户请求一个经过专门设计的URL,它由攻击者提交,而且其中包含XSS代码。服务器的响应不会以任何形式包含攻击者的脚本。 当用户的浏览器处理这个响应时, DOM对象就会处理XSS代码,导致存在XSS漏洞 。

1.4 三种XSS的区别

反射型通过将恶意脚本嵌入到URL参数中,当用户点击含有恶意链接时,脚本会被Web应用读取并在用户的浏览器中执行。这种攻击通常是一次性的,依赖于用户的交互行为,如点击链接或提交表单。

存储型XSS则更为严重,因为恶意脚本会被保存在Web服务器或数据库中,然后通过正常的网页请求被加载出来。这意味着任何访问该页面的用户都可能成为受害者,使得这种攻击具有长期性和广泛传播的能力。这类攻击常见于论坛、博客评论等允许用户提交内容的应用场景。

DOM型XSS与前两种有所不同,它主要发生在客户端。这种攻击利用的是浏览器端的DOM(文档对象模型)操作,当JavaScript代码处理用户输入数据时没有正确过滤或验证,攻击者就可以通过修改DOM来执行恶意脚本。这种类型的XSS攻击通常涉及对页面元素的动态修改,而不必经过服务器端处理。

2. fuzz字典

Fuzz字典(Fuzz Dictionary),也称为模糊测试字典,是用于模糊测试(Fuzz Testing)的一种工具。模糊测试是一种软件测试方法,旨在发现软件中的缺陷、漏洞或异常行为。Fuzz字典通常包含一系列预定义的数据值,这些数据值被设计成能够覆盖尽可能多的边界情况、特殊字符组合以及其他可能引起程序未预期行为的输入。

2.1 作用

1. 发现漏洞:通过向软件发送大量的非预期输入,Fuzz字典可以帮助识别软件中的安全漏洞,特别是那些可能导致缓冲区溢出、格式化字符串漏洞、SQL注入、XSS等的安全问题。

2. 测试覆盖率:Fuzz字典可以提供多种类型的输入数据,帮助测试人员更好地覆盖程序的各种输入边界条件,增加测试的全面性。

3. 提高软件质量:通过暴露软件中的错误,Fuzz字典有助于开发者改进代码质量,修复潜在的bug,从而增强软件的稳定性和安全性。

4. 自动化测试:Fuzz字典常常与自动化测试工具一起使用,使得测试过程更加高效。这些工具可以根据字典中的数据自动生成测试案例,并自动运行它们。

5. 协议测试:在网络协议或文件格式的实现中,Fuzz字典可以帮助发现不符合规范的行为或解析器中的错误。

2.2 下载地址

【字典合集】渗透测试多种常用字典

字典内容包含:FUZZ字典、账号密码大字典、设备默认口令、服务口令爆破字典。

3. XSS靶场

        网址:https://xss.tesla-space.com/

3.1 level1

右键查看网页源代码

发现把alert弹窗设置为了下一关的入口,绑定给了test。

我们修改网页url把test替换为<script>alert('1')</script>

3.2 level2

输入上一关卡的代码仍无效

查看源码,发现特殊符号被html实体转义了,但是value的值没有被实体转义

右键查看网页源代码

为了实现我们的JavaScript代码就必须先闭合test外的两个双引号“”和input的两个书名号><

即在查询框中输入:"><script>alert()</script><"

3.3 level3

输入上一关卡的代码仍无效

右键查看网页源代码

发现将<>转换为了html实体,用onfocus事件进行绕过操作

尝试构建代码' οnmοuseοver=javascript:alert() '

3.4 level4

输入上一关卡的代码仍无效

右键查看网页源代码

发现中间的' οnmοuseοver=javascript:alert() '为输入框内容,会被h2打印出来,且使用了双引号。

构建与第三关所用类似的代码" οnmοuseοver=javascript:alert() "

3.5 level5

输入上一关卡的代码仍无效

右键查看网页源代码

发现写入的onmouseover函数被添加一个下划线屏蔽掉了。

则换另一种方法插入我们要输入的代码。例如:"> <a href=javascript:alert()>xss</a> <"

出现了我们输入的a标签xss,点击就可以通过此关卡。

3.6 level6

输入上一关卡的代码仍无效

右键查看网页源代码

发现输入的所有标签全部被加了下划线屏蔽掉了。

只能另外再用别的方法解题,尝试利用大小写解开。例如:"> <sCript>alert()</sCript> <"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值