7500刀的accounts.google.com域下XSS分析(wooyun)
来源:互联网 发布:约翰卡马克 知乎 编辑:程序博客网 时间:2024/05/16 18:52
GOOGLE现在XSS已经涨到3100~7500了,然后某著名日本猥琐流就发了一个accounts.google.com域下的XSS,在微博上看到@xisigr在新浪微博上发了链接,就去看了下,虽然看不懂日文,但还是分析了下。
原文链接:
http://masatokinugawa.l0.cm/2013/06/accounts.google.com-utf-32-xss.html
具体分析如下:
原本的缺陷地址为:https://accounts.google.com/NewAccount?oe=utf-32&Email=%E2%88%80%E3%B8%80%E3%B0%80script%E3%B8%80alert%281%29%E3%B0%80/script%E3%B8%80
根据我自己的理解,其中,oe参数应该是用来指定字段的输出编码(output encoding), email为输入,经过oe所指定的编码进行转换后,输出到页面的 <input type="text" value="[Email]" /> 里。
更简单的说就是, 如果我们Email输入 AAAAAA, oe=gbk 的情况下, AAAAAA --> 转换为 gbk 编码 --> GBK编码下的[AAAAAAA] ,再输出到页面上。
于是,于是,漏洞发现者就猥琐了一把。。。
按照作者的思路,
1.首先, 将输出编码设置为 UTF-32。
UTF-32中,每4个字节表示一个字符, 比如
双引号 --> [0x00][0x00][0x00][0x22]
<括号 --> [0x00][0x00][0x00][0x3C]
>括号 --> [0x00][0x00][0x00][0x3E]
那么更好玩的是,在UTF-32中,这样也是有效字符:
[0x00][0x00][0x22][0x00] --> ∀
[0x00][0x00][0x3C][0x00] --> 㰀
[0x00][0x00][0x3E][0x00] --> 㸀
因而如果我们用上面这3个“怪怪”的字符来代替双引号和尖括号对的话,会出现什么情况呢?
变为
2. 接着:∀㸀㰀script㸀alert(1)㰀/script㸀 ,在被转换为UTF-32编码后,输出到UTF-8编码的页面中,会输出为以下形式:
3. 而在IE10以下的版本(未测试IE9,原文中截图为IE9,应该可以执行),HTML中的 [0x00] 会被无视掉,从而导致上面的代码被当作普通HTML执行。
空字节[0x00]不会影响上述代码的执行,具体见demo: http://xsst.sinaapp.com/nullbyte.htm
4. 为了更直观的看到这个漏洞,写了一个PHP页面,大家自行实验。
原文链接:
http://masatokinugawa.l0.cm/2013/06/accounts.google.com-utf-32-xss.html
具体分析如下:
原本的缺陷地址为:https://accounts.google.com/NewAccount?oe=utf-32&Email=%E2%88%80%E3%B8%80%E3%B0%80script%E3%B8%80alert%281%29%E3%B0%80/script%E3%B8%80
根据我自己的理解,其中,oe参数应该是用来指定字段的输出编码(output encoding), email为输入,经过oe所指定的编码进行转换后,输出到页面的 <input type="text" value="[Email]" /> 里。
更简单的说就是, 如果我们Email输入 AAAAAA, oe=gbk 的情况下, AAAAAA --> 转换为 gbk 编码 --> GBK编码下的[AAAAAAA] ,再输出到页面上。
于是,于是,漏洞发现者就猥琐了一把。。。
按照作者的思路,
1.首先, 将输出编码设置为 UTF-32。
UTF-32中,每4个字节表示一个字符, 比如
双引号 --> [0x00][0x00][0x00][0x22]
<括号 --> [0x00][0x00][0x00][0x3C]
>括号 --> [0x00][0x00][0x00][0x3E]
那么更好玩的是,在UTF-32中,这样也是有效字符:
[0x00][0x00][0x22][0x00] --> ∀
[0x00][0x00][0x3C][0x00] --> 㰀
[0x00][0x00][0x3E][0x00] --> 㸀
因而如果我们用上面这3个“怪怪”的字符来代替双引号和尖括号对的话,会出现什么情况呢?
"<script>alert(1)</script>
变为
∀㸀㰀script㸀alert(1)㰀/script㸀
2. 接着:∀㸀㰀script㸀alert(1)㰀/script㸀 ,在被转换为UTF-32编码后,输出到UTF-8编码的页面中,会输出为以下形式:
[0x00][0x00]"[0x00][0x00][0x00]<[0x00]script[0x00][0x00]>[0x00]alert(1)[0x00][0x00]<[0x00]/script[0x00][0x00]>[0x00]
3. 而在IE10以下的版本(未测试IE9,原文中截图为IE9,应该可以执行),HTML中的 [0x00] 会被无视掉,从而导致上面的代码被当作普通HTML执行。
空字节[0x00]不会影响上述代码的执行,具体见demo: http://xsst.sinaapp.com/nullbyte.htm
4. 为了更直观的看到这个漏洞,写了一个PHP页面,大家自行实验。
http://xsst.sinaapp.com/utf-32-1.php?charset=utf-32&v=%E2%88%80%E3%B8%80%E3%B0%80script%E3%B8%80alert(1)%E3%B0%80/script%E3%B8%80
- 7500刀的accounts.google.com域下XSS分析(wooyun)
- accounts.google.com 使用了无效的安全证书
- Google的XSS游戏
- Ratproxy -- Google 的 XSS 检测工具
- XSS的原理分析
- DVWA下的XSS
- JODK2 NO [ALERT] Please log in via your web browser: https://support.google.com/mail/accounts/answer
- google.com 首页代码分析
- Openfiler的Accounts配置
- 有意思的游戏:Google XSS Game
- Google Best reports series - Account Recovery XSS 过程分析
- GBK字符集下的XSS
- 利用docker部署wooyun的web应用
- .Net accounts命令的用法
- (算法分析Week16)Accounts Merge[Medium]
- xss简单的利用与分析
- XSS的原理分析与解剖
- XSS的原理分析与解剖
- 2013.9.10 工作总结
- 《越狱》观后感
- 技术猜想-CakePHP/NginX/Corona/Erlang 用户注册登录
- Linux学习之用vim作为文本编辑器编程的一些常用设置
- JAVA操作properties文件
- 7500刀的accounts.google.com域下XSS分析(wooyun)
- sqlserver日期类型转换
- Java提高:推荐使用枚举定义常量
- myeclipse6.5中使用Alt+/不自动提示的修改
- 状态压缩dp--poj2686
- Asp.net中读取当前页面
- equals和==的区别?
- cakephp会员注册及登录验证实例
- Ubuntu 12.04 64位编译android 4.1.1_r3