发布时间: 2010年5月19日

一 综述

百度空间的动感影集处,JS进行DOM操作时,直接输出用户输入的数据进行编码,造成XSS.

二 分析

在http://hi.baidu.com/p__z/album中,存在这么一段JS:

BdAjax.loadJS(‘/p__z/vphoto/list/data?callback=getVphotoList&asyn=1′);

加载了外部JS “/p__z/vphoto/list/data?callback=getVphotoList&asyn=1″ 打开/p__z/vphoto/list/data?callback=getVphotoList&asyn=1

getVphotoList([ { id:"xxx", name:"1", psrc:"http://hiphotos.baidu.com/p__z/abpic/item/xxxx.jpg", pnum:"1" } ])

getVphotoList函数:

function getVphotoList(list, total) {     vphotoList = list;     total = list.length; //list数组的长度,存在动感影集就大于零     G(“vphotoContainer”).style.display = “block”;     if (total > 0) {         return buildVphotoList(); //返回函数buildVphotoList()     }     G(“vphotoContainer”).innerHTML = “<div style=\”padding:10px;height:60px;margin-top:30px;\”>\u60F3\u8BA9\u4F60\u7684\u7167\u7247\u70AB\u52A8\u8D77\u6765\u5417\uFF1F\u53EA\u9700\u7B80\u5355\u4E09\u6B65\u64CD\u4F5C\uFF0C\u5373\u53EF\u642D\u914D\u51FA\u52A8\u611F\u7EB7\u5448\u7684\u9B45\u529B\u76F8\u518C\uFF01<a href=\”/p__z/vphoto/add/\” target=\”_blank\”>\u7ACB\u5373\u5236\u4F5C\u52A8\u611F\u5F71\u96C6</a></div>”; }

buildVphotoList函数:

function buildVphotoList(){ 更多 >