<?php
error_reporting(0);
$flag = 'flag';
if ("post" == $_server['request_method'])$/', $password))
while (true)
if ($c < 3) break;
//>=3,必須包含四種型別三種與三種以上
//4、弱型別比較,42abc,強制轉換為數字
if ("42" == $password) echo $flag;
else
echo 'wrong password';
exit;}}
?>
定義:
語法:preg_math(pattern,string,matches,flags)
與preg_match的區別:
名字ascii
[:alnum:]
[a-za-z0-9]
[:alpha:]
[a-za-z]
[:ascii:]
[\x00-\x7f]
[:blank:]
[ \t]
[:digit:]
[0-9]
[:graph:]
[\x21-\x7e]
[:punct:]
[!"#$%&'()*+,-./:;<=>?@[\]^_`~]
[:lower:]
[a-z]
[:upper:]
[a-z]
[:word:]
[a-za-z0-9_]
[:xdigit:]
[a-fa-f0-9]
//post傳值:
//滿足條件的都可以
flag=42aaaaaaa.aaa2aaa
flag=42aaaaabb.cccc
//post傳入乙個空值也輸出flag
bugku數字驗證繞過正則
題目 第6行使用正則匹配如果匹配到 password開頭12個字元中有空格則輸出flag並執行exit 12行是正則匹配 password裡的字元是否大於6,如果小於則echo hello world然後break所以一定要大於6才行。19 28行是表示要將 password裡使用正則匹配,滿足達到...
Bugku 數字驗證正則繞過
語法 int preg match all 字串 pattern 字串 subject 陣列和 matches 整數 flags preg pattern order 整數 offset 0 搜尋主題中所有匹配模式給定正規表示式的匹配結果並將它們以標誌指定順序輸出到匹配中。在第乙個匹配找到後,子串行...
js使用正則驗證數字
正則驗證最多兩位小數 var reg new regexp 0 9 0 9 if reg.test sjd 驗證數字的正規表示式集 驗證數字 0 9 驗證n位的數字 d 驗證至少n位數字 d 驗證m n位的數字 d 驗證零和非零開頭的數字 0 1 9 0 9 驗證有兩位小數的正實數 0 9 0 9 ...