学习笔记4.[RoarCTF 2019] Easy Calc 1

题目:


过程:

有waf,基本思路就想到过waf,危险函数传参

翻来覆去找到一个calc.php的页面

calc.php

接收的参数为num,看到过滤规则首个就是过滤空格

构造如下:calc.php?空格num=phpinfo();  这样,会先触发规则,删除空格,进而将一个名称为num的参数传入

成功

进一步读取目录,否则仍是找不到flag

由于过滤了“/”符号,我们用ASCII码替换

补充:scandir() 函数返回指定目录中的文件和目录的数组。

          var_dump()函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,            通过缩进显示其结构。

看到f1agg字符串,直接读取就好了。

payload如下:

总结:

题目比较简单,主要考察对于php字符串的解析特性

参考csdn沐目_Chen师傅的话就是:

我们知道PHP将查询字符串(在URL或正文中)转换为内部$_GET或的关联数组$_POST。例如:/?foo=bar变成Array([foo] => “bar”)。值得注意的是,查询字符串在解析的过程中会将某些字符删除或用下划线代替。例如,/?%20news[id%00=42会转换为Array([news_id] => 42)。如果一个IDS/IPS或WAF中有一条规则是当news_id参数的值是一个非数字的值则拦截,那么我们就可以用以下语句绕过:

/news.php?%20news[id%00=42"+AND+1=0–

上述PHP语句的参数%20news[id%00的值将存储到$_GET[“news_id”]中。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • sqlmap用户手册 说明:本文为转载,对原文中一些明显的拼写错误进行修正,并标注对自己有用的信息。 ======...
    wind_飘阅读 2,115评论 0 5
  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 当给sq...
    xuningbo阅读 10,435评论 2 22
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,792评论 0 11
  • web应用程序会对用户的输入进行验证,过滤其中的一些关键字,这种过滤我们可以试着用下面的方法避开。 1、 不使用被...
    查无此人asdasd阅读 7,473评论 0 5
  • 一套实用的渗透测试岗位面试题,你会吗? 1.拿到一个待检测的站,你觉得应该先做什么? 收集信息 whois、网站源...
    g0阅读 4,912评论 0 9