在 install/index.php 的第44行 expString::sanitize($_REQUEST); 跟进sanitize函数 public static function sanitize(&$data) { // return $data; if (is_array($data)) { $saved_params = array(); if (!empty($data['controller']) && $data['controller'] == 'snippe…
帝国CMS(EmpireCMS) v7.5配置文件写入漏洞分析 一.漏洞描述 该漏洞是由于安装程序时没有对用户的输入做严格过滤,导致用户输入的可控参数被写入配置文件,造成任意代码执行漏洞. 二.漏洞复现 1.漏洞出现位置如下图,phome_表前缀没有被严格过滤导致攻击者构造恶意的代码 2.定位漏洞出现的位置,发现在/e/install/index.php,下图可以看到表名前缀phome_,将获取表名前缀交给了mydbtbpre参数. 3.全文搜索,$mydbtbpre,然后跟进参数传递,发现将用…
PHP正则配合写配置文件导致Getshell,偶然间看到的一个题目, p 牛的小密圈的一个问题. 分析一下,漏洞代码: index.php <?php $str=addslashes($_GET['option']); $file=file_get_contents('option.php'); $file=preg_replace('|\$option=\'.*\';|', "\$option='$str';", $file); echo $file; file_put_con…
帝国CMS(EmpireCMS) v7.5后台getshell分析(CVE-2018-18086) 一.漏洞描述 EmpireCMS 7.5版本及之前版本在后台备份数据库时,未对数据库表名做验证,通过修改数据库表名可以实现任意代码执行.EmpireCMS7.5版本中的/e/class/moddofun.php文件的”LoadInMod”函数存在安全漏洞,攻击者可利用该漏洞上传任意文件. 二.影响版本 EmpireCMS<=7.5 三.环境搭建 1.官方下载EmpireCMS V7.5 下载地址:…
帝国CMS(EmpireCMS) v7.5 前台XSS漏洞分析 一.漏洞描述 该漏洞是由于javascript获取url的参数,没有经过任何过滤,直接当作a标签和img标签的href属性和src属性输出. 二.漏洞复现 1.需要开启会员空间功能(默认关闭),登录后台开启会员空间功能. 2.漏洞出现的位置在/e/ViewImg/index.html,浏览代码,发现如下代码存在漏洞 分析代码:通过Request函数获取地址栏的url参数,并作为img和a标签的src属性和href属性,然后经过doc…
帝国CMS(EmpireCMS) v7.5 后台XSS漏洞分析 一.漏洞描述 该漏洞是由于代码只使用htmlspecialchars进行实体编码过滤,而且参数用的是ENT_QUOTES(编码双引号和单引号),还有addslashes函数处理,但是没有对任何恶意关键字进行过滤,从而导致攻击者使用别的关键字进行攻击. 二.漏洞复现 1.漏洞出现的页面在/e/admin/openpage/AdminPage.php,浏览漏洞页面代码,发现使用hRepPostStr函数对leftfile.title.m…
Springboot 加载配置文件源码分析 本文的分析是基于springboot 2.2.0.RELEASE. 本篇文章的相关源码位置:https://github.com/wbo112/blogdemo/tree/main/springbootdemo/springboot-profiles springboot加载配置文件如application.yml是通过org.springframework.boot.context.config.ConfigFileApplicationListen…
NLog配置文件: <target xsi:type="Database" name="database" connectionString="Data Source=10.1.11.139;Initial Catalog=EnterpriseOPDB;User Id=sa;Password=Asdf1234"> <commandText> insert into [EnterpriseTest].[dbo].MyLog…
之前写了一篇关于青云客cms的文章,发在了t00ls,就不copy过来了. 给个链接,好记录一下. https://www.t00ls.net/thread-43093-1-1.html…
下载链接 https://share.weiyun.com/b060b59eaa564d729a9347a580b7e4f2 Refer头注入 全局过滤函数如下 function _RunMagicQuotes(&$svar) { //PHP5.4已经将此函数移除 if(@!get_magic_quotes_gpc()) { if(is_array($svar)) { foreach($svar as $_k => $_v) $svar[$_k] = _RunMagicQuotes($_v)…
  0x00 环境准备 JTBC(CMS)官网:http://www.jtbc.cn 网站源码版本:JTBC_CMS_PHP(3.0) 企业版 程序源码下载:http://download.jtbc.cn/php/3.0/PHP_JTBC_CMS.C.zip 测试网站首页: 0x01 代码分析 1.漏洞文件位置:/console/file/common/incfiles/manage.inc.php 第304-339行: public static function moduleActionDe…
目录 前言 1. Spring Cloud 什么时候加载配置文件 2. 准备 Environment 配置环境 2.1 配置 Environment 环境 SpringApplication.prepareEnvironment() 2.2 使用事件主控器创建并发布事件 SimpleApplicationEventMulticaster.multicastEvent() 2.3 BootstrapApplicationListener 处理事件,自动导入一些配置类 3. 刷新应用上下文 3.1…
本文力求,分析清楚 tomcat 的 server.xml 文件,逐步完善更新 常用来,配置tomcat启动,端口号:配置编码等. apache-tomcat-9.0.10/conf/server.xml 文件如下: <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contri…
一.漏洞分析 漏洞触发点search.php 211-213行 跟进parseIf 函数 ./include/main.class.php 这里要注意 3118行的位置,可以看到未做任何处理的eval 二.触发条件 if(intval($searchtype)==5) if (strpos($content,'{if:')=== true) {if:(.*?)}(.*?){end if} if (strpos($strThen,$labelRule2)===false) if (strpos($…
0x00 环境准备 MIPCMS官网:https://www.mipcms.cn 网站源码版本:MIPCMS内容管理系统 V3.1.0(发布时间:2018-01-01) 程序源码下载:http://www.mipcms.cn/mipcms-3.1.0.zip 本地测试网站: 0x01 代码分析 1.漏洞文件位置/app/install/controller/Install.php  第13-23行:   public function index()     {  ​       if (is_…
i春秋作家:Qclover 原文来自:EmpireCMS_V7.5的一次审计 0x01 概述 最近在做审计和WAF规则的编写,在CNVD和CNNVD等漏洞平台寻找各类CMS漏洞研究编写规则时顺便抽空对国内一些小的CMS进行了审计,另外也由于代码审计接触时间不是太常,最近一段时间也跟着公司审计项目再次重新的学习代码审计知识,对于入行已久的各位审计大佬来说,自己算是新手了.对于审计也正在不断的学习和积累中.于是抽空在CNVD上选取了一个国内小型CMS进行审计,此次审计的CMS为EmpireCMS_V…
phithon师父在小蜜圈里放了一个经典的配置文件写入问题漏洞. <?phpif(!isset($_GET['option'])) die();$str = addslashes($_GET['option']);$file = file_get_contents('./config.php');$file = preg_replace('|\$option=\'.*\';|', "\$option='$str';", $file);file_put_contents('./co…
使用代码修改配置文件的方法: 1.打开配置文件写入的权限 2.先按节点名称长到要修改的节点,然后删除,紧接着将有新值的节点添加回去 3.关闭配置文件写入的权限 修改Appsetting节点的值,修改其它节点的方法也差不多,也是找到要修改的节点删除掉然后新新值的节点加上 public bool UpdateAppSettings(string key, string value) { bool reuslt = false; try { Configuration config = Configu…
Properties 配置文件写入主要通过 Properties.setProperty 和 Properties.store 两个方法,此文以一个简单的 properties 文件写入源码做示例. 小二上码...若有不足之处,敬请大神指正,不胜感激! Properties 文件写入源码如下所示: /** * @function write data to text file by Properties * * @author Aaron.ffp * @version V1.0.0: autoU…
一 安装tomcat 1.系统必须已安装配置JDK 安装说明参考地址:http://www.cnblogs.com/Yuanbangchen/p/5945491.html   2.将apache-tomcat-8.0.29.tar.gz文件上传到/usr/local中执行以下操作 将上传的Tomcat8.0解压,解压之后重命名为tomcat. tar -zxv -f apache-tomcat-8.0.29.tar.gz mv apache-tomcat-8.0.29 tomcat   3.启动…
思维还有点乱,撸代码到深夜,先上代码吧.(我是跟着武sir的思路的) 流程图: 代码(有注释): #!/usr/bin/env python # -*- coding:utf-8 -*- import json,os def login(): flag = False while True: username = input("Please enter a user name:") l = open('name_lock.txt','r') for lline in l.readlin…
1.configparser的作用 mysql等很多文件的配置如下: [DEFAULT]ServerAliveInterval = 45Compression = yesCompressionLevel = 9ForwardX11 = yes [bitbucket.org]User = hg [topsecret.server.com]Port = 50022ForwardX11 = no 如何用python生成和更改类似的配置文件,需要使用configparser模块,是python3的内置模…
先学习之前未完成的冒泡算法 li = [13,22,6,99,11] 从小到大 从第一个数字比较把大的往后移位 for m in range(4): num1 = li[m] num2 = li[m+1] if num1 > num2: temp = li[m] li[m] = num2 li[m+1] = temp print li 循环四次就把最大数放到列表的最后 for m in range(3): num1 = li[m] num2 = li[m+1] if num1 > num2:…
在自动化测试过程中,为了提高脚本的可读性和降低维护成本,将一些通用信息写入配置文件,将重复使用的方法写成公共模块进行封装,使用时候直接调用即可. 这篇博客,介绍下python中利用configparser模块读写配置文件的方法,仅供参考... 一.读取文件 configparser模块支持读取.conf和.ini等类型的文件,那么首先在文件夹新建一个.ini文件,写入一些信息,如下图: 示例代码如下: # coding=utf-8 import configparser import os os…
创建一个configparser格式的文档: import configparser config = configparser.ConfigParser()config["DEFAULT"] = {'ServerAliveInterval': '45', 'Compression': 'yes', 'CompressionLevel': '9'} config['bitbucket.org'] = {}config['bitbucket.org']['User'] = 'hg'con…
目录 1. 简介 2. 配置文件解析流程分析 2.1 调用 2.2 解析的目的 2.3 XML 解析流程 2.3.1 build(parser) 2.3.2 new XMLConfigBuilder(...); 2.3.3 new XPathParser(...) 2.3.4 new Configuration() 2.3.5 parser.parse() 2.3.6 build(configuration) 一起学 mybatis @ 1. 简介 在之前的文章<mybatis 初步使用(IDE…
0x00 环境介绍 CMS名称: covercms 运行环境: php 5.6.27-nts + apache + mysql 系统版本: 1.16 漏洞等级:高危 漏洞简介: 后台awnotas.inc.php文件,在包含文件时候未过滤变量直接包含,可利用变量覆盖的方式达到任意文件包含以getshell. 0x01 漏洞详情 文件位置:  /admina/awnotas.inc.php ,位置21行,代码缩减了一部分便于我们分析 $chids = array(); foreach($chann…
apache配置文件详解与优化 一.总结 一句话总结:结合apache配置文件中的英文说明和配置详解一起看 1.apache模块配置用的什么标签? IfModule 例如: <IfModule dir_module> DirectoryIndex index.html 索引文件 首页文件(首页文件可以有多个,可以用空格匹配多个,) </IfModule> 2.apache的目录配置用什么标签? Directory 例如: <Directory /> 根目录(以下是对根目…
比如有一个工程,一些变量有可能需要不时的修改,这时候可以通过从配置文件中读取该数值,需要修改时只需要修改配位文件即可. 比如有一个这样的变量m_nTest; 我么可以写两个函数ReadConfig(),SzveConfig(),其配置文件为Config.ini void CXXX::ReadConfig() { CString strConfigFile; strConfigFile = GetAbsolutePath(_T("config.ini")); m_nTest = GetP…
在自动化测试过程中,为了提高脚本的可读性和降低维护成本,将一些通用信息写入配置文件,将重复使用的方法写成公共模块进行封装,使用时候直接调用即可. 这篇博客,介绍下python中利用configparser模块读写配置文件的方法,仅供参考... 一.读取文件 configparser模块支持读取.conf和.ini等类型的文件,那么首先在文件夹新建一个.ini文件,写入一些信息,如下图: 示例代码如下: 1 # coding=utf-8 2 import configparser 3 import…