首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP 文件包含漏洞姿势总结

本文作者:mang0(来自信安之路学生渗透小组) 原理 文件包含漏洞的产生原因是在通过 PHP 的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入...分类 文件包含漏洞可以分为 RFI (远程文件包含)和 LFI(本地文件包含漏洞)两种。而区分他们最简单的方法就是 php.ini 中是否开启了allow_url_include。...有防御的本地文件包含 审计中可见这样的包含模版文件: php $file = $_GET['file']; include '/var/www/html/'.$file.'...从而使之吻合 PHP 中的封装协议(伪协议) http://cn2.php.net/manual/zh/wrappers.php file:///var/www/html 访问本地文件系统 ftp://...那么我们这时候有没有办法绕过这个限制呢?有一个条件那就是 php 版本小于 5.3.10 我们的代码依旧不变 漏洞文件 index.php <?

4.2K22

PHP编译参数configure配置详解,以及php.ini说明

=/opt/php/etc/php.d //指定额外拓展配置归放处文件夹 --enable-safe-mode //打开安全模式 --enable-ftp //打开ftp的支持 --enable-zip...//打开对zip的支持 --with-bz2 //打开对bz2文件的支持 --with-jpeg-dir //打开对jpeg图片的支持 --with-png-dir //打开对png图片的支持...*的支持,可以不加了 --with-xsl //打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件 --with-gettext //打开gnu 的gettext 支持,编码库用到...运行时会扫描--with-config-file-scan-dir所在的目录,并加载目录下额外的配置文件; enable 是启用 PHP 源码包自带,但是默认不启用的扩展,比如 ftp 和 exif 扩展...with 是指定扩展依赖的资源库的位置,如果是默认位置,就可以留空。

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PHP base64 编码转化图片并进行指定路径的保存和上传处理

    (H5移动前端图片批量压缩上传),看其中的介绍是使用了 base64 编码的方式进行上传 个人在使用过程中,做了简单处理,只需向后台传输 base64 编码数据即可,然后后台进行处理,下面主要介绍我的操作流程...此时尤其注意下,向后台传输的数据是否为正确的编码 [个人开发测试时,手贱剔除了 "data:image/jpeg;base64",这一段,可不要犯同样的错误] 2....核心函数 base64_image_content 该函数,我所参考的来源为 PHP将Base64图片转换为本地图片并保存,在此我根据自己的业务进行了相关处理 /** * [将Base64...file_exists($basePutUrl)){ //检查是否有该文件夹,如果没有就创建,并给予最高权限 mkdir($basePutUrl...对于图片上传的 base64 编码上传,前端除了效果设计,处理逻辑相对是类似的,目的就是向后台传输规范的 base64 编码 ②.

    2.3K10

    构建LAMP架构_lamp和lnmp区别

    DMYSQL_UNIX_ADDR:指定套接字文件的存储路径,数据库连接的文件 DSYSCONFDIR:指定初始化参数文件目录 DDEFAULT_CHARSET:指定默认使用的字符集编码,如 utf8。...with-apxs2=/usr/local/httpd/bin/apxs ###设置 Apache HTTP Server 提供的 apxs 模块支持程序的文件位置 with-mysql-sock=.../usr/local/mysql/mysql.sock ###指定mysql的mysql.sock位置 with-mysqli ###mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL...libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。...PHP中使用cURL实现Get和Post请求的方法 with-gd ###激活gd库的支持 with-jpeg-dir ###要激活 jpeg 的支持 with-png-dir ##

    78120

    编译LAMP部署动态网站环境

    功能还是相当强大的,相信满足一般用户需求没有任何问题。 libxml是一个用来解析XML文档的函数库。它用C语言写成, 并且能为多种语言所调用,例如C语言,C++,XSH。...LD_LIBRARY_PATH用于指定libmcrypt和mhash的库的位置。...#指定libxml位置 --with-jpeg-dir=/usr/local/jpeg6/ #指定jpeg位置 --with-png-dir=/usr/local/libpng/ #指定...的连通性,看Apache是否能解析php文件,创建并复制配置文件 mkdir /usr/local/php/etc/ cp -a php-7.0.0/php.ini-production /usr/local...它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

    2.2K20

    DVWA靶机之文件上传漏洞通关笔记

    简介 文件上传漏洞通常是由于对上传文件的类型、内容没有进行严格的过滤、检查,使得攻击者可以通过上传木马获取服务器的webshell权限,因此文件上传漏洞带来的危害常常是毁灭性的。...在使用包含文件上传控件的表单时,必须使用该值。 text/plain: 空格转换为 "+" 加号,但不对特殊字符编码。...后端处理 PHP会用$_FILES数组接收参数 $_FILES的内容为: [name] => feng.jpeg 文件的名称 [type] => image/jpeg 文件的MIME类型...[tmp_name] => C:\Users\Administrator\AppData\Local\Temp\php2007.tmp 文件的临时位置 [error] => 0 文件的错误信息...():获取图像信息 防御措施: 大小写统一 基于白名单的扩展名过滤 上传的文件大小限制 图像信息检测 文件头知识补充(本段内容来自参考资料2) 常见的图片格式的文件头标识如下: JPEG/JPG -

    1.7K20

    PHP常用函数大全

    str_ireplace() 函数使用一个字符串替换字符串中的另一些字符。 sscanf() 函数根据指定的格式解析来自一个字符串的输入。...ftp_nb_put() 函数把文件上传到服务器 (non-blocking)。 ftp_nb_get() 函数从 FTP 服务器上获取文件并写入本地文件 (non-blocking)。...ftp_nb_fget() 函数从 FTP 服务器上下载一个文件并保存到本地已经打开的一个文件中 (non-blocking)。 ftp_nb_continue() 函数连续获取 / 发送文件。...ftp_fput() 函数上传一个已经打开的文件到 FTP 服务器。 ftp_fget() 函数从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中。...fstat() 函数返回关于打开文件的信息。 fseek() 函数在打开的文件中定位。 fscanf() 函数根据指定的格式对来自打开的文件的输入进行解析。

    16220

    PHP常用函数大全

    str_ireplace() 函数使用一个字符串替换字符串中的另一些字符。 sscanf() 函数根据指定的格式解析来自一个字符串的输入。...ftp_nb_put() 函数把文件上传到服务器 (non-blocking)。 ftp_nb_get() 函数从 FTP 服务器上获取文件并写入本地文件 (non-blocking)。...ftp_nb_fget() 函数从 FTP 服务器上下载一个文件并保存到本地已经打开的一个文件中 (non-blocking)。 ftp_nb_continue() 函数连续获取 / 发送文件。...ftp_fput() 函数上传一个已经打开的文件到 FTP 服务器。 ftp_fget() 函数从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中。...fstat() 函数返回关于打开文件的信息。 fseek() 函数在打开的文件中定位。 fscanf() 函数根据指定的格式对来自打开的文件的输入进行解析。

    2.4K20

    LAMPLNMP环境下部署网站导入PHP项目【VMware环境】

    centos 4.将原有yum源移到备份文件夹中 # mv /etc/yum.repos.d/* /yumback 5.制作本地yum源 [centos]             #仓库的名称必须是独一无二的...--with-jpeg-dir=/usr/local/jpeg6/ 指定jpeg位置 --with-png-dir=/usr/local/libpng/...> 数据导入完成后,直接ctrl+c退出即可,当然不放心最好再查看下数据文件是否真的导入 5).修改php文件中数据库连接的配置文件 如:数据库的名称/密码,具体配置文件请根据自己的环境来 [root...> 到这里linux的配置基本完成,因为是虚拟机所以,我们要在外部window下配置hosts文件 4.配置windows下的hosts文件 文件位置: C:\Windows\System32\drivers...2).页面文件路径错误,config配置文件样式路径 403错误 1).httpd.conf中的index.php未设置解析

    27910

    LAMP架构简介与概述 及服务安装

    Linux,Apache,MySQL,PHP 其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服务器和数据库系统以协同工作 (3)编译安装的优点 1...\ #指定Apache httpd服务提供的apxs 模块支持程序的文件位置 --with-mysql-sock=/usr/local/mysql/mysql.sock \ #指定mysql 数据库连接文件的存储路径...--with-config-file-path=/usr/local/php7 #设置 PHP 的配置文件 php.ini 将要存放的位置 --with-mysqli \ #添加...with-jpeg-dir \ #激活jpeg 的支持 --with-png-dir \ #激活png 的支持 --with-freetype-dir \ --with-openssl...index.php 257 #在392行下方插入一下内容,让Apache可以支持.php的网页文件 AddType application/x-httpd-php .php AddType

    97220

    2022年江苏工控选拔赛WP-Web

    php allowtype = array("txt","jpeg","bmv","doc","docx","gif","png","jpg");size = 10000000; path = "....> 所以直接burp开了个Intruder爆破模块, 一个不断的发送文件上传请求, 上传一个写入webshell的a.php <?...场景题 — 渗透测试 这个是真的拉胯(平台拉我也拉), 平台的VPN断了好几次, 也没有本地的映射IP, 加上题目环境是完全不出网的所以想谈个shell都做不到, 另外套上了代理导致一些操作都不大方便进行...10.10.210.1 的回复: 字节=32 时间<1ms TTL=64 来自 10.10.210.129 的回复: 字节=32 时间=1ms TTL=64 来自 10.10.210.219 的回复:...字节=32 时间=2ms TTL=64 来自 10.10.210.232 的回复: 字节=32 时间<1ms TTL=128 来自 10.10.210.236 的回复: 字节=32 时间=2ms TTL

    49460

    Lamp架构_建筑企业架构简介

    ,PHP 其中 Apache 和 MySQL 的安装并没有严格的顺序要求,而 PHP 环境的安装一般放到最后,负责沟通 web 服务器和数据库系统以协同工作 编译安装的优点 具有较大的自由度,功能可定制...以便支持使用各种字符集编码的页面 --enable-cgi #启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力 ....\ #指定Apache httpd服务提供的apxs 模块支持程序的文件位置 --with-mysql-sock=/usr/local/mysql/mysql.sock \ #指定mysql 数据库连接文件的存储路径...--with-config-file-path=/usr/local/php7 #设置 PHP 的配置文件 php.ini 将要存放的位置 --with-mysqli \ #添加...with-jpeg-dir \ #激活jpeg 的支持 --with-png-dir \ #激活png 的支持 --with-freetype-dir \ --with-openssl

    46920

    CentOS 7.5 + PHP 5.6.36 + Nginx 1.14.0 配置笔记

    依赖库 # libiconv:提供了一个iconv()的函数,以实现一个字符编码到另一个字符编码的转换 wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv.../configure --with-php-config=/usr/local/webserver/php/bin/php-config make make install # 如果需要再本地缓存业务侧数据...; vi /usr/local/webserver/php/etc/php-fpm.conf ; 查找并修改如下配置,其他保持默认 ; 错误日志的位置 error_log = /data/logs/...Nginx 配置文件主要分成四部分:main(全局设置)、server(主机设置)、upstream(上游服务器设置,主要为反向代理、负载均衡相关配置)和 location(URL匹配特定位置后的设置...,修改文件中的用户名和密码 重启并测试 nginx -s reload php-fpm reload 上面配置的运维域名如果没有解析,可以到 /etc/hosts 中配置,然后访问 https://运维域名

    1.5K80

    米斯特白帽培训讲义(v2)漏洞篇 文件包含

    它可分为本地包含和远程包含,本地包含即包含本地磁盘上的文件,文件名称是相对路径或绝对路径,远程包含即包含互联网上的文件,文件名称是 URL。...本地包含 比如我们有一个test.txt文件,仅仅调用phpinfo来测试: php phpinfo();?> 然后我们在相同目录下放置一个fileinclude.php,如下: 的文件里面没有 PHP 标签,那么就当成 HTML 内容如实显示出来。就比如我们放入之前的top100.txt: ?...PHP 配置文件的位置可以在phpinfo的输出中寻找,我们搜索ini即可: ? 我这里是C:\php-5.5.10\php.ini,你那里可能有些差别。...之后我们就可以把xxx.jpg上传上去,并通过应用得到它的位置,假设是/upload/xxx.jpg,然后我们就可以把file参数的值改为它。

    51630

    web安全 -- php反序列化漏洞

    以后,可以通过从存储区中读取或反序列化对象状态,重新创建该对象,序列化的目的是便于对象在内存、文件、数据库或者网络之间传递。...- custom object 自定义对象 O - class 对象 N - null 空 R - pointer reference 指针引用 U - unicode string Unicode 编码的字符串...,都比自身要长2,这个二就是两个%00 所以为了防止这种情况,输出的时候进行URL编码 echo urlencode(serialize($ser)); 何为反序列化 反序列化即为序列化的逆过程,将字节流转换为对象的过程即为反序列化...,通常是程序将内存、文件、数据库或者网络传递的字节流还原成对象 在PHP中反序列化所用到的函数为 unserialize() 语法 mixed unserialize ( string $str )...__get,然而__get需要访问不存在的的成员变量才可以触发,然而无论Test里面的哪个方法都没有访问到不存在的成员变量 这是再看一下Show类 在__toSteing方法可以看到return $this

    86520

    【玩转 WordPress】基于Mac的手动搭建WordPress个人站点的方法

    操作场景 WordPress是一款通过使用PHP语言开发的博客平台,开发者可以通过WordPress搭建属于自己的个人博客平台,本篇博文以Mac操作系统为例,手动搭建WordPress个人站点...一、搭建本地开发环境 1、下载MAMP Mac操作系统下,通过MAMP搭建本地开发环境,它是由苹果OSX系统上集成的Apache、Macintosh、MySQL和PHP等软件包,可以在本地模拟网络空间...四、重新上传网站到站点空间 下载一个FTP工具,基于Mac系统的FileZilla工具; 连接站点空间; 上传本地的站点程序; 上传本地的数据库WordPress。...部署的前提: 如果没有腾讯云账号的话需要先去注册腾讯云账号,如果已经注册过腾讯云账号则需要去开通相关的Serverless服务。...0014.jpeg PS:腾讯云最近在搞活动,新用户第一次部署WordPress应用的时候即可获得30 元 TDSQL-C,5 元 CFS 文件存储代金券,欢迎免费体验!

    3.7K21

    zabbix-web切换为nginx及https

    、排错 3.2、配置 3.3、配置php为系统服务 3.4、启动 4、访问及排错 1、背景和环境 zabbix使用了很久,安装的时候并没有选择复杂的源码编译安装,所以默认采用了apache的httpd提供...由于对httpd并没有深入研究,而且个人对httpd的配置文件格式很不感冒,怎么办?当然是换nginx呀!顺便加上https证书安全安全。...、安装nginx 2.1、编译参数 apache httpd通过模块来使用php,nginx连接php则需要单独安装php,首先编译安装nginx 编译参数和步骤如下,来自我的github #!...,可通过在第一次安装zabbix的时候环境检测查看到,参数不满足是无法正常安装使用的,我通过本地虚拟机重新安装了一遍zabbix,得到具体环境参数如下,每列可依次理解为:名称、检测结果、需满足的结果、检测是否通过...启动 /etc/init.d/php-fpm start 3.4、启动 编译配置没有问题,可正常启动 4、访问及排错 访问时出现的报错及解决办法如下 报错一: FastCGI sent in stderr

    1.4K20
    领券