【代码审计】大米CMS_V5.5.3 后台多处存储型XSS漏洞分析

 

0x00 环境准备

大米CMS官网:http://www.damicms.com

网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15)

程序源码下载:http://www.damicms.com/downes/dami.rar

测试网站首页:

【代码审计】大米CMS_V5.5.3 后台多处存储型XSS漏洞分析

0x01 代码分析

1、漏洞文件位置:/Admin/Lib/Action/keyAction.class.php 第34-59行中:

2、  public function add()

3、     {

4、         $this->display('add');

5、     }

6、

7、  public function doadd()

8、     {

9、      $key = M('key');

10、     $key->create();

11、     if($key->add())

12、     {

13、         $this->assign("jumpUrl",U('Key/index'));

14、         $this->success('操作成功!');

15、     }

16、     $this->error('操作失败!');

17、    }

在这段函数中,当添加内容的时候首页使用M函数用于实例化,然后进行增加,未经任何处理将内容直接写入数据库,输入输出都没有做任何处理,导致程序在实现上存在存储型XSS跨站脚本漏洞,允许攻击者可在页面中插入恶意js代码,获得用户cookie等信息,导致用户被劫持。

2、全局搜索这个函数,发现多个文件存在相同的代码描述,均存在存储型XSS跨站脚本漏洞,具体在漏洞利用环节进行展示:

0x02 漏洞利用

1、登录后台,网站后台--文章内链--添加关键字—填写XSS Payload:

123<script>alert(`xss`)</script>

【代码审计】大米CMS_V5.5.3 后台多处存储型XSS漏洞分析

2、网站后台--幻灯管理--添加幻灯--XSS payload:

123<script>alert(`xss`)</script>

【代码审计】大米CMS_V5.5.3 后台多处存储型XSS漏洞分析

3、网站后台--单页标签--添加标签--XSS Paylod:

123<script>alert(`xss`)</script>

【代码审计】大米CMS_V5.5.3 后台多处存储型XSS漏洞分析

4、网站后台--广告管理--添加广告--XSS Paylod:

123<script>alert(`xss`)</script>

【代码审计】大米CMS_V5.5.3 后台多处存储型XSS漏洞分析

0x03 修复建议

1、对参数做html转义过滤(要过滤的字符包括:单引号、双引号、大于号、小于号,&符号),防止脚本执行。在变量输出时进行HTML ENCODE处理。 PHP应用:可以使用htmlspecialchars对用户参数进行编码 。

安全代码示例:

  1. <?php
  2. $aa=$_GET['dd'];
  3. echo htmlspecialchars($aa)."123";
  4. ?>

最后

欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。 

【代码审计】大米CMS_V5.5.3 后台多处存储型XSS漏洞分析

上一篇:logback的使用和logback.xml详解,在Spring项目中使用log打印日志


下一篇:WinScp获取一个文件