[BSidesCF 2020]Had a bad day 【ssrf+伪协议的嵌套】
进入或可以点击WOOFERS和MEOWERS获取狗和猫的图片,同时发现地址栏出现category分别等于WOOFERS和MEOWERS两种值
之后发现图片的地址为
说明是服务器再次从本地请求过,所以此处存在ssrf的可能(ssrf 可以参见 https://blog.csdn.net/qq_48904485/article/details/123653514 )
所以尝试利用php伪协议 读取,发现报错
php://filter/read=convert.base64-encode/resource=index.php
发现是源码中应该利用了include同时服务端又添加了.php所以去掉payload中的php,即改为
php://filter/read=convert.base64-encode/resource=index
成功获取源码base64加密值,解密即可
源码中部分如下,说明只有在变量中存在index,woofers,meomers时才会执行include函数
到此不会了,查询wp后发现php伪协议可以嵌套进行,获取值
即利用payloadcategory=php://filter/read=convert.base64-encode/index/resource=flag
此处嵌套在我的理解中即为filter增加一个条件,index,类似前文中的read=conver.base64-encode,虽然没有这种限制出现了报错,但是成功绕过了要求的字符。
读取成功
成功拿到flag的base64值,解密后即可确定flag为