加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

bugku数字验证绕过正则

发布时间:2020-12-14 06:17:23 所属栏目:百科 来源:网络整理
导读:题目:http://120.24.86.145:9009/21.php ? 1 ? php 2 error_reporting (0 ); 3 $flag = ‘flag{test}‘ ; 4 if ("POST" == $_SERVER [‘REQUEST_METHOD‘ ]) { 5 $password = $_POST [‘password‘ ]; 6 if (0 = preg_match (‘/^[[:graph:]]{12,}$/‘, $pas

题目:http://120.24.86.145:9009/21.php

?

 1 <?php
 2 error_reporting(0);
 3 $flag = ‘flag{test}‘;
 4 if ("POST" == $_SERVER[‘REQUEST_METHOD‘]) {
 5     $password = $_POST[‘password‘];
 6     if (0 >= preg_match(‘/^[[:graph:]]{12,}$/‘,$password)) //preg_match — 执行一个正则表达式匹配
 7     {
 8         echo ‘flag‘;
 9         exit;
10     }
11     while (TRUE) {
12         $reg = ‘/([[:punct:]]+|[[:digit:]]+|[[:upper:]]+|[[:lower:]]+)/‘;
13         if (6 > preg_match_all($reg,$password,$arr)){
14             echo "hello world";
15             break;
16         }
17         echo preg_match_all($reg,$arr);
18         $c = 0;
19         $ps = array(
20             ‘punct‘,21             ‘digit‘,22             ‘upper‘,23             ‘lower‘
24         ); //[[:punct:]] 任何标点符号 [[:digit:]] 任何数字 [[:upper:]] 任何大写字母 [[:lower:]] 任何小写字母
25         foreach ($ps as $pt) {
26             if (preg_match("/[[:$pt:]]+/",$password)) $c+= 1;
27         }
28         if ($c < 3) break;
29         //>=3,必须包含四种类型三种与三种以上
30         if ("42" == $password) echo $flag;
31         else echo ‘Wrong password‘;
32         exit;
33     }
34 }
35 ?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读