当前位置: 首页 > wzjs >正文

php做网站后台有哪些框架网站建设策划模板

php做网站后台有哪些框架,网站建设策划模板,百度快照是什么,盐城网站建设代理商目录 一、ini文件绕过原理 二、源码审计 三、渗透实战 1、查看提示 2、制作.user.ini文件 (1)首先创建一个文本文件 (2)保存文件名为.user.ini 2、制作jpg后缀脚本 (1)创建一个文本文件 &#xf…

目录

一、ini文件绕过原理

二、源码审计

三、渗透实战

1、查看提示

2、制作.user.ini文件

(1)首先创建一个文本文件

(2)保存文件名为.user.ini

2、制作jpg后缀脚本

(1)创建一个文本文件

(2)保存为文件名pass5.jpg

3、上传ini与jpg文件

(1)准备好待上传文件

(2)打开upload靶场第五关

 (3)上传ini与jpg文件

4、访问readme.php


本文通过《upload-labs靶场通关笔记系列》来进行upload-labs靶场的渗透实战,本文讲解upload-labs靶场第四关文件.ini渗透实战。

一、ini文件绕过原理

在 PHP 环境中,ini文件可以用于配置 PHP 的运行环境。.user.ini 是 PHP 中用于特定目录配置的特殊文件 ,类似 Apache 的.htaccess 文件,主要作用如下所示。

  • 自定义配置:允许非管理员用户为特定目录定义 PHP 配置指令,这些指令在该目录及其子目录中的 PHP 脚本执行时生效。比如可修改 upload_max_filesize 调整上传文件大小限制、修改 memory_limit 改变脚本可用内存 ,而不影响整个服务器配置。
  • 文件包含:借助配置项 auto_prepend_file(在执行 PHP 文件前自动包含指定文件)和 auto_append_file(在执行 PHP 文件后自动包含指定文件) ,可实现恶意代码注入或后门构造。攻击者上传恶意.user.ini 文件,指定包含恶意 PHP 代码文件,就能在用户访问目录下 PHP 文件时执行恶意代码。

   在文件上传关卡,具体利用方法如下所示。

  • 编写.user.ini 文件:创建.user.ini,写入如下内容,意思是让服务器在每个 PHP 请求前自动包含名为pass5.jpg的文件。
auto_prepend_file = "pass5.jpg"
  • 准备pass5.jpg的shell文件:创建pass5.jpg,内容为获取服务器php信息的PHP 代码,具体如下所示。
<?php
phpinfo();
?>
  • 上传文件:当该关卡允许.ini和jpg后缀上传时,尝试将.user.ini 和pass5.jpg上传到服务器指定目录。
  • 触发执行:上传成功后,访问目录下可执行的 PHP 文件(如关卡中提示的 readme.php ),服务器会根据.user.ini 配置,自动包含并执行pass5.jpg中的恶意代码。

二、源码审计

接下来对upload-labs 第 5 关的源码进行审计,如下为已经进行详细注释版的代码,很明显这段代码也是黑名单过滤来实现进行安全检查的。虽然包含多种变体(".php", ".php5", ".php4", ".php3", ".php2", ".php1", ".html", ".htm", ".phtml", ".pht", ".pHp", ".pHp5", ".pHp4", ".pHp3", ".pHp2", ".pHp1", ".Html", ".Htm", ".pHtml", ".jsp", ".jspa", ".jspx", ".jsw", ".jsv", ".jspf", ".jtml", ".jSp", ".jSpx", ".jSpa", ".jSw", ".jSv", ".jSpf", ".jHtml", ".asp", ".aspx", ".asa", ".asax", ".ascx", ".ashx", ".asmx", ".cer", ".aSp", ".aSpx", ".aSa", ".aSax", ".aScx", ".aShx", ".aSmx", ".cEr", ".sWf", ".swf", ".htaccess"),与第四关的区别是将“ini”变为了“htaccess”,所以很明显这一关卡遗漏新的危险扩展名(如.ini等),这也是我们渗透这一关卡的关键。

