zoukankan      html  css  js  c++  java
  • Buuctfweb[HCTF 2018]WarmUp

    首先打开是一张表情图片,然后直接查看源码。发现。

     有个source.php 的注释,而源码里没有什么可寻的信息,直接查看source.php

     发现是一个程序。提示我们另一个地址hint.php,

    提示我们在ffffllllaaaagggg

     

    request函数包含了get和post方法,$_REQUEST是需要通过POST或者GET参数来赋值的,接收参数,file.

     然后if里的第一个判断是判断它接受的是否为空,第二个是判断是否为字符串,第三个将它传给函数check File。都满足后传给函数checkFile.否则打印图片。

    然后看checkFile函数。

    1,首先将传入的参数赋给page。

    2,然后声明了一个数组

    $whitelist值源自source.php 和hint.php

    3,如果page变量不存在或者非字符串,返回false

    4,如果变量page存在于whitelist中返回true

    5,mb_substr() 函数返回字符串的一部分,

    mb_strpos():返回要查找的字符串在别一个字符串中首次出现的位置 

    $_page里存放了函数mb_substr 截取$page中'?'前部分,若无则截取整个$page

    然后再判断变量page存在于whitelist中返回true

    6,然后url解码了一次page

     然后因为网页给page解码了一次,函数中也解码了一次,所以?要url编码两次,为%253F

    所以直接给file赋值view-source:http://e9cdbb91-074c-488d-8ae9-91cf504329d2.node3.buuoj.cn/source.php?file=source.php%253F../../../../../../../../ffffllllaaaagggg

    因为不知道flag路径,所以多次尝试

  • 相关阅读:
    02 微服务应用的认证与授权
    01 微服务架构中的服务发现作用以及两种协议的调用区别
    04 redis的数据结构与对象
    03 Spring的事务管理的基本使用
    02 Spring的AOP的基础概念与简单使用
    k8s环境部署
    elk安装
    实现AD域验证登录--
    linux SSH各配置项解释
    Linux学习之SAMBA共享(密码验证)
  • 原文地址:https://www.cnblogs.com/tac2664/p/13678561.html
Copyright © 2011-2022 走看看