漏洞版本:百度空间 漏洞描述:百度空间的宠物插件对用户输入变量未经任何过滤便存储,并不经过滤输出,造成XSS. 1.在http://hi.baidu.com/p__z/modify/sppet中,用户可以输入留言管理,提交后,未过滤直接储存. 2.在http://hi.baidu.com/ui/scripts/pet/pet.js中7 V+ q2 {3 \. e7 E- e* H
$ K7 d! D9 w' Z- o
9 Y( @. u6 g7 N- l5 ? ?-
" s/ M, F. ? W3 ?) o; g( p
9 |4 j0 C: ^: a3 F! s/ o . j0 N& b7 [! \' ^" R8 E4 R
漏洞版本:百度空间
$ O0 s8 ]; U5 v3 W% Z8 g+ H5 V漏洞描述:百度空间的宠物插件对用户输入变量未经任何过滤便存储,并不经过滤输出,造成XSS.& ^- t" q& K9 ?- Q n. j( G: Q2 W
: v3 @& f; ]' Q) @. `- E
1.在http://hi.baidu.com/p__z/modify/sppet中,用户可以输入留言管理,提交后,未过滤直接储存." S6 f* J7 J' J& M
2.在http://hi.baidu.com/ui/scripts/pet/pet.js中
( l }, k* f2 w, b3 j, {
' ? ~( o, y7 A; ]$ \$ _将输出一段HTML:<p style="margin-top:5px"><strong>'+F[2]+"说:</strong>"+BdUtil.insertWBR(F[0], 4)+'</p>* z7 j+ x8 D+ C4 L; C) F8 _
其中BdUtil.insertWBR为
3 S- Q/ u7 |' Z. a) Rfunction(text, step) {0 t/ E8 U- k7 K, ?
var textarea = textAreaCache || getContainer();
: D+ F$ |: K! U- Z, z, \& ^0 y if (!textarea) {: A$ A5 X. p0 Z: b
return text;+ W u) D' {) p
}, T6 V. w4 {( g) p# ]0 @1 l( l( U
textarea.innerHTML = text.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");* Y/ E5 V. ?! z; F: p
var string = textarea.value;
( f3 f* @8 x( C$ R! v var step = step || 5, reg = new RegExp("(\\S{" + step + "})", "gi");
: p1 p, b! d' ^ var result = string.replace(/(<[^>]+>)/gi, "$1<wbr/>").replace(/(>|^)([^<]+)(<|$)/gi, function (a, b, c, d) {if (c.length < step) {return a;}return b + c.replace(reg, "$1<wbr/>") + d;}).replace(/&([^;]*)(<wbr\/?>)([^;]*);/g, "&$1$3;");" _4 A4 v8 T2 f8 D3 _* k
return result;
3 B, H! `7 m3 u3 M) g; {! Y}' ]! s% Z( Y4 {$ U
在首页中,textAreaCache 和 getContainer()均不存在,故!textarea为true,未经过滤直接return text.造成XSS.<* 参考
- q, t4 \5 l7 x; k; d, ^http://80vul.com/sobb/sobb-04.txt
: ^1 R% E5 O5 ^8 q. z*>
( n$ k7 ^' \5 }, `3 D7 J6 [* Q测试方法 Sebug.net dis
6 j p% S" q% K2 D5 \本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!: W% Y# F! X" q/ g
1.宠物留言管理处输入:<img src=# onerror=alert(/sobb04/)>安全建议:等待官方补丁
9 B; k, ?3 g3 m; B. X
& w N6 ?8 c K6 |3 Q, j |