(哦对了!这些CMS代码不要安装在服务器上,先不说它们用来代码审计本身就是有漏洞的,而且在网上下载下来,也不能保证没有源码是否被篡改而留有后门,就安装在本地进行代码审计的练习即可)

我们先下载BugFree的源代码

http://47.94.132.67/tools/index.php?share/file&user=1&sid=HDwfQMeK

BugFree安装文件在install\index.php下,我们打开文件:

确实可以在安装的时候,检查了install.lock锁文件是否存在,如果不存在的话就不进入该条件判断语句,存在则由header重定向至index.php

由于没有die()或者exit(),这个跳转只是HTTP头的跳转,下方的代码仍然会执行

虽然浏览器会自动跳转到首页,但是我们可以使用burpsuite进行拦截,从而来到安装页面

在安装了一次之后,我们在burpsuite里面再次访问install/页面,可以看到又一次来到了安装界面

重装漏洞的危害:

  1,在安装时写入配置文件时getshell

    因为我们安装的时候都会填写一些配置信息,填写的时候如果CMS没有正确过滤的话,我们就可以成功写入一句话木马从而getshell

  2,重装后登录后台getshell

    重装了之后都会给管理员一个初始密码,拿到初始密码之后我们登录后台,寻找能够getshell的点,如头像上传之类的地方绕过上传一句话木马进而getshell

在安装时写入配置文件时getshell

我们可以看这个例子:

首先下载zswin源代码:http://47.94.132.67/tools/index.php?share/file&user=1&sid=kNZVTzab

该博客CMS也存在重装漏洞,并且我们可以尝试在配置文件中写入shell

安装好博客之后,我们访问

http://127.0.0.1/zswinsns-blog2.6/install.php?m=install&c=index&a=setconf

又来到了安装页面,证明重装漏洞存在,这里我们主要展示在配置文件中写入shell

而我们在这里填写的内容,会保存在ZswinSNS-Blog2.6\App\User\Conf的config.php文件中

我们可以看到输入的数据是使用单引号包裹的

所以我们在重装时可以这样填写数据表前缀

zs_');phpinfo();//

 

也就是这样,很明显语句到了config.php文件中就会变成:

define('UC_TABLE_PREFIX', 'zs_');phpinfo()//');

 即数据库表前缀还是zs_,但是还在config.php文件里面执行了phpinfo()函数,当然在这里我们也可以写入一句话木马

创建成功后,我们去访问config.php即:http://127.0.0.1/zswinsns-blog2.6/App/User/Conf/config.php

成功回显了phpinfo.php

不过这个时候我们去访问网站首页的时候,有报错信息

应该是修改了表前缀之后数据库里的表没有正确的创建,从而导致访问网站也出错了,除了写入木马一无是处 :)

参考链接:

https://sosly.me/index.php/2018/04/03/php_daimashenji2/

https://threezh1.com/2019/05/18/PHP%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1%E4%B9%8B%E9%87%8D%E8%A3%85%E6%BC%8F%E6%B4%9E/#%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0-1

https://xz.aliyun.com/t/5877#toc-4

