CTF实战训练日志——2021-10-14(二)

题目:正则?绕过?

在这里插入图片描述

分析

preg_match (要搜索的模式,字符串,参数) 在字符串里搜索符合 要搜索的模式 的字符,并返回给参数。
trim(字符串,字符) 移除字符串两侧的空白字符或其他预定义字符

移除字符串两侧的空格:

<?php $str = " Hello World! "; echo "不使用 trim: " . $str; echo "
"; echo "使用 trim: " . trim($str); ?>

正则表达式

【.】 匹配除 “\n” 之外的任何单个字符

【*】 匹配它前面的表达式0次或多次,等价于{0,}

{4,7} 最少匹配 4 次且最多匹配 7 次,结合前面的 . 也就是匹配 4 到 7 个任意字符

/ 匹配 / ,这里的 \ 是为了转义

[a-z] 匹配所有小写字母

[:punct:] 匹配任何标点符号

/i 表示不分大小写

“/key.*key.{4,7}key:/./(.*key)[a-z][[:punct:]]/i”

一、先看最外边的//i,//代表定界符,你限定的条件都在这个定界符里面,i是不区分大小写

二、来看 /key 首先就是得有key这三个字母,不一定是一开始就是key ?id=key

三、 /key.* 这里的.是可以匹配任何字符,所以你随便打个就行,我这里打的a,又因为后边有个 *(匹配前边的字母0次或者多次),所以你可以继续多打几个啊或者不打 ?id=keyltz

四、/key.*key, 继续分析,多加了个key, ?id=keyltzkey,继续往后 /key.*key.{4,7} 代表任意匹配一个字符并且出现4-7次,那就打四个a好了 (这个只要是有4个到7个重复字母就行) ?id=keyltzkeyllll

五、/key.*key.{4,7}key: 加上 key: ?id=keyltzkeyllllkey:

六、/key.*key.{4,7}key:/./ \代表了转义,所以/不在代表了界定符,直接看成/./ 所以/l/即可, ?id=keyltzkeyllllkey:/l/

七、/key.*key.{4,7}key:/./(.*key)[a-z][[:punct:]] (.*key) => akey [a-z]代表随便一个小写字母,a就可以,后边那个是标点符号,比如, ?id=keyltzkeyllllkey:/l/lkeyl,

构造URL

http://www.czlgjbbq.top/GJCTF/re_getflag.php/?key=keyltzkeylllllkey:/l/fkeyl,

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码爱撞墙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值