毕业实习第四天

目录

一,总结反射型、存储型、DOM型XSS特点和区别

反射型XSS

存储型XSS

DOM型XSS

总结

二,fuzz字典

1、XSS的fuzz字典

2、XSS的fuzz字典生成工具

3、使用建议

 三,XSS靶场挑战(https://xss.tesla-space.com/)

1,level1

2,level2

3,level3

4,level4

5,level5

6,level6

7,level7


一,总结反射型、存储型、DOM型XSS特点和区别

反射型XSS

  • 特点:
    • 攻击者通过构造恶意URL参数来实施攻击
    • 用户点击恶意链接后,恶意代码会被发送到服务器
    • 服务器生成包含恶意代码的响应并返回给客户端
    • 客户端执行恶意代码
  • 区别:
    • 需要用户点击恶意链接才能触发
    • 依赖服务器端的响应生成恶意内容

存储型XSS

  • 特点:
    • 恶意代码存储在服务器数据库中
    • 当用户访问包含恶意代码的页面时触发
    • 可以影响所有访问该页面的用户
  • 区别:
    • 不需要用户点击链接
    • 恶意代码存储在服务器上,可以长期有效

DOM型XSS

  • 特点:
    • 恶意代码直接在客户端JavaScript中执行
    • 不需要服务器响应或数据存储
    • 依赖URL参数或DOM操作生成恶意代码
  • 区别:
    • 不涉及服务器响应
    • 代码直接在浏览器中执行
    • 可能需要用户点击或交互触发

总结

  • 反射型和存储型XSS都需要服务器参与,而DOM型XSS则完全在客户端完成
  • 反射型XSS需要用户点击,存储型XSS可以持续影响多个用户,DOM型XSS可能需要用户交互
  • 防御策略也各异,反射型和存储型XSS需要服务器端保护,DOM型XSS需要客户端安全措施

二,fuzz字典

1、XSS的fuzz字典

fuzz字典是fuzzing测试(模糊测试)中用于生成输入数据的重要资源,它包含了各种可能的输入值,这些值被fuzzing工具发送到目标系统以检测潜在的漏洞。对于XSS漏洞的检测,fuzz字典通常包含各种可能导致XSS攻击的字符串,如HTML标签、JavaScript代码片段等。

以下是一些常用的XSS fuzz字典资源:

  • FuzzDB:一个包含各种安全测试字典的集合,其中包括了针对XSS的fuzz字典。可以从FuzzDB的GitHub仓库获取。
  • AwesomeXSS:一个包含XSS相关资源(包括fuzz字典)的集合,由安全研究员s0md3v维护。可以从AwesomeXSS的GitHub仓库获取。
  • SecLists:一个包含各种安全测试字典和资源的集合,其中包括了针对XSS的fuzz字典。可以从SecLists的GitHub仓库获取。

2、XSS的fuzz字典生成工具

除了直接使用现成的fuzz字典外,还可以使用一些工具来生成自定义的fuzz字典,以满足特定的测试需求。以下是一些常用的XSS fuzz字典生成工具:

  • Crunch:Crunch是一种强大的密码和fuzz字典生成工具,可以根据用户指定的规则生成各种复杂的字符串组合。它非常适合在渗透测试阶段用于生成爆破密码或fuzz测试数据。Crunch的使用需要一定的命令行操作基础,但它提供了非常灵活的配置选项,可以生成高度定制化的fuzz字典。
  • upload-fuzz-dic-builder:这是一个针对文件上传漏洞的fuzz字典生成工具,但同样可以生成适用于XSS测试的fuzz字典。该工具可以根据上传点的相关信息(如允许的上传后缀、后端语言、中间件等)来生成精确的fuzz字典。使用Python编写,可以在Python环境下运行。工具的安装和使用方法可以从GitHub仓库获取。

3、使用建议

  1. 选择合适的fuzz字典:根据测试目标和场景选择合适的fuzz字典,可以提高测试的效率和准确性。
  2. 自定义fuzz字典:如果现成的fuzz字典无法满足测试需求,可以考虑使用fuzz字典生成工具来生成自定义的fuzz字典。
  3. 结合fuzzing工具使用:将fuzz字典与fuzzing工具(如Wfuzz、ffuf等)结合使用,可以自动化地执行模糊测试过程,提高测试效率。
  4. 分析测试结果:在fuzzing测试完成后,需要仔细分析测试结果中的响应、时间和状态代码等信息,以确定是否存在潜在的XSS漏洞。

 三,XSS靶场挑战(https://xss.tesla-space.com/

1,level1

发现更改level1.php?name=后的字段,刷新后会改变payload的长度,表示该字段的字长

  根据源代码可知当有个弹窗就会执行函数,最后得到我们想要的“完成的不错”

输入 <script>alert(123)</script>

2,level2

按照上一关输入<script>alert(123)</script>,发现无效

查看页面源代码

发现我们输入的数据被写入了value里,可以添加 "> 来闭合前面的

输入"><script>alert(123)</script>//即可

3,level3

输入上一关的结果后查看源代码

使用htmlspecialchars函数把预定义的字符&、”、 ’、<、>转换为HTML实体,防止浏览器将其作为HTML元素

但是默认是只编码双引号的,而且单引号无论如何都不转义。

所以输入'οnclick='alert(123),网页的表单输入框的就会被添加 onclick属性,我们点击一下,输入框即可过关

4,level4

查看源码发现和第三关差不多只是在第三关的基础上添加了对 尖括号的过滤

输入" οnclick="alert(123)过关

5,level5

这关过滤了 on 和 <script,需要使用其他payload

javascript:alert(123) 使用了java伪协议

输入"><iframe src="javascript:alert(1)"></iframe>

        "><a href="javascript:alert(1)">  即可过关

6,level6

出现了更多的过滤,但是大小写可以绕过

输入"><a HrEf="javascript:alert(1)">后点击链接即可

7,level7

这次把我们的输入强制换成了小写,但是过滤不严谨,可以双写绕过

输入"><scscriptript>alert(1)</sscriptcript>即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值