Bugku-字符?正则?

OnionT@KillBoy
OnionT@KillBoy
作者
47
文章
0
粉丝
渗透测试297,255字数 238阅读0分47秒阅读模式
AI智能摘要
你是否以为这只是道简单的正则题?真相远比代码更烧脑。一道CTF经典题目,表面考察PHP的`preg_match`函数,实则暗藏逻辑陷阱与多重解法。只需构造特定URL参数,触发正则匹配,就能爆出flag——但payload的组合方式竟有成百上千种!本文带你逆向剖析这行诡异正则:`/key.*key.{4,7}key://.//(.*key)[a-z][[:punct:]]/i`,看透字符背后的匹配逻辑,掌握CTF中正则绕过的核心技巧。
— AI 生成的文章内容摘要

这道题挺没意思的,就是考察正则,还有PHP preg_match函数的作用,好,我们开始
打开页面一堆代码提示,进行分析:

<?php  highlight_file('2.php'); //高亮,没有什么好说的 $key='KEY{********************************}'; //千万不要以为这就是PHP源代码,这个只是提示你,flag在$key里面 //preg_match 相当于一个匹配搜索的函数,preg_match (这里写正则、这里是待匹配的内容、这里是匹配的结果)  //这里就是要让$IM有值,也即是TRUE,然后让下面的if语句能够成功执行,就能拿到flag $IM= preg_match("/key.*key.{4,7}key://.//(.*key)[a-z][[:punct:]]/i", trim($_GET["id"]), $match); if( $IM ){    die('key is: '.$key); } ?> 

正则这里自己去恶补,不解释,这个题可以构造的payload实在是太多了,我这里就随便写一个
payload:http://123.206.87.240:8002/web10/?id=key123key1234key:/1/123keya-
然后成功拿到flag。。。
Bugku-字符?正则?

http://www.oniont.cn/index.php/archives/100.html

 
OnionT@KillBoy
评论  29  访客  29
    • 窗边的猫
      窗边的猫 0

      正则题真的挺烦的,完全看不懂

      • 啵啵金鱼
        啵啵金鱼 0

        key123key1234key:/1/123keya- 这个payload确实可以

          • Zoe梦
            Zoe梦 0

            @ 啵啵金鱼 payload能用就行呗,搞那么明白干嘛

          • 无敌小旋风
            无敌小旋风 0

            有更简单的解法吗?

              • 闪电侠巴里
                闪电侠巴里 1

                @ 无敌小旋风 其实可以简化成key.*?key.{4,7}key://.//.*?key[a-z][[:punct:]],不用那么死板

              • RagingTide
                RagingTide 1

                之前做CTF也被正则坑过😭

                  • 御风者
                    御风者 0

                    @ RagingTide 同被正则虐过,上次卡了整整一晚上才跑通😭

                  • 酒旗儿
                    酒旗儿 0

                    这题出的水平不行

                    • 灵界漫游
                      灵界漫游 0

                      php的preg_match函数用起来真别扭

                      • 杏花村
                        杏花村 1

                        图片里的代码能看清吗?

                        • 老歌行者
                          老歌行者 0

                          搞了半天原来是这么匹配的

                          • 暗黑咏叹者
                            暗黑咏叹者 0

                            这种题做多了头疼

                            • 烈焰预言家
                              烈焰预言家 0

                              为啥要用这么复杂的正则啊

                                • 虚拟建筑师
                                  虚拟建筑师 0

                                  @ 烈焰预言家 这正则写得也太绕了吧,看得头大

                                • 落笔成霜
                                  落笔成霜 0

                                  payload试了下真能用,不过flag格式有点怪

                                  • TitanSpark
                                    TitanSpark 1

                                    正则这题感觉像拼运气,调payload比写逻辑还累

                                    • 摄影迷
                                      摄影迷 0

                                      又是这种靠猜的题,出题人是不是觉得正则人人精通啊?

                                      • 虚空流浪者
                                        虚空流浪者 0

                                        我直接复制payload跑通了,但根本没懂匹配逻辑😂

                                        • 薄荷清香
                                          薄荷清香 1

                                          preg_match默认只匹配一次,这里其实有坑吧

                                          • 旧时光廊
                                            旧时光廊 0

                                            感觉这题就是在考谁更会试错,不是考技术

                                            • 铁血狼
                                              铁血狼 0

                                              key后面跟的字符长度限制太模糊了,试到吐

                                              • Ethan墨
                                                Ethan墨 1

                                                正则里那个[:punct:]到底包含哪些符号?有人列一下吗?

                                                • 雪落青衫
                                                  雪落青衫 1

                                                  那个[:punct:]具体包含啥符号啊,有人说说嘛

                                                  • 暴躁的仙人掌
                                                    暴躁的仙人掌 0

                                                    试了几次都失败了,谁给个更明确的payload😭

                                                    • 黑暗编织者
                                                      黑暗编织者 0

                                                      这正则也太长了吧,看着就头大

                                                      • 长风
                                                        长风 0

                                                        直接复制楼主的payload过了,但完全不明白为啥匹配上了

                                                        • 夜魇眷属者
                                                          夜魇眷属者 0

                                                          之前也被正则题卡过,一模一样的感觉,就是硬试

                                                          • 慢节奏生活
                                                            慢节奏生活 1

                                                            key123key1234key:/1/123keya- 这个有效,亲测

                                                          匿名

                                                          发表评论

                                                          匿名网友

                                                          拖动滑块以完成验证