Polar靶场web(三)

期待得到某一件事物的时候,才是最美好的。

签到

发现不能提交,看一下f12

发现提交按钮被禁用了,且最大输入9个字符,我们可以改一下。

现随便提交一个发现要提交ilovejijcxy

 session文件包含

发现有文件包含,那先包含一下action.php

发现

post传的参数被记录到seesion文件里面了,所以我们就可以用session文件包含,猜一下目录,找到/tmp/sess_5ki3kfmdkshq56njj2g0b1ut41



 Don't touch me

robots

一眼robots.txt

php very nice 

一眼反序列化。

ezupload 

先随便上传一个试试,提示只能上传GIF格式

经过检测,只检测Content-type,所以只需改为image/gif即可。

直接蚁剑连即可。 

cookie欺骗 

根据题目可以看出要改cookie,

把user改为admin就好了

upload

先看源代码,看到

加入url后看到源码。

发现把这么多后缀换为空,所以我们可以使用双写绕过。

上传成功。

干正则

<?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'];
        if (preg_match('/flag\.php/', $ip)) {
            die("don't show flag!!!");
        }

        $result .= shell_exec('ping -c 2 ' . $a[0] . $ip);
        if ($result) {
            echo "<pre>{$result}</pre>";
        }
    } else {
        exit('其实很简单!');
    }
}

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

 

技巧:cat `ls`;

cool

<?php
if(isset($_GET['a'])){
    $a = $_GET['a'];
    if(is_numeric($a)){
        echo "no";
    }
    if(!preg_match("/flag|system|php/i", $a)){
        eval($a);
    }
}else{
    highlight_file(__FILE__);
}
?>

直接用passthru即可

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-30 14:50:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-30 14:50:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-30 14:50:03       87 阅读
  4. Python语言-面向对象

    2024-03-30 14:50:03       96 阅读

热门阅读

  1. Spring中 Bean生命周期总结

    2024-03-30 14:50:03       43 阅读
  2. baseDao增删改查.

    2024-03-30 14:50:03       41 阅读
  3. 探讨Spring Boot的自动配置原理

    2024-03-30 14:50:03       53 阅读