• 爱因斯密
  • 猫爪

爱因斯密的猫

加密世界加密我

  • 爱因斯密
  • 猫爪

Once More

2018年4月18日2018年4月21日实验吧, 实验吧WEBNo Comments

题目

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

啊拉?又是php审计。已经想吐了。
hint:ereg()函数有漏洞哩;从小老师就说要用科学的方法来算数。格式:CTF{}

解题链接: http://ctf5.shiyanbar.com/web/more.php


解法:两个知识点

  1. 是可以用科学技术法表示数字
  2. ereg()存在00阶段漏洞

过程

1.查看代码,过第1、3个判断


1.1ereg()函数,查看用法

PHP 函数 ereg()

语法

    int ereg(string pattern, string originalstring, [array regs]);

定义和用途

ereg()函数用指定的模式搜索一个字符串中指定的字符串,如果匹配成功返回true,否则,则返回false。搜索字母的字符是大小写敏感的。

可选的输入参数规则包含一个数组的所有匹配表达式,他们被正则表达式的括号分组。

Return Value

如果匹配成功返回true,否则,则返回false

Example

下面是一段代码,这段代码复制并粘贴到一个文件中并验证结果。

    <?php

    $email_id = "admin@tutorialspoint.com";
    $retval = ereg("(\.)(com$)", $email_id);
    if( $retval == true )
    {
       echo "Found a .com<br>";
    }
    else
    {
       echo "Could not found a .com<br>";
    }
    $retval = ereg(("(\.)(com$)"), $email_id, $regs);
    if( $retval == true )
    {
       echo "Found a .com and reg = ". $regs[0];
    }
    else
    {
       echo "Could not found a .com";
    }
    ?>

这将会产生以下结果:

    Found a .com
    Found a .com and reg = .com

1.2.1查看矛盾点是strpos()函数中的*-*匹配

1.2.2strpos()函数

查找 “php” 在字符串中第一次出现的位置:

<?php
echo strpos("You love php, I love php too!","php");
?>

1.3综合1.1和1.2,构造%00*-*,截断ereg对*-*的判断,也满足strpos中的查找。
2.科学计数法过第2个判断。
2.1科学计数法中: 1.99714E13=19971400000000
2.2构造满足strlen<8并且大于9999999的数:9E9=9000000000是科学计数法最短同时数也最大的了。
3.合并条件就是9E9%00*-*
4.提交发现%被转义,直接在url中修改参数more.php?password=9E9%2500*-*
结果:


5.得到flag
6.这里strlen()没被截断,构造的参数是3位数字1位空3位符号总共7位正好满足条件,多一位都不行。

打赏赞微海报分享
00截断php函数漏洞代码审计
carmel0
carmel0 (12 Posts)
View all author’s posts

文章导航

Guess Next Session
程序逻辑问题

发表评论 取消回复

类别

  • sql技巧 (2)
  • 公告 (1)
  • 实验吧 (7)
  • 实验吧WEB (5)
  • 实验吧密码学 (2)
  • 快速记录 (2)
  • 操作技巧 (1)
  • 未分类 (1)

关键字

00截断 (1) BP技巧 (2) Cookie (1) header头 (2) HTTPS抓包 (1) php函数漏洞 (1) python解题 (2) sql (3) sqlmap (1) sql注入 (3) tamper (1) 代码审计 (2) 公告 (1) 凯撒密码 (1) 列变换 (1) 古典密码 (2) 手工注入 (1) 手机抓包 (1) 水题 (1) 测试 (1) 爆库 (1) 过滤空格 (1)

近期文章

  • 密码保护:VScode+GDB查看C栈及栈信息 2021年11月18日
  • 古典密码 2018年4月21日
  • 变异凯撒 2018年4月21日

快速链接

  • Github
  • 微信公众号
  • E-Mail

功能

  • 登录
  • 条目feed
  • 评论feed
  • WordPress.org
Proudly powered by WordPress | Theme: Doo by ThemeVS.