当前位置:网站首页>安全基础4 ---正则表达式
安全基础4 ---正则表达式
2022-07-25 19:25:00 【抱小猫】
正则表达式
定义
又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。
元字符
| 字符 | 描述 |
|---|---|
| \ | 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 |
| ^ | 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。 |
| $ | 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。 |
| * | 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。 |
| + | 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。 |
| ? | 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 。? 等价于 {0,1}。 |
| \b | 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。 |
| \B | 匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。 |
| \cx | 匹配由 x 指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。 |
| \d | 匹配一个数字字符。等价于 [0-9]。 |
| \D | 匹配一个非数字字符。等价于 [^0-9]。 |
| \f | 匹配一个换页符。等价于 \x0c 和 \cL。 |
| \n | 匹配一个换行符。等价于 \x0a 和 \cJ。 |
| \r | 匹配一个回车符。等价于 \x0d 和 \cM。 |
| \s | 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。 |
| \S | 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 |
| \t | 匹配一个制表符。等价于 \x09 和 \cI。 |
| \v | 匹配一个垂直制表符。等价于 \x0b 和 \cK。 |
| \w | 匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'。 |
| \W | 匹配非字母、数字、下划线。等价于 '[^A-Za-z0-9_]'。 |
| \n | 标识一个八进制转义值或一个向后引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。 |
常用正则表达式
| 正则表达式 | 描述 |
|---|---|
| /\b([a-z]+) \1\b/gi | 一个单词连续出现的位置。 |
| /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/ | 匹配一个 URL 解析为协议、域、端口及相对路径。 |
| /^(?:Chapter|Section) [1-9][0-9]{0,1}$/ | 定位章节的位置。 |
| /[-a-z]/ | a 至 z 共 26个 字母再加一个 - 号。 |
| /ter\b/ | 可匹配 chapter,而不能匹配 terminal。 |
| /\Bapt/ | 可匹配 chapter,而不能匹配 aptitude。 |
| /Windows(?=95 |98 |NT )/ | 可匹配 Windows95 或 Windows98 或 WindowsNT,当找到一个匹配后,从 Windows 后面开始进行下一次的检索匹配。 |
| /^\s*$/ | 匹配空行。 |
| /\d{2}-\d{5}/ | 验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。 |
| <[a-zA-Z]+.*?>([\s\S]*?) | 匹配 HTML 标记。 |
正则表达式案例
案例1:利用正则表达式解决长度问题
要求:将正则表达式:(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&*\\\.\(\)])
定位8-16位
分析:
(?=.*[0-9]):字符+数字

(?=.*[0-9])(?=.*[a-z]):字符+数字+小写字母

(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]):字符+数字+小写字母+大写字母

(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&*\\\.\(\)]):字符+数字+小写字母+大写字母+特殊字符

(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&*\\\.\(\)])(?=^.{8,16}$):字符+数字+小写字母+大写字母+特殊字符+最短8位最长16位
1、没有8位字符时

2、有8位但小于16位字符时

3、大于十六位字符时
案例2:利用正则表达式进行绕过网页
环境:sqllabs靶场
1、我们首先通过测试可以得到该数据表一共有三列,利用order by联合查询时列数不一样时会有报错信息进行测试。

2、判断数据显示位置

3、查看当前数据库名称

4、查看当前用户及主机名

5、 获取所有库名


7、获取users表中信息:http://127.0.0.1:8003/Less-1/?id=-1%27%20union%20select%201,(select%20group_concat(username,0x3a,password)from%20users),3--+

参考:
边栏推荐
- QT compiled successfully, but the program could not run
- Network packet multi-layer transmission demonstration
- 哪吒 D1-H 测试 microbench
- Full scale and Xuan of C key
- 【DETR用于3D目标检测】DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries
- Openresty Lua resty mlcache multi-level cache
- SQL Server 2019 安装教程
- iMeta | Sangerbox: 交互式整合临床生信分析平台
- Network design and planning of a company
- Swift 基础 Codable(JSONEncoder JSONDecoder)的使用
猜你喜欢

小程序毕设作品之微信校园维修报修小程序毕业设计成品(5)任务书

Pymoo学习 (5):收敛性分析

小程序毕设作品之微信校园维修报修小程序毕业设计成品(7)中期检查报告

“未来杯”第二届知识图谱锦标赛正式启动

小程序毕设作品之微信校园维修报修小程序毕业设计成品(4)开题报告

聊聊sql优化的15个小技巧

How to ensure the consistency of double write between database and cache?

【HDLBits 刷题】Verilog Language(3)Modules: Hierarchy 部分

乐理基础 调式

Alibaba cloud free SSL certificate application detailed process
随机推荐
Youfu network was invited to attend the 2022 national CIO conference and won the title of "CIO trusted brand"
英诚医院内部网络规划与设计
[reading notes] deep learning Chapter 1: Introduction
JS 基本类型 引用类型 深/浅克隆复制
Huawei recruited "talented teenagers" twice this year; 5.4 million twitter account information was leaked, with a selling price of $30000; Google fired engineers who believed in AI consciousness | gee
Network packet multi-layer transmission demonstration
485 current acquisition module dam-8041
[Detr for 3D object detection] detr3d: 3D object detection from multi view images via 3D-to-2D queries
CLIP还能做分割任务?哥廷根大学提出一个使用文本和图像prompt,能同时作三个分割任务的模型CLIPSeg,榨干CLIP能力...
李宏毅《机器学习》丨1. Introduction of this course(机器学习介绍)
微信小程序 27 进度条的动态实现和搜索框、热搜榜的静态搭建
【小程序开发】常用组件及基本使用详解
Pymoo learning (5): convergence analysis
Internal network planning and design of Yingcheng hospital
聊聊sql优化的15个小技巧
Pymoo learning (6): termination conditions
[Detr for 3D object detection] 3detr: an end to end transformer model for 3D object detection
【小程序开发】你了解小程序开发吗?
Juzhi cloud computing opens a new era to the "proprietary cloud" of Youfu network
kubernetes RBAC