ctf-web-No one knows regex better than me
题目
打开题目所给链接直接看到一串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相关推荐
- BugKu CTF Web
BugKu CTF Web 滑稽 计算器 GET POST Simple_SSTI_1 矛盾 eval 变量1 Simple_SSTI_2 alert 你必须让他停下 方法一 方法二 方法三 网站被黑 ...
- ctf web必备工具_设计人员和开发人员的必备Web工具和服务
ctf web必备工具 I cannot imagine that in 2018 there are people who don't use daily several web tools and ...
- CTF Web入门 命令执行 笔记
CTF Web入门 命令执行 eval(读取命令),但各种字符被ban if(!pregmatch("...",$c)) #指过滤了...eval($c); 这时候可以尝试 ?c= ...
- CTF Web方向考点总结
CTF Web 0X00 前言 做题已经快四个月了,接触了大大小小的题型,收藏的大师傅们的解题思路.题型总结的博客已经很多了,每次都要一个一个翻很麻烦,于是写下了这一个总结,实际上是把各大博客内容汇总 ...
- CTF——web个人总结
CTF web个人总结 仅供个人参考 从0开始接触到了CTF,算是入门了,为了方便自己做题,现在记录一下web类型题目的解题思路. 目录 CTF web个人总结 工具(含后渗透) 解题思路 一.普通思 ...
- CTF Web学习(三)----python脚本的编写及应用
CTF Web学习(三) python脚本的编写及应用 CTF Web学习目录链接 CTF Web学习(一):基础篇及头文件修改.隐藏 CTF Web学习(二):代码审计.burp suite应用 C ...
- 从0到1学习CTF WEB
从0到1学习CTF WEB web前置技能 信息泄漏 密码口令 SQL注入 基础比较薄弱,准备逐题刷CTFHub的web类型题目顺便学习一下web方面的安全知识. web前置技能 1.请求方式: 隐藏 ...
- CTF——Web网站备份源码泄露
CTF--Web网站备份源码泄露 当遇到提示说到备份时,应该敏感地想到这是需要用到网站备份文件源码的. 一般这类题是和代码审计一起出的,一般都是需要获取到备份文件然后进行分析.下面就介绍一下网站备份的 ...
- CG CTF WEB SQL注入2
http://4.chinalover.sinaapp.com/web6/index.php 题解: <html> <head> Secure Web Login II < ...
- CG CTF WEB SQL注入1
http://chinalover.sinaapp.com/index.php 题解: <html> <head> Secure Web Login </head> ...
最新文章
- ThinkPHP 目录结构
- 30行Python代码来绘制一个微信图标
- Golang 项目布局浅析
- php生成迷宫和迷宫寻址算法实例
- 网页类型定义DOCTYPE
- php 初始化model,TP5 model类研究
- Mybaties入门介绍
- CSS(刷漆)学习总结
- Javascript注释规范
- YOLO v2算法详解
- OA系统如何助力企业行政管理?
- Heartbeat简介
- FFmpeg指令行打开usb摄像头(windows)
- linux-网络安全防火墙
- 大恒相机开发(大恒SDK+opencv开发)笔记1
- 【VS2022引用其他项目的.cs文件】
- js 获取vue组件html_vue项目中,index.html数据与组件之间通信,传值,以获取MAC地址为例...
- 改改host,轻松登录dropbox!(For Windows)
- 犬夜叉日本漫画Mac动态壁纸
- 孝经白话:三才章第七
热门文章
- 从键盘输入10个正负相间的整数,输出个位数是奇数、十位数是偶数的所有数。
- RedHat Linux 9.0系统的安装(图文并茂) 下载地址在最后面
- Markdown使用(有道云笔记)
- 串口通信基础(二)——传输方式(方向)、错误校验、传输速率与传输距离
- Android 高仿微信头像截取 打造不一样的自定义控件
- 试论我国农村剩余劳动力的转移
- 【技术科普一】什么是石墨烯技术?
- 已知两点求直线一般方程,已知三点求平面一般方程
- 这份Java Web必读书单,值得所有Java工程师一看!
- c语言 [Error] expected declaration or statement at end of input的解决方法