安全课复习(四)

正则表达式

  1. 定义:

    正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,简单来说, 是一种匹配字符串的方法,通过一些特殊符号,实现快速查找、删除、替换某个特定字符串。
    正则表达式一般用于脚本编程与文本编辑器中。如Perl、Linux 系统中常见的文本处理器(grep、egrep、sed、awk)。正则表达式具备很强大的文本匹配功能,能够在文本海洋中快速高效地处理文本
    在这里插入图片描述

    常用正则

    1,整数或者小数	
    	^[0-9]+\.{0,1}[0-9]{0,2}$
    2, 查询A-Za-z
     	^[A-Za-z]+$	
     3,test命令判断
     	[[expression]]
     	
     	if [[ -e  /var/html/demo.index]];then
     	echo " find demo.index";
     	fi
    4,转义的特殊字符$  *   ?  ^
    	\$  \*  \?  \^
    5,千分位  12345678 --> 12,345,678
    	'12345678'.replace(/\B(?=(\d{3})+)/g,function(){console.log(arguments);return '|'}) 
    	1. 匹配`\B`第1个非单词边界 `1`的右边位置,则后面(\d{3})+的结果为:234、567,后面跟着8,不匹
    	2. 匹配`\B`第2个非单词边界 `2`的右边位置,则后面(\d{3})+的结果为:345、678,后面跟着非数字,位置匹配成功
    	3. 匹配`\B`第3个非单词边界 `3`的右边位置,则后面(\d{3})+的结果为:456,后面跟着7、8不匹配
    	4. 匹配`\B`第4个非单词边界 `4`的右边位置,则后面(\d{3})+的结果为:567,后面跟着8,不匹配
    	5. 匹配`\B`第5个非单词边界 `5`的右边位置,则后面(\d{3})+的结果为:678,后面跟着非数字,位置匹配成功
    	6. 最终得到得到可插入逗号的位置为2,5	
    6,贪婪和非贪婪匹配
    	贪婪匹配:正则表达式中包含重复的限定符时,通常的行为是匹配尽可能多的字符。
    	非贪婪匹配:有时候需要匹配尽可能少的字符.
    7,回溯当前前面分支/重复匹配成功后,没有多余的文本可被正则后半部分匹配时,会产生回溯
    

绕过案例

  1. 案例一

在这里插入图片描述
如上图,确实可以绕过,但语法不对,会报错。
因为 mysql 支持科学计数法,就可以
select username,1e1from users;
1e1是科学计数法可以绕过 \b
在这里插入图片描述
由于1e1 查询的是两列,所以还是回报错.
mysql还有一种写法:group_concat(username,0x3a,password),1e1from user
在这里插入图片描述
password为10,因为1e1 为10

  1. 案例二在这里插入图片描述
    上述案例由于回溯限制 为100万次,然后就可以用PCRE回溯次数限制进行绕过
    在这里插入图片描述
    用python写一个脚本进行绕过,执行后会生成一个test.php的文件
    然后用postman测试一下,看是否绕过成功
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值