网站建设分金手指专业十八,建站优化内容,株洲网站做的好的公司,武安网站建设这题考查的是: 字符串解析特性目录读取文件内容读取
字符串解析特性详解#xff1a;PHP字符串解析特性 #xff08;$GET/$POST参数绕过#xff09;#xff08;含例题 buuctf easycalc#xff09;_参数解析 绕过-CSDN博客
ascii码查询表#xff1a;ASCII 表 | 菜鸟工具 …这题考查的是: 字符串解析特性目录读取文件内容读取
字符串解析特性详解PHP字符串解析特性 $GET/$POST参数绕过含例题 buuctf easycalc_参数解析 绕过-CSDN博客
ascii码查询表ASCII 表 | 菜鸟工具 (jyshare.com)
用到的函数有
print_r() 读取复杂对象字符串、数组、对象等
chr() 将ascii码值转换为字符
scandir() 读取目录成功返回文件数组失败返回false目录必须用引号包裹 file_get_contents() 将文件内容读取到字符串中以二进制流读取图片、字符数据都可用 全是知识盲区啊又学到了新知识 打开题目发现是一个计算器界面查看源码发现设置了waf具体内容不知道什么情况 通过抓包测试发现了calc.php的一段源码信息里面对输入的一些特殊字符进行了过滤
过滤的字符空格 \t \r \n [ ] $ ^ 尝试输入num参数进行测试发现只能输入数字字母和其他符号都不通过应该是waf搞的鬼 这里彻底蒙圈了知识匮乏了看了大佬的wp发现可以利用字符串解析特性进行绕过
百度了一下php参数的字符串解析特性1.去掉空白符 2.将某些字符转化为下划线 大佬的文章:PHP字符串解析特性 $GET/$POST参数绕过含例题 buuctf easycalc_参数解析 绕过-CSDN博客
构造payload?%20numphpinfo()
发现成功执行了phpinfo()函数好了waf已经绕过了接下来就是绕过calc.php的过滤操作了 现在不知道flag在哪里先要读取一下目录文件
由于 都被过滤了所以用chr()进行输入绕过chr(47)是/
构造payload:print_r(scandir(chr(47))) 读取根目录下的文件信息然后打印该数组 找到了疑似存放flag的文件名为f1agg
注意文件名中第二个是数字1不是l我在这儿耽搁了好一会儿才发现
构造payload:print_r(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
成功读取到了flag 10