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

    题目

    分析

    先抓个包吧

    发现了tip

    分析一下,

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

    后面是弱类型比较,用404abc便可绕过

    password=404abc&money=100000000

    将user=1试试

     

    数值太长,用科学计数法试试

    还可用strcmp函数特性绕过的办法

    php strcmp()漏洞

    注:这一个漏洞适用与5.3之前版本的php

    我们首先看一下这个函数,这个函数是用于比较字符串的函数

    int strcmp ( string $str1 , string $str2 )

    参数 str1第一个字符串。str2第二个字符串。如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。

    可知,传入的期望类型是字符串类型的数据,但是如果我们传入非字符串类型的数据的时候,这个函数将会有怎么样的行为呢?实际上,当这个函数接受到了不符合的类型,这个函数将发生错误,但是在5.3之前的php中,显示了报错的警告信息后,将return 0 !!!! 也就是虽然报了错,但却判定其相等了。这对于使用这个函数来做选择语句中的判断的代码来说简直是一个致命的漏洞,当然,php官方在后面的版本中修复了这个漏洞,使得报错的时候函数不返回任何值。但是我们仍然可以使用这个漏洞对使用老版本php的网站进行渗透测试。

  • 相关阅读:
    软件工程作业-结对实验
    软件工程实践作业2
    UNIX线程之间的关系
    c中计时的几种方法
    调试器工作原理(3):调试信息
    调试器工作原理(2):实现断点
    调试器工作原理(1):基础篇
    linux的终端,网络虚拟终端,伪终端(转)
    asterisk webrtc使用SIPML5初体验
    初次使用nodejs的问题
  • 原文地址:https://www.cnblogs.com/zzjdbk/p/13641490.html
Copyright © 2011-2022 走看看