当前位置:首页 > 阅读 > BUU-Web-EasyCalc (buuweb 精通各种审计)

BUU-Web-EasyCalc (buuweb 精通各种审计)

BUU-Web-EasyCalc (buuweb 精通各种审计)

访问后,可以通过源码发现是通过encodeURIComponent对内容编码后发送到calc.php内

encodeURIComponent

简而言之就是对发送的字符串进行urlencode编码

如【?】就变成了【%3F】

可以使用在线的urlencode/urldecode工具,也可以使用Python或者其他的语言进行加/解密

访问calc得到源文件

我们可以发现其中的函数

show_source:highlight_file的别名,作用都是 将__FILE__中的内容显示出来,就是我们看见的这个源代码

foreach:将$blacklist中的内容依次取出 作为$blackitem

preg_match:对目标进行正则匹配

对取出的内容进行判断

“.”的作用是拼接前后内容,拼接后就是/$blackitem/m

/[content]/m,不对大小写敏感

eval:执行收到的php指令

第二步:漏洞测试

在这个地方卡了好久,最后查阅WriteUP发现,WAF和我们现在看见的源文件不是同一个文件。

这里是一个PHP解析漏洞,利用PHP对URL获取的$_GET/$_POST以数组存储时会先进行一次转换如【?test=23333】会转换为【Array([test] = 2333)】

我们可以使用parse_str来模拟url解析的过程

这里我们可以看出在urlcode为[20,26,00,3d]时会删去,为[20,2b,2e,5b,2f]会转化为“_”

因此我们可以构建payload

【?%20num=var_dump(scandir(chr(47)))】查看根目录,因为“”和“ / ”被过滤了,所以我们这里使用chr函数对ascii码进行编码绕过

可以获取到根目录下存在f1agg文件

然后构建payload【?%20num=var_dump(file_get_contents(chr(47).f1agg))】

最终拿到flag

最后调用的几个函数

chr ([ascii_code]):将ASCII码转化为字符

scandir( [path] ):列出指定[path]路径下的文件和目录

var_dump:将Arry类型的内容取出

以上就是(BUU-Web-EasyCalc (buuweb 精通各种审计))全部内容,收藏起来下次访问不迷路!