zoukankan      html  css  js  c++  java
  • 实验吧 Once more

    0x1函数解析

    ereg():

                  *用指定的模式搜索一个字符串中指定的字符串,如果匹配成功返回true,否则,则返回false。

                    搜索字母的字符是大小写敏感的。

                  * 此函数存在两个漏洞:

                       ①%00截断及遇到%00则默认为字符串的结束

                       ②当ntf为数组时它的返回值不是FALSE

                  *科学计数法的表示是1e9=1000000000,e一定是小写

    strpos():

                     *查找字符串在另一字符串中第一次出现的位置。

                      *例:stpos("ehfvfslnvjsdknv","ehfv")

                               查找ehfv在字符串中第一次出现的位置

    拓展eregi():此函数与ereg()的区别在于此函数不区分大小写

    0x2题目解析

    题目链接:http://www.shiyanbar.com/ctf/1805

    #1.查看源码:

    <?php
    if (isset ($_GET['password'])) {
    	if (ereg ("^[a-zA-Z0-9]+$", $_GET['password']) === FALSE)
    	{
    		echo '<p>You password must be alphanumeric</p>';
    	}
    	else if (strlen($_GET['password']) < 8 && $_GET['password'] > 9999999)
    	{
    		if (strpos ($_GET['password'], '*-*') !== FALSE)
    		{
    			die('Flag: ' . $flag);
    		}
    		else
    		{
    			echo('<p>*-* have not been found</p>');
    		}
    	}
    	else
    	{
    		echo '<p>Invalid password</p>';
    	}
    }
    ?>
    

    ereg():输入的password必须是大小写字母和数字

    strlen():输入值必须大于999999999并且长度小于8

    strops():输入的值中必须含有‘*-*’

    #2.总结步骤一中的要求后,利用ereg函数的截断漏洞可以构造playload:1e9%00*-*

         由于做了url编码,所以需要在url里面直接传参

     得到flag

                    

  • 相关阅读:
    z470 装黑苹果 10.92
    Ubuntu 14.04安装Chromium浏览器并添加Flash插件Pepper Flash Player
    Jira 6.0.3 安装与破解
    Scrumworks乱码
    升级 CentOS git 1.7.1 到 1.7.12
    函数细说及匿名函数
    第四章—变量,作用域和内存问题(三)
    第四章—变量,作用域和内存问题(二)
    CSS-DOM的小知识(一)
    第三章——基本概念(三)
  • 原文地址:https://www.cnblogs.com/qingwuyou/p/10687460.html
Copyright © 2011-2022 走看看