前面我们提到XSS,对于一个基本的XSS漏洞页面,它发生的原因往往是从用户输入的数据到输出没有有效的过滤,就比如下面的这个范例代码。
<?php
$a = $_GET['a'];
echo $a;
?>
对于这样毫无过滤的页面,我们可以使用一些简单的恶意脚本即可完成攻击,但是事实上,为了应付XSS的攻击,我们会采用黑名单技术对一些特殊字符进行过滤,包括一些敏感的函数。但是这样一来就会严重限制用户的输入,影响用户的体验。
% * + , – / ; < = > ^ | `
on\w+=
script
svg
iframe
link
总结:
1、最基本的攻击,我们看到这是用get的形式提交一个name值,然后显示到浏览器上,

我们输入【<script>alert('XSS')</script>】,即可使其弹窗

2、当输入代码后没有提示任何异常信息,我们的输入缘分不动的被抛出,可以看到浏览器并没有执行我们的代码,而是当做了字符串,我们猜测这是在属性位置,这里我们需要构造闭合来提前结束。

"><script>alert('XSS')</script>

3、这里我们输入一般的脚本语句,发现并不会被执行,换一种思路我们使用触发事件来进行弹窗,一般使用的事件函数大家可以百度一下,就相当于把弹窗的动作赋给事件函数,当浏览器执行事件时就会进行弹窗的动作。
'onclick='alert(1) //加上闭合
一般常用的事件格式:
<img src="" onerror="alert(/xss/)"/>
<iframe src="" onload="alert(1)"></iframe>

查看源码:

本文详细介绍了XSS跨站脚本漏洞的绕过方法,从基本的攻击方式到如何应对各种过滤策略,包括使用事件触发、字符变形、大小写混淆等手段,揭示了防御XSS攻击的弱点,并提出改进防御措施的建议。
最低0.47元/天 解锁文章
308

被折叠的 条评论
为什么被折叠?



