• XCTF1-web php


    场景一:simple_php

    题目描述

    小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。
    在这里插入图片描述

    进入场景
    1. 给了php代码,分析一下
      在这里插入图片描述
      GET传入两个参数a,b
      a = @ a=@ a=@_GET[“a”];其中的@是为了防止没有$_GET[‘a’]出现错误提示
      $a==0 and a : a 等 于 0 , 且 a 是 T R U E 。 p h p 是 弱 语 言 , 在 执 行 关 系 运 算 “ = = ” 时 要 求 运 算 符 两 边 的 数 据 类 型 必 须 一 致 , 如 果 等 号 左 边 是 字 符 串 , 会 被 强 制 转 换 为 整 型 0 , 但 字 符 串 是 T R U E 。 i s n u m e r i c ( a :a等于0,且a是TRUE。php是弱语言,在执行关系运算“==”时要求运算符两边的数据类型必须一致,如果等号左边是字符串,会被强制转换为整型0,但字符串是TRUE。 is_numeric( aa0,aTRUEphp==,0TRUEisnumeric(b) :is_numeric() 函数用于检测变量是否为数字或数字字符串。如果指定的变量是数字和数字字符串则返回TRUE,否则返回FALSE。

    接收参数 a 存 在 , 并 且 a存在,并且 aa==0可用.绕过(非数字都可绕过)

    在这里插入图片描述
    flag1获取,需要a为0 且为true
    flag2获取,需要b不是数字或数字字符串,且值大于1234

    参考链接:https://blog.51cto.com/u_15300891/3060354

    场景二:easyphp

    进入场景

    在这里插入图片描述

    1. 很长一串,定位flag,发现要使key1和key2为true。
      往前看,key1要为1,需要变量a整数数值大于6百万,同时字符串长度小于等于3;变量b要md5加密后,后6位为8b184b
    Intval()函数获取变量整数数值:
    	Intval最大的值取决于操作系统。 32 位系统最大带符号的 integer 范围是 -21474836482147483647。举例,在这样的系统上, intval(1000000000000) 会返回 214748364764 位系统上,最大带符号的 integer 值是 9223372036854775807。
    	这个有个应用就是在判断数值是不是回文上,如果参数为2147483647,那么当它反过来,由于超出了限制,所以依然等于2147483647。即为回文。
    
    • 1
    • 2
    • 3
    1. 变量a可以使用科学计数法来绕过,1e3=100
      官网:https://www.php.net/manual/zh/function.intval.php
      在这里插入图片描述
    2. 变量b可以爆破出对应的明文
      在这里插入图片描述
      在这里插入图片描述
      变量b对应的结果是53724。

    输入a,b变量值测试,回显no,说明变量a,b成功绕过,还剩变量c的绕过。
    在这里插入图片描述

    1. 变量c是一个数组类型
      在这里插入图片描述
      使用json_decode()函数对变量c进行编码,返回数组类型。
      c数组中存在m,n两个键名,m的键值不能是数字且大于2022。
      在这里插入图片描述

    n的键值是一个数组且长度为2的二维数组,随便输入一个二维数组给n键
    在这里插入图片描述
    5. 变量d
    在这里插入图片描述
    array_search() 函数在数组中搜索某个键值,并返回对应的键名。
    三个等号也是等于的意思,与==相比的话,识别数字和字符类型。
    foreach 循环用于遍历数组。foreach ($array as $key => $value){}每一次循环,当前数组元素的键与值就都会被赋值给 $key 和 $value 变量(数字指针会逐一地移动),在进行下一次循环时,你将看到数组中的下一个键与值。

    在这里插入图片描述

    参考链接:https://blog.csdn.net/m0_56107268/article/details/127830960

    PHP2

    1. 进入场景,什么都没有
      在这里插入图片描述
      御剑扫一下,只有一个index.php文件
      在这里插入图片描述
      直接访问index.php还是什么都没有
    2. 将php改为phps,尝试查看php源码
      在这里插入图片描述
      GET方式获取参数id,对id进行url解码后判断是否为admin
      要绕过,尝试对admin进行url加密
      在这里插入图片描述
      对admin进行二次加密
      在这里插入图片描述
      复制到url去访问
      在这里插入图片描述
  • 相关阅读:
    Tlsr8258开发-b85m_module编译无法通过
    C#控制台相关方法
    linux进程
    开发神技!阿里消息中间件进阶手册限时开源,请接住我的下巴
    Matlab程序
    分布式任务调度(04)--自研
    RK3588平台开发系列讲解(DisplayPort篇)DP相关模式说明
    【踩坑系列】pyhton request 访问 url 时遇到 HTTP Error 503: Service Temporarily Unavailable
    构造器(constructor)是否可被重写(override)?
    [附源码]java毕业设计车辆违章信息管理系统
  • 原文地址:https://blog.csdn.net/orchid_sea/article/details/127870849