代码审计【根据功能点定向审计】BugFree ZSWin重装案例的更多相关文章

  1. phpcms v9 的表单向导功能的使用方法 附多个案例

    本文主要介绍phpcms v9的表单向导功能是如何使用的,并副多个案例讲解: 先介绍一下v9 的表单向导如何使用 表单向导做的很实用,生成一个表单,常用的是把它作为一个留言板,或者在招聘栏目作为一个供 ...

  2. Java基础知识强化75:正则表达式之分割功能(字符串中的数字排序案例)

    1. 案例分析: 我有如下一个字符串:"91 27 46 38 50" 写代码实现最终输出结果是:"27 38 46 50 91" 分析:    (1)定义一个 ...

  3. Form_通过FND_FNDFLUPL标准功能上传CSV控件(案例)

    2014-06-08 Created By BaoXinjian

  4. PHP代码审计(初级篇)

    一.常见的PHP框架 1.zendframwork: (ZF)是Zend公司推出的一套PHP开发框架 功能非常的强大,是一个重量级的框架,ZF 用 100%面向对象编码实现. ZF 的组件结构独一无二 ...

  5. linux的审计功能(audit)

    为了满足这样的需求:记录文件变化.记录用户对文件的读写,甚至记录系统调用,文件变化通知.什么是auditThe Linux Audit Subsystem is a system to Collect ...

  6. 代码审计之XiaoCms(后台任意文件上传至getshell,任意目录删除,会话固定漏洞)

    0x00 前言 这段时间就一直在搞代码审计了.针对自己的审计方法做一下总结,记录一下步骤. 审计没他,基础要牢,思路要清晰,姿势要多且正. 下面是自己审计的步骤,正在逐步调整,寻求效率最高. 0x01 ...

  7. php代码审计一些笔记

    之前学习了seay法师的代码审计与及80sec的高级审计,整理了一些笔记在印象里面,也发到这里作为记录 1,漏洞挖掘与防范(基础篇) sql注入漏洞            挖掘经验:注意点:登录页面, ...

  8. Java代码审计连载之—添油加醋

    在代码审计中,按业务流程审计当然是必须的,人工的流程审计的优点是能够更加全面的发现漏洞,但是缺点是查找漏洞效率低下.如果要定向的查找漏洞,逆向跟踪变量技术就显得更加突出,如查找XSS.SQL注入.命令 ...

  9. [代码审计]XiaoCms(后台任意文件上传至getshell,任意目录删除,会话固定漏洞)

    0x00 前言 这段时间就一直在搞代码审计了.针对自己的审计方法做一下总结,记录一下步骤. 审计没他,基础要牢,思路要清晰,姿势要多且正. 下面是自己审计的步骤,正在逐步调整,寻求效率最高. 0x01 ...

随机推荐

  1. [原题复现]HCTF 2018 Warmup(文件包含)

    HCTF 2018 Warmup 原题复现:https://gitee.com/xiaohua1998/hctf_2018_warmup 考察知识点:文件包含漏洞(phpmyadmin 4.8.1任意 ...

  2. MySQL获取webshell的几种方式

    select ... into outfile 需要满足的条件 对web目录有写权限 GPC关闭(GPC:是否对单引号转义) 有绝对路径(读文件可以不用,写文件需要) 没有配置secure-file- ...

  3. Python:利用Entrez库筛选下载PubMed文献摘要

    一个不是学生物的孩子来搞生物,当真是变成了一块废铁啊,但也是让我体会到了一把生物信息的力量. 废话不多说,开整! 任务:快速高效从PubMed上下载满足条件的文献PMID.标题(TI).摘要(AB). ...

  4. java开发两年,连Spring中bean的装配都不知道?你怎么涨薪啊

    Spring 1.1.1.1 创建一个bean package com.zt.spring; public class MyBean { private String userName; privat ...

  5. 云原生应用Go语言:你还在考虑的时候,别人已经应用实践

    摘要:在近日于上海召开的第六届Gopher China大会上,华为云微服务首席架构师田晓亮分享了<华为云的Go语言云原生实战经验>,讲述如何构建韧性.高可靠.安全的云原生应用系统,并孵化云 ...

  6. 如何在Mac上安全彻底的卸载软件?

    Mac如何卸载软件呢?通常我们的做法都是将应用程序图标移动到废纸篓中,这样就算是将mac软件卸载了,但是这样真的将软件卸载干净了吗?当然没有,一个软件并不是只有应用程序包,他还会包含很多的偏好文件等等 ...

  7. vulnhub: DC 4

    信息收集: yurang@kali:~$ nmap -sn 192.168.76.1/24 Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-04 ...

  8. J - Sushi 题解(期望dp)

    题目链接 题目大意 给你n个盘子,每个盘子可能有1,2,3个披萨 你选到每个盘子的概率是一样的. 你如果选到空的盘子什么都不做 如果你选到有披萨的盘子则吃掉一个披萨 求吃完所有披萨的期望 题目思路 设 ...

  9. 企业安全06-Fastjson-CNVD-2017-02833

    Fastjson-CNVD-2017-02833 一.漏洞概述 fastjson在解析json的过程中,支持使用@type字段来指定反序列化的类型,并调用该类的set/get方法来访问属性,当组件开启 ...

  10. 小知识点 之 JVM -XX:MaxGCPauseMillis 与 -XX:GCTimeRatio

    写在前边 JVM调优更多是针对不同应用类型及目标进行的调整,往往有很大的实验成份,通过实验来针对当前应用设置相对合适的参数,提高应用程序的性能与稳定性 最近在复习JVM,Parallel Scaven ...