xunrui-cms_任意代码写入_rce_0day
xunrui-cms <=4.6.2(官方最新版)闲来无事挖的
1.漏洞点在install.php
满足如下任意条件可进入安装程序
1.安装程序没有执行过2.开启了高级开发模式
在install.php中会将对应数据库配置写入文件
可以看到写入了这几个参数,这几个参数都是我们输入的
$data[‘db_host’]
$data[‘db_user’]
$data[‘db_pass’]
$data[‘db_name’]
$data[‘db_prefix’]
其中
$data[‘db_host’]$data[‘db_user’]$data[‘db_pass’]虽然没有过滤,但是会通过这三个参数尝试链接数据库,如果连不上会直接退出,所以是不能注入特殊字符串的$data[‘db_prefix’]有更严格的过滤,无法注入字符串
那么我们的目光就来到了,唯一的可控点
$data[‘db_name’]
但是这个可控点会首先检测输入的数据是否存在这个数据库,如果不存在尝试创建,如果我们输入的是恶意字符串,数据库是不会创建成功的,在这里就会return,无法到达下面的逻辑,也就谈不上注入 ...
weblogic CVE-2020-14882&CVE-2020-14883分析
CVE-2020-14882&CVE-2020-148832020年的洞了,但是关于这两个漏洞的分析也没有很多,老洞新学,从我自己的角度来看这个漏洞,拒绝当文章搬运工,希望你能从中学到不一样的东西
不会搭建debug环境的同学请参考
https://cloud.tencent.com/developer/article/1608010
CVE-2020-14882权限绕过此处是一处权限绕过漏洞,其根本触发的核心逻辑用一句话概括:在经过权限校验之后又进行了一次url解码,导致URL编码绕过
0X01:权限校验权限校验的入口在weblogic.servlet.internal.WebAppServletContext#doSecuredExecute中
jar包叫com.oracle.weblogic.servlet.jar
在此处下断点,此处代码是在WebAppServletContext#doSecuredExecute方法中的,checkAccess方法中就判定了该次请求路由是否是有权限访问的
此处的checkAccess有两个重载,在调试的时候请把断点下到这个函数上 ...
CVE-2022-39135(Apache calcite XXE)分析
CVE-2022-39135(Apache calcite xxe)分析漏洞影响版本:<1.32.0的所有版本
0X01:Apache calciteApachecacite是一个动态数据库管理框架,它自身是包含一套符合行业标准的sql解析与验证器,既然支持解析sql语句,那么就有可能存在内建函数缺陷(例如mysql低版本的load_file函数可以写入任意文件,在高版本中便默认不支持)
0X02:起因这个CVE是因为Apache calcite中的EXISTSNODE、EXTRACTXML、XMLTRANSFORM、 EXTRACTVALUE函数支持解析xml,并且在解析xml时默认支持解析外部实体引用从而导致XXE
0X03:分析查阅官方文档,对其有如下解释
机翻了一下:
方言特定运算符永久链接
以下运算符不在SQL标准中,并且未在Calcite的默认运算符表中启用。只有当会话启用了额外的运算符表时,它们才可用于查询。
要启用运算符表,请设置fun connect字符串参数。
“C”(兼容性)列包含值:
“b”表示Google BigQuery(连接字符串中的“fun=B ...
Java关于内存马的那些事
0X01关于java内存马有关的知识网络上有不少的分析文章,但是个人在学习的过程中觉得分析的不够详尽细致,作为第一次研究的读者可能有部分疑惑没有被解决,正好最近也在学习这方面的知识,故有了此文章
0X02:Tomcat,Filter执行顺序类型相信大家在看到这篇文章之前已经看过其他相关分析文章了,已经知道tomcat内存马有Filter型,servlet型等,至于如何搭建servlet,如何实现filter等基本环境搭建,本文不再赘述,其余文章都有很好的手把手教学,本文详解Filter型内存马
servlet搭建:
https://blog.csdn.net/gaoqingliang521/article/details/108677301
TomcatFiltet执行流程相信大家对这样一张图非常熟悉
接下来我们就来深入了解下这个图,需要解决以下两个问题:
1.filter1,filter2的顺序是如何决定的
2.filter1,filter2…..的过滤链在代码中是如何体现的
3.filter1,filter2……是如何回来的,从图中看同一个filter经历了两次(请求一次,响应 ...
CVE-2021-36440分析
CVE-2021-36440(未授权任意文件上传)该漏洞出自产品showdoc
影响版本根据github提交记录分析影响版本为
未授权:2.9.4-2.9.5
授权后的任意文件上传:2.9.6-2.10.3
漏洞分析该漏洞出来自
/server/Application/Api/Controller/AdminUpdateController.class.php中
关注到download方法
该方法中处有三个可控参数,分别是
$new_version:由用户直接传参(new_version)
$title_url:由用户直接传参(file_url)
$version_num:去掉$new_version中的v
继续往下分析
在52行处file_get_contents可以下载远程服务器上的恶意文件,此时$file_url的参数为:
http://192.168.1.106:81/showdoc-666.zip下载到远程文件内容后将其写入$zip_file中
然后压缩包会被解压到$temp_dir也就是/tmp/showdoc_update/中
然后会判断压缩包内文件是否符合要 ...
远程PHP调试大坑
今天在调试docker内部的php代码的时候遇到了究极大坑,折腾了快3个小时,随记录
php远程调试配置过程,这些步骤在网上都能搜得到
在https://xdebug.org/docs/install#linux看如何安装对应的xdebug
这里运行对应的命令即可
运行完这里的命令会生成xdebug.so文件,具体在哪儿请搜索
完成后需要在php.ini中加入
然后运行php -v .xdebug看看是否加载成功,出现如下及成功,如果这一步骤有问题,会在此处显示错误信息,根据具体错误信息百度能瞬间接解决,请跟着百度解决直到出现如下样子
接下来才是重头戏,也是巨坑,巨容易出错的地方
配php.ini,注意,此处需要判断是xdebug2还是xdebug3,我这里用的是xdebug3的配置
箭头标注的地方是巨坑,如果是调试docker里面的,这个地方千万不能写127.0.0.1,会完全无法debug,
还有一点注意的是,client_port是docker和宿主机通讯的端口,docker无需开放映射,然后就是idekey配置为PHPSTORM即可
巨坑过了,接下来配置phpsto ...
记一次SpringBoot审计(一)
初学SpringBoot框架,找了个开源项目练习一下学到的审计技巧,这次审计的是github上的一个开源OA项目,项目地址:https://github.com/kalvinGit/kvf-admin,项目直接使用maven一键搭建,没什么好说的,直接开审
1.常规sql注入检查找到mybatis的mappre配置文件
在mapper文件夹内搜索$符号看看是否存在未使用预编译的sql语句,只找到一处,我们跟进看看
位于selectPermission方法
该函数只有一个用法,在MenuServiceImpl类中的getPermission方法中调用
getPermission,发现是在shiro授权中调用的,而且userId看似也不可控,无奈放弃
2.越权检查此项目采用shiro做权限管理,定位到shiro配置
可以看到除了少数的几个
/static/ /login/ /duird/ /captcha是anon权限,除了上述的路由其他的所有路由都设置为了authc过滤器,authc过滤器是shiro自带的一个过滤器用于检测用户是否登录,如果没有登录 ...
记一次lmxcms审计
前言:1.这是参加四叶草安全的安全研究岗位面试考试,当时面试官发了我一套lmxcms的源码,让我进行审计,尽可能找出更多的漏洞,当时的结果旧纪录下来了,想着审都审了就做做个记录吧,上传到博客上来
0x01:后台文件管理处存在任意文件删除漏洞http://127.0.0.1:83/admin.php后台文件管理处
随便选择一个图片,抓包,可以看到路径是用户输入的参数
对应的源码对应位置是
\m\FileModel.class.php,可以看到delete函数中的$data参数是传递过来的$_POST数组,
在$path[]=trim($fileInfo[1],”/“);处可以看到将$fileinfo[1]两侧的/移除了,然后在通过delteModel在数据库中删除对应fid后,将未经判断和过滤的$path直接使用unlink删除
这个时候就可以构造payload进行任意文件删除了
payload需要满足的条件是
payload必须形如:数字#####path
#####前面的数字是要满足parent:deleteModel()方法的中的数据库删除语句,如果此处没有数据或者数据 ...
无题
前言:这里总结一下我在进行面试复习的时候复习的知识点,根据网上各位师傅的面试经验进行问题回答总结,留作记录,每个问题的回答是基于本人情况并且站在自己的角度如何在面试中回答这个问题而写的。
[TOC]
自我介绍:我叫徐俊杰,今年大三,所学习的专业是渗透与测试,是学校CTF战队NYSEC的副队长,经常参加CTF比赛,也取得过一定的成绩.在安全方面除了通过CTF竞赛学到的安全知识外,在实战黑盒测试中:也有自己提交过SRC,在白盒测试中对开源cms以及快速建站系统等web程序审计并且发现漏洞提交到CNVD漏洞平台有自己的cnvd编号,平时会跟进一些热点漏洞,平时常常写一些安全小工具来为自己所使用
渗透测试流程1.明确目标
2.分析风险,获取授权
3.信息搜集
4.漏洞探测
5.漏洞验证
6.信息分析
什么是泛解析,在处理子域名爆破时泛解析应该如何处理?泛解析是指当我使用通配符把*.abc.com解析到1.1.1.1这个ip上时,用户访问xxx.abc.com都会被解析到ip:1.1.1.1上面,这使得域名可以无限支持子域,但是在我们进行子域名爆破的时候就会出现问题,因为任何子域名都会被解析到1 ...
Log4j-RCE源码分析
前言:Log4j是去年爆出来的漏洞了,但是那个时候研究java安全的能力还是0,如今在学习java安全的过程中来弥补一下当时的遗憾,当时拿着payload只能弹弹dnslog,完全不理解jndi,rmi这些调用机制,如今看来Log4j的漏洞触发并不复杂,但是简单的利用便可造成非常广泛的严重后果。
影响版本为2.0 <= Apache log4j2 <= 2.14.1
0x01:环境搭建个人认为搭建环境的过程是对漏洞理解不可缺少的一部分
maven项目pom.xml文件内容如下
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apa ...