BUUCTF之[RoarCTF 2019]Easy Calc

1.题
在这里插入图片描述
2.题样
在这里插入图片描述
3.测试,数字,字母:
在这里插入图片描述
字母都不能计算:
在这里插入图片描述
查看源码,说有WAF,看到提示有一个calc.php文件,访问试试:
![](https://img-blog.csdnimg.cn/20200717120212511.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMTQ3MzA5,size_16,color_FFFFFF,t_70)
访问结果,传参为num,并且有黑名单,过滤了字母t,r,[,]等,基本上一句话是不管用了,数据库查询语句也不香了,select,databases:
在这里插入图片描述
有eval()函数,说不定有代码执行漏洞:eval()代码执行漏洞,1,2
num传参测试:
数字:
在这里插入图片描述
字母:
在这里插入图片描述
查询语句:
在这里插入图片描述
很明显字母都被WAF拦截,利用PHP的字符串解析特性绕过waf,PHP字符串解析特性。由于php在解析url中的参数时,保存前会把num前面的空格去掉再解析,所以在num前加空格可绕过WAF,在num前加个空格,弹出之前代码中的提示,只要在黑名单中,都会提示what are you want to do?:
在这里插入图片描述
试试phpinfo():
在这里插入图片描述
成功执行,PHP函数:
🌸scandir():以数组形式返回指定目录中的文件和目录
  🌸var_dump():输出变量的相关信息。
  🌸var_dump():显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
  🌸file_get_contents():把整个文件读入一个字符串中。
/在黑名单中,用chr()函数绕过’/'字符,chr(47)
scandir():
在这里插入图片描述
在这里插入图片描述
var_dump():
在这里插入图片描述
var_dump(scandir(chr(47))):
在这里插入图片描述
var_dump(file_get_contents(chr(47).f1agg):
在这里插入图片描述
var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103))):
在这里插入图片描述
在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页