PHP安装文件的审计
初始化安装
一般php程序都有一个初始安装的问题,如果使用了一些cms安装后且没有删除安装文件的话,就会导致二次安装等问题. 具体但不限于以下几种情况:
- 无验证功能,任意重装覆盖
- $_GET['step']跳过限制步骤
- 变量覆盖导致从新安装
- 判断lock后跳转无exit
- 解析install.php.bak漏洞
- 其他特定功能绕过漏洞
源码解析
首先判断一下.lock文件是否存在,如果存在,则跳转到主页, 注意他这的跳转并没有使用代码的手段终止代码运行(exit,die)
接下来是环境的一些展示
接下来是数据库的配置和连接
漏洞实现
通过访问install.php文件. 发现跳转到了index.php文件(我已安装过).
利用burp抓包来看,响应到了index.php
通过burp的历史 找到请求的install.php 查看响应,发现由于代码没有终止操作,所以后续的所有代码都是响应了.
我把他的跳转代码给注释,然后重新抓包, 得到post数据包,发送到burp重放栏
修改参数dbname == expa; -- - "; phpinfo();
然后打开注释的代码. 发送出去我们修改后的包.
然后我们访问config.php 发现已经显示了phpinfo()页面信息;
修复
问题的根源就在于已经安装过的时候 ,并没有结束代码的执行. 所以我们在判断安装跳转之后需要加上代码终止运行.
另外最好就是安装完删除与之对应文件.
PHP安装文件的审计的更多相关文章
- Python中模块安装文件的创建及使用
在Python编程中,我们常常需要自己编写模块,当模块文件写好了,就需要创建安装文件,方便模块的发布. 此时,常用的方法,就是使用Python distutils(代表distribution uti ...
- linux查看安装文件
rpm -qa jdk 查看名字包含"jdk"的已安装的文件 which java 查看java命令的所在目录 rpm -qf `which java` 查看java命令所对应的安 ...
- 安装文件制作工具Wix概念快速入门
前言 Wix==Windows installer XML 顾名思议. 用于制作WINDOWS安装文件的XML格式的描述文件. 因为其实现方式为基于声明的方式,而非命令的方式. 特整理一下其相关的概念 ...
- NSIS使用教程(安装包制作安装文件教程,如何封装打包文件) 中文版
nsis中文版(Nullsoft Scriptable Install System)是一个专业的开源的可以用来封闭Windows程序的实用工具,是一个开源的 Windows 系统下安装程序制作程序. ...
- 海量IT资料 + 各种平台下的Oracle安装文件 + 公开课录像 + 各种视频教程资料
觉得老师的公开课讲的都挺好的,这里把我录的一些公开课视频分享给大家,都用的是<屏幕录像专家>来录制的,是lxe格式的,大家用这个软件来播放就可以了,后边的公开课录像文件也会慢慢添加进去的, ...
- E: 软件包*需要重新安装,但是我无法找到相应的安装文件。(ubuntu14.04)
ubuntu安装搜狗输入法官方下载的安装包时,电脑有点卡我给强制关闭了,然后重启打开软件管理中心,直接闪退! 之后不能安装任何软件(包括命令). 显示: E: 软件包Sougou Pinyin需要重新 ...
- Java程序如何生成Jar、exe及安装文件
http://blog.csdn.net/luoweifu/article/details/7628006/ 一.用Eclipse生产Jar文件 首先,看一下我的项目的目录结构: 1,项目名字上面点右 ...
- VS中制作安装文件
第一步先来建一个最简单的Windows窗体应用程序,并为项目命名为WinFormTest,解决方案为WinFormSetup 第二步在窗体Form中添加一个按钮并在按钮事件中添加代码,只做测试因此简单 ...
- 给windows 7安装文件添加USB3.0驱动
给Air安装win7进入语言与区域选择之后,发现键盘触摸板都失灵. 原因:新款的 Macbook Air 2013 因为使用了 USB3.0 端口键盘和触摸板设备,所以在安装 Windows 7 ...
随机推荐
- 从0开始的Python学习017Python标准库
简介 Python标准库使随着Python附带安装的,它包含很多有用的模块.所以对一个Python开发者来说,熟悉Python标准库是十分重要的.通过这些库中的模块,可以解决你的大部分问题. sys模 ...
- java 根据ip获取地区信息(淘宝和新浪)
package com.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr ...
- June. 25th 2018, Week 26th. Monday
Change in all things is sweet. 有改变就会有美好. From Aristole. Change is always good, but embracing change ...
- Vue-cli在webpack内使用雪碧图(响应式)
先执行install cnpm install webpack-spritesmith 文件位置 build\webpack.dev.conf.js 添加内容: const SpritesmithPl ...
- js 秒数格式化
function formatSeconds(value) { var theTime = parseInt(value);// 秒 var theTime1 = 0;// 分 var theTime ...
- 好程序员web前端分享如何理解JS的单线程
好程序员web前端分享如何理解JS单线程,JS本质是单线程的.也就是说,它并不能像JAVA语言那样,两个线程并发执行. 但我们平时看到的JS,分明是可以同时运作很多任务的,这又是怎么回事呢? 首先,J ...
- ASP.NET Core RSA加密或解密
前言 这两天主要是公司同事用到了RSA加密,事后也看了下,以为很简单,最终利用RSACryptoServiceProvider来实现RSA加密,然后大致了解到RSACryptoServiceProvi ...
- CodeBlocks卸载后重装 编译c文件提示错误信息“No such file or directory”
编译最简单的helloworld程序,提示第一行#include<stdio.h> 找不到头文件. 解决方法: 再次卸载CodeBlocks后,将之前的配置文件删除. 路径:C:\User ...
- CodeForces Round #555 Div.3
A. Reachable Numbers 代码: #include <bits/stdc++.h> using namespace std; ; int N; set<int> ...
- SQL进阶随笔--case用法(一)
SQL进阶一整个是根据我看了pdf版本的整理以及自己的见解整理.后期也方便我自己查看和复习. CASE 表达式 CASE 表达式是从 SQL-92 标准开始被引入的.可能因为它是相对较新的技术,所以尽 ...