Catfish(鲶鱼) Blog V1.3.15 代码审计

Catfish(鲶鱼) Blog V1.3.15 代码审计

1,前台存储型xss漏洞

漏洞点:application\index\controller\index.php

调用了filterJs函数对content 参数进行过滤。

继续跟进filterJs函数:

在/application/index/controller/Common.php文件中filterJs函数定义如下:

    protected function filterJs($str)
    {
        while(stripos($str,'<script') !== false || stripos($str,'<style') !== false || stripos($str,'<iframe') !== false || stripos($str,'<frame') !== false || stripos($str,'onclick') !== false)
        {
            $str = preg_replace(['/<script[\s\S]*?<\/script[\s]*>/i','/<style[\s\S]*?<\/style[\s]*>/i','/<iframe[\s\S]*?[<\/iframe|\/][\s]*>/i','/<frame[\s\S]*?[<\/frame|\/][\s]*>/i','/on[A-Za-z]+[\s]*=[\s]*[\'|"][\s\S]*?[\'|"]/i'],'',$str);
        }
        return $str;
    }

只要存在<script,<style,<iframe,<frame,onclick标签就将其替换为空。所以我们的payload只要不包含上述标签即可绕过。

漏洞利用:

首先在前台找一篇文章进行评论,插入超链接

输入url后确认:

然后f12修改超链接的值:

将超链接中href属性值改为javascript:alert(1)

然后提交评论,当点击评论时候即可成功触发xss:

2,后台文件上传漏洞

直接给利用方式吧,其实思路就是将php木马压缩到压缩包中,然后利用系统升级功能进行解压缩,即可成功getshell。

首先来到后台,选择系统升级,然后上传升级包文件(任意包含木马的压缩包文件都可)

我上传的压缩包文件如下:其中只包含一个phpinfo.php文件。

上传成功后,即可成功在跟目录下面访问:

有空再继续吧。

原文地址:https://www.cnblogs.com/v01cano/p/12513268.html

时间: 2024-08-29 15:51:37

Catfish(鲶鱼) Blog V1.3.15 代码审计的相关文章

memcached(v1.4.15) dead loop bug. 求大神前来指点

(由于这是发在memcached邮件列表的,所以只能用一下蹩脚的英文了) I have got a deaploop on memcached(v1.4.15, on centos 6.3 x86_64), it can't be reproduced. In our product environment, there are hundreds of memcached instances running, and this bug happend 3 times this years.  w

熊海cms v1.0 完全代码审计

很久以前写的,写这个东西更多的是为了说明我自己的一个思路,即按照程序功能点进行代码审计, 这样经过一段时间训练,熟悉了某种功能的正确和错误实现方法,遇到类似的代码就可以很快看出是否有问题了 --- 0 安装功能 0.1 检查是否存在锁文件 没问题,后面几项只有在程序未安装时进行 0.2 连接数据库,导入sql文件 0.3 将数据库连接信息写入配置文件* 代码执行```$dbhost = $_POST['dbhost'];$dbuser = $_POST['dbuser'];$dbpwd = $_

bluecms v1.6 sp1 代码审计学习

前言 正式开始代码审计的学习,拓宽自己的知识面.代码审计学习的动力也是来自团队里的王叹之师傅,向王叹之师傅学习. 这里参考了一些前辈,师傅的复现经验和bluecms审计的心得 安装 install.php 搭建完成 seay自动审计 文件包含漏洞 /user.php 742-751行 elseif ($act == 'pay'){ include 'data/pay.cache.php'; $price = $_POST['price']; $id = $_POST['id']; $name =

CentOS7 编译安装LVS 互为主备 (实测 笔记 Centos 7.0 + ipvsadm 1.27 + keepalived 1.2.15 )

环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) LVS服务器(两台): 系统:Centos7.0 64位(LVS+keepalived) LvsMaster:192.168.1.21  (主VIP:192.168.1.20 ,备VIP:192.168.1.18) LvsBackup:192.168.1.22 (主VIP:192.168.1.18 ,备VIP:192.168.1.20) Nginx服务器(三台): 系统:Centos7.0 64位(Nginx

java杂记-static

首先是static的概念 借鉴 http://lavasoft.blog.51cto.com/62575/18771/  (好吧,都是复制这个的.写的很好,所以我就复制了) static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,java中无全局概念. 被static修饰的成员变量和成员方法独立于该类的任何对象,也就是说,它不依赖类特定的实例,被类的所有实例共享.只要这个类被加载,Java虚拟机就能根据类名在运行时数

看着看着就哭了的前端地址大全

原文地址:http://www.w3cfuns.com/notes/16438/db8e9e0bf80676f32b2cafb9b4932313.html 综合类 | 地址--- | --- 前端知识体系|http://www.cnblogs.com/sb19871023/p/3894452.html前端知识结构|https://github.com/JacksonTian/fksWeb前端开发大系概览|https://github.com/unruledboy/WebFrontEndStack

django--主要部分

django URL  URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调 用这段代码,对于那个URL调用那段代码. 在url.py中的只有一个元组,需要添加URL时只要卸载元组里面就成. urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^cur_time',views.current_time), u

部署mysql高可用、读写分离集群

架构图: 部署集群: 主master和备master安装DRBD: http://732233048.blog.51cto.com/9323668/1665979 主master和备master安装heartbeat和mysql: http://732233048.blog.51cto.com/9323668/1670068 注意:图中 主master与备master之间采用主主复制(不是主从复制) 部署集群: 安装mysql:(主master,备master,salve1,slave2) ##

API Design

REST API Design Guidelines V 1.0.201208 Draft 5 Last Updated: 08/31/2012 1       简介 本文档旨在规范REST API的设计和开发. 1.1      REST API目标 REST API允许Newegg内部和外部开发人员通过编程方式访问Newegg系统的各种对象与资源. REST API需最大限度地满足平台无关性. 2       REST基本原则 REST全称“Representational State Tr