zoukankan      html  css  js  c++  java
  • Dedecms存在储存型跨站脚本漏洞

    0x00前言

    开始从小的漏洞开始练习,搬运项目地址:

    https://github.com/imsebao/Code-Audit

    0x01

    Dedecms是一款开源的PHP开源网站管理系统。 Dedecms会员功能carbuyaction.php中的address、des、email、postname参数存在存储型XSS漏 洞,攻击者可利用漏洞获得管理员cookie。 测试环境:DedeCMS-V5.7-UTF8-SP2 发布日期: 2017-03-15 官方最新版 漏洞利用条件:DedeCMS 开启shop模块

    漏洞分析

    漏洞触发点在 /plus/carbuyaction.php 文件 address 、 des 、 email 、 postname 参数过滤不严 导致xss漏洞触发。
    漏洞文件代码在 carbuyaction.php 第 111 行

    $address = cn_substrR(trim($address),200);
    $des = cn_substrR($des,100);
    $postname = cn_substrR(trim($postname),15);
    $tel= preg_replace("#[^-0-9,\/\| ]#", "", $tel);
    $zip= preg_replace("#[^0-9]#", "", $zip);
    $email= cn_substrR($email,255);
    

    这里 $postname 参数最然做了长度限制,但是我们开始可以利用最短xss payload 触发xss漏洞。 继续跟踪cn_substrR函数,在

    /include/helpers/string.helper.php 第24行if ( ! function_exists('cn_substrR'))
    {
    function cn_substrR($str, $slen, $startdd=0)
    {
    $str = cn_substr(stripslashes($str), $slen, $startdd);
    return addslashes($str);
    }
    

    这里只用 stripslashes 和 addslashes 函数进行了过滤,但是没有过滤xss攻击函数,导致漏洞触 发 漏洞

    漏洞利用

    前台用户登录下单,在街道地址填写xss跨站代码。

    <svg/onload=alert(0)>
    

    总结
    也算是一种思路,不过之前看的几个cms,不仅仅使用了这个消毒函数,而且还多我们的输入做了很严格的正则过滤,还有实体编码。
    总的来说,我们审计的时候看到这种过滤函数倒也没必要绝望,绕过的方法太多了。
    比如:sql注入仅仅使用了这个函数过滤,却没有使用inval()来对数字限定,我们可以不使用'闭合就可以绕过了。再比如宽字节注入也可以。
    xss的话就像上面的我们可以使用xss函数。

  • 相关阅读:
    基于VLC的视频播放器
    IOS开发之新浪微博OAuth2
    Android之官方导航栏ActionBar
    IOS中键盘隐藏几种方式
    在Android中使用Android Ksoap2调用WebService
    Android之属性动画(二)
    IOS 内存管理
    利用scp 远程上传下载文件/文件夹和ssh远程执行命令
    Centos 检查磁盘读写性能
    JPA, JNDI, OSGi
  • 原文地址:https://www.cnblogs.com/wangtanzhi/p/12419590.html
Copyright © 2011-2022 走看看