博客
关于我
BUUCTF web WarmUp
阅读量:318 次
发布时间:2019-03-04

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

WarmUp

打开网页一个滑稽,看源码,发现注释有source.php
搜索此目录下的source.php文件,发现php代码。
最开始的类emmm就放在哪里,在后面才会调用里面的函数。接着往下看
传参file不为空,并且是字符串,并且经过了emmm::checkFile函数处理后结果都为true,才会把flag引入。
checkFile会截取file中?之前的部分,看是否在白名单里面;第二次会进行urldecode,再次检查。所以有两种。

构造payload ?file=source.php?/../../../../../../ffffllllaaaagggg

或者 ?file=source.php%253f/../../../../../../ffffllllaaaagggg
%253f是?两次urlencod的结果,因为服务器会自动解一次码变成%3f,在函数中解码一次变成?

至于为什么那么多的上级目录,现在还不知道,有哪位大佬知道麻烦告知一下。


mb_strpos 查找字符串在另一个字符串中首次出现的位置。如果没有找到,它将返回false。
mb_strpos($_page . '?', '?')效果是如果page里面没有?,则返回page最后的位置。如果有的话,返回第一个

mb_substr获取部分字符串.(下标从0开始)
$_page = mb_substr($page, 0, mb_strpos($page . '?', '?') );效果就是$_page= $ page?前面的东西

in_array 检查数组中是否存在某个值

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

你可能感兴趣的文章
vue如何配置兼容ie es6转es5
查看>>
js井子棋
查看>>
vue项目如何区分开发、生产和测试环境
查看>>
css取消双击选中文字
查看>>
LeetCode 116填充每个节点的下一个右侧结点指针
查看>>
C++小笔记——function绑定重载函数、私有继承用的条件
查看>>
最近一些算法题的总结
查看>>
2021-4-28【PTA】【L2-1 包装机 (25 分)】
查看>>
2021-5-2【指针】【作业】【指针代替下标进行数组编程】
查看>>
Arduino mega2560+MPU6050利用加速度值控制舵机
查看>>
MPU9250九轴姿态解算开发小结
查看>>
pycharm+python+MS SQLSERVER 实战2、实现爬虫程序。
查看>>
判断字符是否出现
查看>>
C 语言restrict 关键字的使用浅谈
查看>>
深入理解数组指针与指针数组的区别
查看>>
iOS客户端与PHP服务端的简单交互
查看>>
图像Exif Orientation
查看>>
Python的异常处理
查看>>
Kubernetes(k8s)的调度器详细介绍
查看>>
Linux的网络参数设置
查看>>