CTF——web安全中的一些绕过 1functioncheck($number)2{3$one=ord('1');4$nine=ord('9');5for($i= 0;$i<strlen($number);$i++)6{7$digit=ord($number{$i});8if( ($digit>=$one) && ($digit<=$nine) )9{10returnfalse;11}12}13return$number== '11259375';14} 0xabcdef 用11259375的...
770hQgrBOjrcqftrlaZk 有时候题目还会用ctype_alnum()、is_numeric()或正则表达式来限制原值是纯字母或纯数字 方法二:数组绕过 绕过原理:无论是PHP弱比较还是强比较,md5()函数无法处理数组,如果传入的是数组,会返回NULL,两个数组经过加密后返回值均为NULL,形成相等。 payload: 代码语言:javascript 代码运行次数:0 ...
1.QUERY_STRING 用法: $_SERVER['QUERY_STRING'] 获取查询语句,实例中可知,获取的是?后面的值 绕过: 不会进行urldecode,$_GET[]会,用url编码绕过 2.preg_match 用法:preg_match —执行匹配正则表达式 例子:preg_match('/^$/')用换行符%0a绕过 3.$_REQUEST 用法:接受GET和POST参数 绕过:POST优先级高 4...
(ord($s[$i]) >= 32 && ord($s[$i]) <= 125)) return false; return true; } if(isset($_GET{'str'})) { $str = (string)$_GET['str']; if(is_valid($str)) { $obj = unserialize($str); } } 首先找到可利用的危险函数**file_get_content()**然后逐步回溯发现是__destruct()...
绕过总结 一般情况下是给出一些函数的过滤,或者是一些特殊字符、空格之类的过滤,有很多方式可以进行绕过:1.十六进制例如("\x73\x79\x73\x74\x65\x6d"("nl%09fl[a]*");)、转义字符例如(echo`strings%09f*`; 或echo`strings\$IFS\$9f*`或者echo(`nl%09fl[abc]*`);)2.借助php伪协议命令执行...
实现原理:它可以用于自身进程和其他进程,通过查询进程环境块(PEB)中的ISDebugged标志,如果被调试状态,那么返回值返回非0,没调试状态返回0。 4.FindWindowA、EnumWindows 实现原理:通过检测运行环境的调试器的窗口信息。 5.OutputDebigString函数 实现原理:调试器调试应用程序的时候是通过触发异常方式进行执行调试功能的,...
第一个常见的>999999999,用指数1e9即可绕过 echo 1e9; //1000000000 第二个函数is_numeric()判断是否为数字,因为PHP的弱类型,将数字后面加上空格或者任意一个字符即可绕过。 <?php $a = '1'; $b = '1a'; $c = '1 '; var_dump(is_numeric($a));//true ...
最近刷了一下 Bugku-CTF-web 的51-60题,难度继续上升,对编程能力要求越来越高了。考察了代码审计,反序列化,PHP短标签,PHP绕过 __wakeup方法,PHP字符串逃逸,逆向计算,模版注入,Log4j2 RCE,SSRF漏洞,目录…
<?php date_default_timezone_set('Asia/Shanghai'); $ip = $_SERVER["REMOTE_ADDR"];//记录访问者的ip $filename = $_SERVER['PHP_SELF'];//访问者要访问的文件名 $parameter = $_SERVER["QUERY_STRING"];//访问者要请求的参数 $method = $_SERVER['REQUEST_METHOD'];//请求方法 $time = dat...
md5()函数描述的是string md5(string $str[,bool $raw_outpuy=fake]) md5()中需要的是一个string函数,但是当你传一个array()数组时,md5不会报错,只是无法求出array的md5值,这样会导致任意两个array的md5值都会相等 var_dump(md5([1,2,3])==md5([4,5,6]))#ture ...