<?php
// 初始化上传状态变量
$is_upload = false;  // 布尔值,标记文件是否上传成功
$msg = null;         // 字符串,用于存储上传过程中的错误信息// 检查是否通过POST方法提交了表单(submit按钮被点击)
if (isset($_POST['submit'])) {// 检查上传目录是否存在if (file_exists(UPLOAD_PATH)) {// 定义禁止上传的文件扩展名黑名单(包含各种变体)$deny_ext = array(// PHP相关扩展名及变体".php", ".php5", ".php4", ".php3", ".php2", ".pHp", ".pHp5", ".pHp4", ".pHp3", ".pHp2",// HTML相关扩展名及变体".html", ".htm", ".phtml", ".pht",".Html", ".Htm", ".pHtml",// JSP相关扩展名及变体".jsp", ".jspa", ".jspx", ".jsw", ".jsv", ".jspf", ".jtml",".jSp", ".jSpx", ".jSpa", ".jSw", ".jSv", ".jSpf", ".jHtml",// ASP相关扩展名及变体".asp", ".aspx", ".asa", ".asax", ".ascx", ".ashx", ".asmx", ".cer",".aSp", ".aSpx", ".aSa", ".aSax", ".aScx", ".aShx", ".aSmx", ".cEr",// 其他危险文件类型".sWf", ".swf",  // Flash文件".htaccess"      // Apache配置文件);// 获取并处理上传文件名$file_name = trim($_FILES['upload_file']['name']);  // 去除首尾空格$file_name = deldot($file_name);    // 删除文件名末尾的点(防御file.php.攻击)$file_ext = strrchr($file_name, '.');  // 获取文件扩展名(从最后一个点开始)$file_ext = strtolower($file_ext);     // 统一转换为小写$file_ext = str_ireplace('::$DATA', '', $file_ext); // 去除NTFS备用数据流$file_ext = trim($file_ext);           // 去除扩展名首尾空格// 检查文件扩展名是否在黑名单中if (!in_array($file_ext, $deny_ext)) {// 获取上传的临时文件路径$temp_file = $_FILES['upload_file']['tmp_name'];// 构造目标文件路径(使用原始文件名,存在安全隐患)$img_path = UPLOAD_PATH.'/'.$file_name;// 将临时文件移动到目标位置if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;  // 标记上传成功} else {$msg = '上传出错!';  // 文件移动失败(可能权限不足或目录不可写)}} else {$msg = '此文件类型不允许上传!';  // 文件类型被禁止}} else {$msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';  // 上传目录不存在}
}
?>

三、渗透实战

1、查看提示

进入靶场pass5,点击右上角的提示,得知上传目录存在readme.php文件,如下图所示。

2、制作.user.ini文件

(1)首先创建一个文本文件

创建文件并里面写入,该配置文件的效果是在.user.ini相同的目录下,所有的php文件都包含pass5.jpg这个文件。

auto_prepend_file=pass5.jpg

(2)保存文件名为.user.ini

将文件保存为.user.ini并将保存类型配置为所有文件

2、制作jpg后缀脚本

(1)创建一个文本文件

代码内容如下所示:

<?php
phpinfo();
?>

(2)保存为文件名pass5.jpg

点击文件另存为pass5.jpg,保存类型设置为所有文件。

3、上传ini与jpg文件

(1)准备好待上传文件

两个所需要的文件就创建完毕,图示如下。

(2)打开upload靶场第五关

http://127.0.0.1/upload-labs/Pass-05/index.php

 (3)上传ini与jpg文件

如下所示,上传user.ini与jpg文件,两者均上传成功。

4、访问readme.php

根据本关提示,在上传目录下是有一个readme.php文件的,所以直接访问url:http://127.0.0.1/upload-labs/upload/readme.php,如下所示,php版本号成功显示,证明文件上传成功。

http://www.dtcms.com/wzjs/535503.html

相关文章:

  • 非营利组织网站建设会计分录企业网站帮助中心
  • 杭州上城区建设局网站网页制作与设计考试
  • 长春市建设厅网站中小微企业查询官网
  • 注册qq空间网站影视公司招聘
  • 东莞找网站设计网站建设预算知乎
  • 长沙市网站推广公司建立一个网站怎么做
  • 单人做网站需要掌握哪些知识深圳代做网站后台
  • 产品网站建设公司哪家好网站访问量有什么用
  • 个人备案的网站可以做宣传建网站自学
  • 打开网站占空间电子商务职业生涯规划书
  • 同一个域名两个网站交易网站备案
  • 环保空调东莞网站建设手机商城毕业设计
  • 电子商务毕业设计网站网易云外链wordpress
  • 我想建设一个网站腾讯云wordpress建站
  • 微信公众号做留言网站付费做网站关键词优化是怎么做的呀
  • 做高端品牌网站建设上海外贸界龙彩印有限公司
  • 深圳网站哪家强.网站建设的目标
  • 国外h5分享网站住房和城乡建设部网站防排烟
  • 电商购物平台软件开发商丘seo外包
  • 宜昌市网站建设工装公司联系方式
  • 货代可以从哪些网站开发客户建筑图集网站07fs02图集
  • 中山华企立方网站建设公司个体工商户是否能够做网站
  • 高新企业建设网站价格医疗网站建站需求
  • 网站为什么做静态h5网站建设文章
  • 虚拟币交易网站开发省级网站建设标准
  • 网站建设网页的长宽网站大全软件
  • 网站上线如何做公司名字html购物网站源代码
  • 创意网站建设家装公司排名
  • 什么是网站被黑邢台企业网站建设公司
  • 做期货看资讯什么网站好wordpress 过滤