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

                    

  • 相关阅读:
    HIVE中内连接和左半连接不一致问题
    hive 中的Sort By、 Order By、Cluster By、Distribute By 区别
    基于MapReduce的矩阵乘法运算
    基于MapReduce的关系代数运算(2)
    基于MapReduce的关系代数运算(1)
    帖子爬取
    tomcat------https单向认证和双向认证
    struts2配置文件struts.xml的简介
    2014,事情只有一件!
    MYSQLi数据访问查询数据
  • 原文地址:https://www.cnblogs.com/qingwuyou/p/10687460.html
Copyright © 2011-2022 走看看