博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Zer0pts2020]Can you guess it?
阅读量:2065 次
发布时间:2019-04-29

本文共 654 字,大约阅读时间需要 2 分钟。

  • 给了源码
  • 一堆不认识的东西 心塞… 一个个学
  1. $_SERVER['PHP_SELF']:

PHP_SELF:当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/foo/bar.php 的脚本中使用 $_SERVER[‘PHP_SELF’] 将得到 /foo/bar.php。_FILE_ 常量包含当前(例如包含)文件的完整路径和文件名。 如果 PHP 以命令行模式运行,这个变量将包含脚本名

  • 本地尝试了一下
    在这里插入图片描述
  • 有趣的事情发生了
    在这里插入图片描述
  1. basename():

basename() 函数返回路径中的文件名部分。

  • 自己运行试了一下
";echo basename($path,".php");//显示不带有文件扩展名的文件名?>

在这里插入图片描述

";echo basename($path,".php");//显示不带有文件扩展名的文件名?>

在这里插入图片描述

  1. 这道题目的利用点就在于basename()函数上
  • 在自己的环境里尝试了一下
";echo "basename(\$_SERVER['PHP_SELF']):";echo " ";echo basename($_SERVER['PHP_SELF']);?>

在这里插入图片描述

  • basename()函数存在一个问题,它会去掉文件名开头的非ASCII值
  • 所以在运行的时候 会出现上面的效果 既绕过了正则 又满足了读取config.php
  • 所以payload为:
/index.php/config.php/%ff?source

转载地址:http://fbwmf.baihongyu.com/

你可能感兴趣的文章
BlockQueue 生产消费 不需要判断阻塞唤醒条件
查看>>
ExecutorService 线程池 newFixedThreadPool newSingleThreadExecutor newCachedThreadPool
查看>>
强引用 软引用 弱引用 虚引用
查看>>
数据类型 java转换
查看>>
"NetworkError: 400 Bad Request - http://172.16.47.117:8088/rhip/**/####t/approval?date=976
查看>>
mybatis 根据 数据库表 自动生成 实体
查看>>
win10将IE11兼容ie10
查看>>
checkbox设置字体颜色
查看>>
第一篇 HelloWorld.java重新学起
查看>>
ORACLE表空间扩张
查看>>
orcal 循环执行sql
查看>>
web.xml配置监听器,加载数据库信息配置文件ServletContextListener
查看>>
结构型模式之桥接模式(Bridge)
查看>>
行为型模式之状态模式(State)
查看>>
行为型模式之策略模式(Strategy)
查看>>
行为型模式之模板方法模式(TemplateMethod)
查看>>
行为型模式之访问者模式(Visitor)
查看>>
大小端详解
查看>>
source insight使用方法简介
查看>>
<stdarg.h>头文件的使用
查看>>