zoukankan      html  css  js  c++  java
  • CTF-代码审计(2)

    1.bugku 备份是个好习惯

    网址:http://123.206.87.240:8002/web16/

    进去什么都没有,题目说备份想到备份文件,所以直接再后面加个    .bak

    拿到源码:

    <?php
    /**
    * Created by PhpStorm.
    * User: Norse
    * Date: 2017/8/6
    * Time: 20:22
    */

    include_once "flag.php";
    ini_set("display_errors", 0);
    $str = strstr($_SERVER['REQUEST_URI'], '?');   //  strstr(str1,str2)  字符串str1中搜索str2,如果存在则返回str2及str2以后得剩余部分;

    $str = substr($str,1);      //  php 得substr() 这里省略了第三个参数 长度,所以从第一个开始截取到最后;
    $str = str_replace('key','',$str);  //   str_replace("world","Shanghai","Hello world!")  把hello world里面得world换成shanghai

    // 这里把输入得参数用空字符串去代替了key,所以需要双写key绕过

    parse_str($str);  
    echo md5($key1);

    echo md5($key2);
    if(md5($key1) == md5($key2) && $key1 !== $key2){
    echo $flag."取得flag";
    }
    ?>

     构造payload:
    ?kkeyey1=240610708&kkeyey2=aabC9RqS
     
     
    拿到flag   Bugku{OH_YOU_FIND_MY_MOMY}
     
     
     
    2.bugku 本地包含  
     
     
    网址: http://123.206.87.240:8003/
     
    eval命令执行漏洞,构造payload得方法太多,推荐这个博客 :https://blog.csdn.net/xuchen16/article/details/82734758
     
     
     
     
        php知识:    strstr()  str_replace()  还有 $_REQUSTE() 可以得到 GET 和POST 两个得参数
  • 相关阅读:
    ArrayList 和 LinkList 的区别
    fork()相关的源码解析
    http协议状态码及其意义
    数据库的死锁相关知识
    JDBC事务的相关知识
    请求http页面的相关过程
    static 关键字的作用
    计算机网络网络层的IP地址划分及子码
    文件的相关操作.
    set集合和深浅拷贝
  • 原文地址:https://www.cnblogs.com/tlbjiayou/p/11030905.html
Copyright © 2011-2022 走看看