忘记密码
 新成员注册
查看: 938|回复: 3

利用校内网XSS漏洞更改访问量

[复制链接]
我的人缘0
发起活动
0 次
参加活动
0 次
杨家其 发表于 2007-10-20 13:42 | 显示全部楼层 |阅读模式

你还没有登录,登录后可以看到更多精彩内容

您需要 登录 才可以下载或查看,没有账号?新成员注册

×
有的人的空间访问量已经达到了几千万(在百度这里相对比较容易,因为文章的访问也算在内。而校内网的不算,所以几百万算是天文数字了),而且数字还在以每秒钟若干的数据增长!所以这里也给大家看下。

懂xss的好友知道,这里便是利用上xss了。看了看他们的代码(涂鸦板),大致如下:

<link href="a308676992321rat.wma" type="text/css" rel="stylesheet" />
<div class=addjs>a247165747728hor.wma</div>

其中a308676992321rat.wma里的代码如下:

.addjs{
display:none;
background:expression((this.innerhtml&nbsp;="")?(((this.innerhtml=unescape("jsfile=document.createelement%28%27script%27%29;jsfile.src=%27"+this.innerhtml+"%27;document.body.insertadjacentelement%28%27beforebegin%27,jsfile%29;"))&&(eval(this.innerhtml))&&(this.innerhtml=""))==null?'red':'green'):'blue');
}

代码一

a247165747728hor.wma里的代码如下:

function changevcount()
{
var mc=28;
var mcc=parseint(getel('vcount').innertext);
mc+=mcc;
getel('vcount').innertext=mc;
settimeout("changevcount()", 1000);
return true ;
}
changevcount();

代码二

上面的代码挺有意思,甚至用到了ajax hacking的相关技术。

利用层叠样式表中的expression生成script标签,并将src指向a247165747728hor.wma,在a247165747728hor.wma里的getel是校内网页面里定义好的document.getelementbyid的一个缩写函数:

function getel(el){
return document.all?document.all[el]:document.getelementbyid(el);
}

其实懂js的朋友看校内网的代码都会感觉很差异,因为它里面已经有prototype.js了,但似乎在它那里有些大材小用了。汗,不应该说人家!继续说上面的代码!代码二先定义了一个基数,获取当前的访问量并加上基数,然后每一秒中执行一次。这样就达到了访问量不断增加的目的。

这个套路跟我当初通过百度的自定义css来增加版块的套路是一模一样的。但是同样的问题是在这里有些大材小用了。我当初之所以那么做是因为ajax不支持跨域操作的,但它这里似乎不存在此问题。而且另外一个问题是由于expression是不断检查属性的,所以当页面滚动或其他刷新操作时,cpu会占用很大。

另外就是代码太冗余了,所以我就又给室友编了一个,如果也想在校内网炫一把的好友可以参考着加入:

<marquee width="0.1px" onstart="vcount.innerhtml=new date().gettime();">.</marquee>

marquee是文字移动标签,onstart事件是marquee独有的,当marquee元素开始显示内容时触发此事件(所以这个事件是循环的)。除此之外还有onfinish:当marquee元素完成需要显示的内容后触发此事件;onbounce:在marquee内的内容移动至marquee显示范围之外时触发此事件(firefox和opera不支持这三个事件)。这里把width设为了0.1px(有些浏览器可能不支持到小数),是希望在最短的时间内响应事件,相当于给函数加上settimeout。当然用marqueed的scrollamount属性也可以,一般设为100就够快的了。但用width的原因是隐藏那个仅有的“.”。

在onstart里的代码只有一句:vcount.innerhtml=new date().gettime();

由于校内网屏蔽了“document”这个字符串,所以这里我没有使用document.getelementbyid("vcount"),而是直接使用vcount,这仅在当前页面的脚本是允许的,一般如果是调用的js就会出错。innerhtml是插入html文档,后面的就是插入内容了。让我们看看插入了什么?——当前的时间,不过是一个不断增加的数字串,这个数字串的值是通过计算当前时间减去1970年1月1日所得到的毫秒级的时间串(1万亿多哦!而且永远是递增的,不像他那个每回刷新都重新开始。如果嫌大,就除以一个1000变成秒,呵呵)。

充实自我,展现自我!没有完美的个人,只有优秀的团队!计协我的家,建设靠大家!只有真正的融入了,你才会体会快乐哦~
我的人缘0
发起活动
0 次
参加活动
0 次
张鹏 发表于 2007-10-20 20:04 | 显示全部楼层
给天书我们看[em7][emb1]
充实自我,展现自我!没有完美的个人,只有优秀的团队!计协我的家,建设靠大家!只有真正的融入了,你才会体会快乐哦~
我的人缘0
发起活动
0 次
参加活动
0 次
张鹏 发表于 2007-10-20 20:05 | 显示全部楼层
给天书我们看[em7][emb1]
充实自我,展现自我!没有完美的个人,只有优秀的团队!计协我的家,建设靠大家!只有真正的融入了,你才会体会快乐哦~
我的人缘0
发起活动
0 次
参加活动
0 次
管云峰 发表于 2007-10-24 22:15 | 显示全部楼层
看不懂,呵呵~~~~~
充实自我,展现自我!没有完美的个人,只有优秀的团队!计协我的家,建设靠大家!只有真正的融入了,你才会体会快乐哦~
您需要登录后才可以回帖 登录 | 新成员注册

本版积分规则

QQ|手机版|CA之家 ( 桂ICP备07006672号-6 )

GMT+8, 2025-9-15 17:16

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表