DOM Based XSS

DOM型XSS

DOM Based XSS从效果上来说也是反射型XSS,单独划分出来,是因为它的形成原因比较特别。

通过修改页面的DOM节点形成的XSS称之为DOM Based XSS,看如下代码:

<script>
    function test(){
         var str = document.getElementById("test").value;
         document.getElementById("t").innerHTML="<a href='"+str+"'>testLink<>";
    }
</script>
 
<div id="t"></div>
<input type="text" id="text" value=""/>
<input type="button" id="s" value="write" οnclick="test()"/>

在这里,write按钮的onclick事件调用了test()函数。而在test函数中,修改了页面的DOM节点,通过innerHTML把一段用户数据当做HTML写入到页面中,这就造成了DOM based XSS。

构造数据如下:

’ οnclick=alert(/XSS/) //

输入后,页面代码就变成了:

<a href='' οnclick=alert(/XSS/) //' >testLink</a>

第一个单引号闭合掉原本的单引号,然后插入一个onclick事件,最后用//注释掉第二个单引号。生成新的链接,脚本就被执行。

相当于

<a href='' οnclick=alert(/XSS/)>testLink</a>

另外,除了构造新事件,还可以闭合掉<a>标签,并插入一个新的HTML标签。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值