一.首先是环境的搭建,在源码下载的网站上下来了这套cms
在本地上用phpstudy搭的用php5.6.9版本的
搭建的教程可以搜到就不说了,重点是记录下审计步骤
主页长这样
二.目录结构
admin 管理后台
css 存放css的
files 翻了翻文件夹应该是放页面的
images 存放图片的文件夹
inc 存放网站配置文件的文件夹
install 对网站进行安装的文件夹
seacmseditor 编辑器
template 模板
upload 上传功能
index.php 网站首页
三. 萌新审计,直接给扔进审计工具看了
34个,咱们一个一个分析
借助工具开始分析
-
第一个爆洞点:
好的点进去瞅瞅
<?php
//单一入口模式
error_reporting(0); //关闭错误显示
$file=addslashes($_GET['r']); //接收文件名
$action=$file==''?'index':$file; //判断为空或者等于index
include('files/'.$action.'.php'); //载入相应文件
?>
代码就这么点,并且还有注释
什么是单一入口模式?
单一入口的应用程序就是说用一个文件处理所有的HTTP请求,例如不管是内容列表页,用户登录页还是内容详细页,都是通过从浏览器访问 index.php 文件来进行处理的,这里这个 index.php 文件就是这个应用程序的单一入口。
详细了解可看https://www.php.cn/php-weizijiaocheng-295638.html
然后继续往下看
addslashes()处理了r这个参数
定义和用法
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符是:
单引号(')
双引号(")
反斜杠(\)
NULL
注释:默认地,PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。