当前位置: 首页 > article >正文

No one knows regex better than me

 No one knows regex better than me

代码分析,传了两个参数zero,first,然后$second对两个所传的参数进行了拼接

好比:?zero=1&first=2

传入后就是: 12

然后对$second进行了正则匹配,匹配所传入的参数是否包含字符串Yeedo|wants|a|girl|friend|or|a|flag且忽略字母大小,如果匹配到了字符串就会继续执行,且$key=$second,再对$key进行了匹配,如果匹配到了..和flag就会输出Noooood hacker!,且代码结束执行。

反之,如果没有匹配到..和flag就会把$third赋值为$first;同时对$third进行匹配,检查 $third 是否包含以下字符或字符串(忽略大小写):

|

\\(反斜杠)

.(点号,由 ASCII 编码 \056 表示)

php(由 ASCII 编码 \160\150\x70 表示)

如果匹配到了,就会继续执行$end=substr($third,5);

会把$third所传入的参数从第5个进行截取,也就是说,当传入Yeedols时会截取为ls;

接着会高亮显示base64_decode($zero).$end的内容

那么是不是base64_decode($zero).$end的内容就可以是一个文件名,题目提示了flag.php,

那么是不是就可以highlight(flag.php);这样就可以高亮显示flag.php文件的内容

但是不能够有flag字符串,利用到base64_decode($zero)#注:decode是解码,会把$zero的内容进行base64解码。

我们把flag进行base64编码,ZmxhZw==

构造:?zero=ZmxhZw==&first=

flag解决了,那么就差.php,对正则匹配进行绕过,首先含有字符串Yeedo|wants|a|girl|friend|or|a|flag;而且还要有

  • 反斜杠 \竖线 |
  • 点号 .
  • 字符串 php(不区分大小写)。

 如果传入Yeedo|wants|friend,那么截取后就不能够满足第二个匹配,flag又不能够存在

 剩下的就是a|girl|or|a

构造?zero=ZmxhZw==&first=girl|.php,这样就会截取为?zero=ZmxhZw==&first=.php

zero再通过base64解码就会成为flag,再经过拼接就是flag.php,这样就会高亮显示flag.php的内容

那么为什么不能够用反斜杠呢?

\.在传入后会进行转义,转义后\. 会被解释为字面上的点号。

同样不能使用点号,不然就会构成..,这是被正则匹配了的。

这个题的大体意思就是:高亮显示通过base64解码后的$zero和$end所拼接的内容(拼接后的就是文件名),这是漏洞的成因,然后对三次正则匹配进行绕过就可以。


http://www.kler.cn/a/500613.html

相关文章:

  • CES Asia 2025:VR/AR/XR引领科技新潮流
  • 深入Android架构(从线程到AIDL)_21 IPC的Proxy-Stub设计模式03
  • Elastic-Job相关
  • android 官网刷机和线刷
  • 计算机网络之---子网划分与IP地址
  • Unity连发功能实现逻辑
  • HTML-表单标签
  • 深入了解 NLTK:Python 的自然语言处理工具
  • 领域驱动设计 2
  • CDP中的Hive3之Hive Metastore(HMS)
  • 怎么用python写个唤醒睡眠电脑的脚本?
  • 音频调试———FM
  • Nginx支持UDP性能优化
  • PHP 使用 Redis
  • 代理模式详解与应用
  • 2025“华数杯”国际数学建模大赛A他能游得更快吗Can He Swim Faster(完整思路 模型 源代码 结果分享)
  • 使用Go语言的http.Transport进行SSL握手的方法与注意事项
  • Android使用系统消息与定时器实现霓虹灯效果
  • 3. 使用springboot做一个音乐播放器软件项目【封装项目使用的工具类】
  • golang中的eval,goeval,govaluate
  • 智能风控/数据分析 聚合 分组 连接
  • LeetCode-找出字符串中第一个匹配项的下标(028)
  • WPF控件Grid的布局和C1FlexGrid的多选应用
  • Golang笔记——channel
  • 软件系统分析与设计综合实践-家庭维修服务系统小程序(代码见附录,私发)