题目

打开题目所给链接直接看到一串php代码,将其复制下来分析:

可以看出,flag似乎隐藏在flag.php的文档里,需要调用highlight_file()函数来显示

这串代码种考察了php正则表达式的应用,preg_match('ppp',string)和preg_match_all('ppppp',string)都是正则表达式的匹配函数

正则表达式表现形式:类似‘/php/’,即字符串前后加上两条斜杠即可

其中'|'表示左边或者右边匹配任一字符串即可

'/..../i'其中'i'是修饰符,表示匹配不区分大小写

因此若要实现highlight_file(flag.php),需要使得

$zero=base64.encode('flag')='ZmxhZw==',

$end='.php'

从而需要使得$third满足:

1、匹配正则表达式:'/\\|\056\160\150\x70/i',即$third内包含字符串"\|.php",\这里表示特殊字符

2、$third自第五位(不包括第五位)往后的字符串是".php"

根据判断条件

if(preg_match("/\.\.|flag/",$key)){die("Noooood hacker!");}else{$third=$first;
...

可知,$first需要满足以上两个条件,并$key不能与'/\.\.|flag/'匹配,相当于$key中不能包含字符串".."与"flag",又由于知道$key=$second=$zero.$first,根据第一个判断条件

if(preg_match_all("/Yeedo|wants|a|girl|friend|or|a|flag/i",$second)){$key=$second;...
}
else
{highlight_file(__FILE__);
}

可以得出,需要满足判断条件,即需要使得$second包含Yeedo|wants|a|girl|friend|or|a|flag中的任意字符串;

已知$zero=ZmxhZw== ,$first满足以上两个条件

$second=$zero.$first="ZmxhZw==".$first要满足:

1、包含Yeedo|wants|a|girl|friend|or|a|flag中的任意字符串;

2、不包含字符串".."和"flag";

3、$first内包含字符串"\|.php",\这里表示特殊字符;

4、$first自第五位(不包括第五位)往后的字符串是".php"。

可以使得$first=or??|.php,此时将满足所有判断条件

即上传?zero=ZmxhZw==&first=or??|.php可以得到最终结果

ctf-web-No one knows regex better than me相关推荐

  1. BugKu CTF Web

    BugKu CTF Web 滑稽 计算器 GET POST Simple_SSTI_1 矛盾 eval 变量1 Simple_SSTI_2 alert 你必须让他停下 方法一 方法二 方法三 网站被黑 ...

  2. ctf web必备工具_设计人员和开发人员的必备Web工具和服务

    ctf web必备工具 I cannot imagine that in 2018 there are people who don't use daily several web tools and ...

  3. CTF Web入门 命令执行 笔记

    CTF Web入门 命令执行 eval(读取命令),但各种字符被ban if(!pregmatch("...",$c)) #指过滤了...eval($c); 这时候可以尝试 ?c= ...

  4. CTF Web方向考点总结

    CTF Web 0X00 前言 做题已经快四个月了,接触了大大小小的题型,收藏的大师傅们的解题思路.题型总结的博客已经很多了,每次都要一个一个翻很麻烦,于是写下了这一个总结,实际上是把各大博客内容汇总 ...

  5. CTF——web个人总结

    CTF web个人总结 仅供个人参考 从0开始接触到了CTF,算是入门了,为了方便自己做题,现在记录一下web类型题目的解题思路. 目录 CTF web个人总结 工具(含后渗透) 解题思路 一.普通思 ...

  6. CTF Web学习(三)----python脚本的编写及应用

    CTF Web学习(三) python脚本的编写及应用 CTF Web学习目录链接 CTF Web学习(一):基础篇及头文件修改.隐藏 CTF Web学习(二):代码审计.burp suite应用 C ...

  7. 从0到1学习CTF WEB

    从0到1学习CTF WEB web前置技能 信息泄漏 密码口令 SQL注入 基础比较薄弱,准备逐题刷CTFHub的web类型题目顺便学习一下web方面的安全知识. web前置技能 1.请求方式: 隐藏 ...

  8. CTF——Web网站备份源码泄露

    CTF--Web网站备份源码泄露 当遇到提示说到备份时,应该敏感地想到这是需要用到网站备份文件源码的. 一般这类题是和代码审计一起出的,一般都是需要获取到备份文件然后进行分析.下面就介绍一下网站备份的 ...

  9. CG CTF WEB SQL注入2

    http://4.chinalover.sinaapp.com/web6/index.php 题解: <html> <head> Secure Web Login II < ...

  10. CG CTF WEB SQL注入1

    http://chinalover.sinaapp.com/index.php 题解: <html> <head> Secure Web Login </head> ...

最新文章

  1. ThinkPHP 目录结构
  2. 30行Python代码来绘制一个微信图标
  3. Golang 项目布局浅析
  4. php生成迷宫和迷宫寻址算法实例
  5. 网页类型定义DOCTYPE
  6. php 初始化model,TP5 model类研究
  7. Mybaties入门介绍
  8. CSS(刷漆)学习总结
  9. Javascript注释规范
  10. YOLO v2算法详解
  11. OA系统如何助力企业行政管理?
  12. Heartbeat简介
  13. FFmpeg指令行打开usb摄像头(windows)
  14. linux-网络安全防火墙
  15. 大恒相机开发(大恒SDK+opencv开发)笔记1
  16. 【VS2022引用其他项目的.cs文件】
  17. js 获取vue组件html_vue项目中,index.html数据与组件之间通信,传值,以获取MAC地址为例...
  18. 改改host,轻松登录dropbox!(For Windows)
  19. 犬夜叉日本漫画Mac动态壁纸
  20. 孝经白话:三才章第七

热门文章

  1. 从键盘输入10个正负相间的整数,输出个位数是奇数、十位数是偶数的所有数。
  2. RedHat Linux 9.0系统的安装(图文并茂) 下载地址在最后面
  3. Markdown使用(有道云笔记)
  4. 串口通信基础(二)——传输方式(方向)、错误校验、传输速率与传输距离
  5. Android 高仿微信头像截取 打造不一样的自定义控件
  6. 试论我国农村剩余劳动力的转移
  7. 【技术科普一】什么是石墨烯技术?
  8. 已知两点求直线一般方程,已知三点求平面一般方程
  9. 这份Java Web必读书单,值得所有Java工程师一看!
  10. c语言 [Error] expected declaration or statement at end of input的解决方法