| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> [HCTF 2018]WarmUp -> 正文阅读 |
|
[PHP知识库][HCTF 2018]WarmUp |
代码分析:
高亮显示文件函数
checkfile函数里(),提示我们source.php和hint.php 访问hint.php得到语句: flag not here, and flag in ffffllllaaaagggg 将传递的参数赋值给page,然后判断若page变量不存在或非字符串 则echo “you can’t see it”
若变量page存在于whitelist数组中 则返回true 以下看几个php函数: php in_array函数 定义和用法: in_array()函数搜索数组中是否存在指定的值 **注释:**如果search参数是字符串并且设置为true,则搜索区分大小写
php mb_substr()函数 mb_substr() 函数返回字符串的一部分,之前我们学过 substr() 函数,它只针对英文字符,如果要分割的中文文字则需要使用 mb_substr()。 **注释:**如果 start 参数是负数且 length 小于或等于 start,则 length 为 0。
php mb_strpos函数 定义和用法: 查找字符串在另一个字符串首次出现的位置 基于字符数执行一个多字节安全的strpos()操作,第一个字符的位置是0,第二个字符的位置是1,依次类推
我们大概就可以知道了,这段代码表示截取 p a g e 中 ′ ? ′ 前 部 分 , 若 无 则 截 取 整 个 page中'?'前部分,若无则截取整个 page中′?′前部分,若无则截取整个page
这里是对page进行url解码
这里首先判断$_REQUEST[‘file’]值非空 第二判断是否为字符串 再就是能否通过checkfile()函数校验 后面是包含$_REQUEST[‘file’]文件 如果条件不满足就打印滑稽表情 结论:
payload:
或者
hint.php和source.php都是白名单里文件 因为我们不知道ffffllllaaaagggg文件存放的具体位置 最后拿到flag 借鉴于: |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 10:48:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |