[RoarCTF 2019]Easy Calc

题目

题目打开是这样的

查看源码



.ajax是指通过http请求加载远程数据。

可以发现有一个calc.php,输入的算式会被传入到这个php文件里,尝试一下能不能打开

可以打开,并且显示了源码

foreach 语法结构提供了遍历数组的简单方式。

语法:

foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement

在这道题里,会对黑名单中的每一个值都拿出来连接成正则表达式的字符串,/m表示多行查找

其他几个参数:

/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/m (多行查找)
/gi(全文查找、忽略大小写)
/ig(全文查找、忽略大小写)

假如绕过的话,我们就可以用eval执行任意php语句

重点

了解一下php的解析规则,当php进行解析的时候,如果变量前面有空格,会去掉前面的空格再解析

而这里黑名单过滤,没有过滤这种情况,那么久可以构造一个查询语句了

? num=1;var_dump(scandir(chr(47)))

scandir(/)可以查看目录,用chr()来绕过waf,注意在calc.php页面提交



可以看到一个f1agg,打开这个文件就好

? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

最新文章

  1. learn shell
  2. 显示XML文档时排序数据
  3. [转载]DBA的特质第二部分:性格
  4. 中位数与第K小元素
  5. 移动Web单页应用开发实践——实现Pull to Request(上/下拉请求操作)
  6. Java线程池与java.util.concurrent
  7. Python 创建函数和代码重用
  8. cocos2dx-lua 批量打包及修改
  9. Python处理XML
  10. unix网络编程第三版源代码ubuntu下配置的问题解决
  11. [webapi] 如何在查看api时 显示api的说明
  12. Spring boot之hello word
  13. Oracle 数据文件迁移
  14. C++运算符重载——输入/输出运算符
  15. LINUX内核PCI扫描过程
  16. JVM垃圾回收机制与内存回收
  17. 200. Orchard学习 目录
  18. ceph 底层代码分享
  19. macbook pro。已经连接上wifi,但是,不能上网的问题
  20. Apache-通过CGI执行脚本

热门文章

  1. ABBYY FineReader 14创建PDF文档功能解析
  2. css3系列之伪类选择器
  3. Jmeter (三)变量、参数化、函数
  4. 解决Maven项目中pom.xml文件报错(Failure to transfer....)的问题
  5. 免费撸12个月AWS服务器
  6. 《HelloGitHub》第 56 期
  7. mq存储文件
  8. [BUGCASE]Webpack打包报JavaScript堆内存泄漏的错误
  9. Python爬虫入门(二)之Requests库
  10. Eclipse的新建工作空间如何用以前工作空间的配置