zoukankan      html  css  js  c++  java
  • [极客大挑战 2019]BuyFlag

    最近也不是很忙,空闲时间还是很多,所以做点有意思的CTF,提升提升自己

    0x00 知识点

    1.php中的strcmp漏洞

    说明:

    int strcmp ( string $str1 , string $str2 )

    参数 str1第一个字符串。str2第二个字符串。如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。
    可知,传入的期望类型是字符串类型的数据,但是如果我们传入非字符串类型的数据的时候,这个函数将会有怎么样的行为呢?实际上,当这个函数接受到了不符合的类型,这个函数将发生错误,但是在5.3之前的php中,显示了报错的警告信息后,将return 0 ,也就是虽然报了错,但却判定其相等。

    2.php中的is_numeric()漏洞

    is_numeric() 函数用于检测变量是否为数字或数字字符串。

    is_numeric函数对于空字符%00,无论是%00放在前后都可以判断为非数值,而%20空格字符只能放在数值后。所以,查看函数发现该函数对对于第一个空格字符会跳过空格字符判断,接着后面的判断!

    0x01 解题

    打开题目

     

    在另一个页面的源码里看见内容

    显然,password必须不是数字或数字字符串;然后还得弱类型比较符合404。

    is_numeric函数对于空字符%00,无论是%00放在前后都可以判断为非数值,%20必须放在数值后才可;

    弱类型的话404%00或404%20或404%0a都可

    我们先来抓包重放一下试试

    说明此时密码正确,还得传个money的值

    提示说数字太长,可能是后端做了某种比较限制,尝试%00截断,不行;

    尝试科学计数法,money=1e10,可以;

    尝试给个数组,money[]=111,可以。

    参考:https://www.cnblogs.com/wangtanzhi/p/12238883.html

  • 相关阅读:
    Oracle 组件 系列 小结
    Oracle Data Mining 组件 说明
    GIS空间索引(有了思路代码还不是手到擒来)
    完成端口与高性能服务器程序开发(转)
    const? const ! 全解
    服务器架构
    SDL 源码分析(2)
    数据结构个算法学习笔记(2)
    高性能服务器架构 的几个注意点 (HighPerformance Server Architecture)
    GIS底层开发总结
  • 原文地址:https://www.cnblogs.com/zzjdbk/p/13470041.html
Copyright © 2011-2022 走看看