利用html编码进行xss攻击

脆弱性测试的时候,发现了一处输出没有做编码转换,但由于开启了magic_quote_gpc,导致提交的数据中,' "都被转义,最后导致输出的地方不能执行恶意js。

如下:

提交的恶意数据为

1
',alert(123),'

因为被magic_quote_gpc转义,存储到后台的数据也是被转义的,导致输出的结果为

1
< img  src = 'xxx'  onclick = "edit('1','1.1.1.1','\',alert(123),\'')"  />
 

后来参考了乌云上的一篇文章:http://www.wooyun.org/bugs/wooyun-2010-019754

浏览器中html的解析优先于js的解析,所以将提交的数据中,单引号进行html编码,同时绕过了gpc的转义

1
%26#29,alert(123),%25#29,

输出结果为

1
< img  src = 'xxx'  onclick = "edit('1','1.1.1.1','&#29,alert(123),&#29')"  />

后来做了一下测试,在如下的代码中,第一个js弹窗出现的内容是&#9829,但是第二个弹窗则是♥。当点击图片时,因为标签内容先经过了一遍html解析,所以最后传递给js的内容为 edit('1','1.1.1.1','',alert(123),''),出现弹窗。

想了一下,估计是浏览器在执行的时候,遇到js标签,直接将内容交给js解析器了,但是第二个则是先经过了html解析img标签,然后点击图片的时候,提交给js的这是html解析之后的数据了。

1
2
3
4
5
6
< html >
< body >
< script >alert('&#9829')</ script >
< img  src = "123"  onclick = "alert('&#9829')"  />
</ body >
</ html >
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值