PHP相关漏洞------学习笔记

本文详细探讨了PHP的文件包含漏洞,包括常见文件包含函数、漏洞分类、挖掘方法,以及本地和远程文件包含的利用技巧。还介绍了如何通过php://input等协议读取敏感信息,并讨论了代码执行和变量覆盖漏洞的相关内容。
摘要由CSDN通过智能技术生成

一、PHP文件包含漏洞

1、什么是PHP漏洞

程序开发人员一般会把重复使用的函数写到一个单个文件中,在需要使用某个函数的时候直接调用此文件,二无需再次编写,这种文件调用的过程一般被称为文件包含。开发人员为使代码变得更灵活,将被包含的文件设置为变量,用来进行动态调用,但正是由于这种灵活性,导致客户端可以嗲用一个恶意文件,造成文件包含漏洞。几乎所有的脚本语言都会提供文件包含的功能,单文件包含漏洞在PHP web application中居多,而在JSP,ASP,ASP.NET程序中却非常少见,甚至不存在,在PHP中经常出现(多存在与美国的站点),但不能代表其他语言中没有的。“包含”这个过程在语言中都有,但漏洞在PHP中居多。程序用

2、常见的文件包含函数

include():执行include时才包含文件,找不到文件的时候只会产生警告,脚本会继续运行;

require():只要程序一运行就包含文件,找不到文件的时候会产生致命的错误,并停止脚本;

include_once()和require_once():若文件中代码已被包含则不会再次包含。
(可以用包含隐藏后门,绕过拦截WAF)

3、漏洞的分类

1、本地文件包含:可以包含本地文件,在条件允许的时候甚至能执行代码

上传图片马,然后包含;

读取敏感文件,读php文件;

包含日志文件getshell;

包含/proc/self/envion文件getshell;

包含data:或php://input等伪协议;

若有phpinfo则可以包含临时文件。

2、远程文件包含:可以直接执行任意代码
要保证php.ini(配置文件)allow_url_fopen和allow_url_include为on

4、漏洞挖掘

白盒代码审计

黑盒工具挖掘:awvs appscan burp w3af

手工:找带“.”的文件 找系统中自带的文件

5、本地包含漏洞

文件包含漏洞利用的条件
1、include()等函数通过动态变量的方法引入需要包含的文
2、用户能控制动态变量

<?php
$test-$_GET['c'];  
include($test);  
?>
保存为include.php
在同一目录下创建1.txt   内容为:
<?php
phpinfo()
?>
访问:http://www.xxx.com/test/include.php?c=1.txt

include.php也可以写成
<?php include($_GET[c]); ?

5.1 相对路径

…/…/…/etc/passwd

5.2 %00截断包含(PHP<5.3.4)
<?php
include "$_GET['x'].".php
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值