实验吧之【拐弯抹角】(url伪静态)
题目地址:http://ctf5.shiyanbar.com/indirection/
打开后给了源码
<?php // code by SEC@USTC echo '<html><head><meta http-equiv="charset" content="gbk"></head><body>'; $URL = $_SERVER['REQUEST_URI']; //echo 'URL: '.$URL.'<br/>'; $flag = "CTF{???}"; $code = str_replace($flag, 'CTF{???}', file_get_contents('./index.php')); $stop = 0; //这道题目本身也有教学的目的 //第一,我们可以构造 /indirection/a/../ /indirection/./ 等等这一类的 //所以,第一个要求就是不得出现 ./ if($flag && strpos($URL, './') !== FALSE){ $flag = ""; $stop = 1; //Pass } //第二,我们可以构造 \ 来代替被过滤的 / //所以,第二个要求就是不得出现 ../ if($flag && strpos($URL, '\\') !== FALSE){ $flag = ""; $stop = 2; //Pass } //第三,有的系统大小写通用,例如 indirectioN/ //你也可以用?和#等等的字符绕过,这需要统一解决 //所以,第三个要求对可以用的字符做了限制,a-z / 和 . $matches = array(); preg_match('/^([0-9a-z\/.]+)$/', $URL, $matches); if($flag && empty($matches) || $matches[1] != $URL){ $flag = ""; $stop = 3; //Pass } //第四,多个 / 也是可以的 //所以,第四个要求是不得出现 // if($flag && strpos($URL, '//') !== FALSE){ $flag = ""; $stop = 4; //Pass } //第五,显然加上index.php或者减去index.php都是可以的 //所以我们下一个要求就是必须包含/index.php,并且以此结尾 if($flag && substr($URL, -10) !== '/index.php'){ $flag = ""; $stop = 5; //Not Pass } //第六,我们知道在index.php后面加.也是可以的 //所以我们禁止p后面出现.这个符号 if($flag && strpos($URL, 'p.') !== FALSE){ $flag = ""; $stop = 6; //Not Pass } //第七,现在是最关键的时刻 //你的$URL必须与/indirection/index.php有所不同 if($flag && $URL == '/indirection/index.php'){ $flag = ""; $stop = 7; //Not Pass } if(!$stop) $stop = 8; echo 'Flag: '.$flag; echo '<hr />'; for($i = 1; $i < $stop; $i++) $code = str_replace('//Pass '.$i, '//Pass', $code); for(; $i < 8; $i++) $code = str_replace('//Pass '.$i, '//Not Pass', $code); echo highlight_string($code, TRUE); echo '</body></html>';
简单分析:
分7个步骤判断URL是否满足条件,如果不满足就把$flag弄掉,当你不满足条件就会看到Not Pass。
如果是正常访问,$URL = $_SERVER['REQUEST_URI']; 这里$URL一般会得到/indirection/或者/indirection/index.php
需要满足不能出现./、\、大写或者其他符号、//、p.,而且要求末尾是/index.php,这6个步骤对于/indirection/index.php都可以满足,但是最后一条又告知不能等于/indirection/index.php
这种其实就是伪静态技术(pseudo-static),又名URL重写(URL rewriting)。举个最简单的应用,例如你原本想弄的是index.php?id=123,但你想隐藏其真实的文件路径,你通过URL重写技术,可以达到访问test/123.html而实际上在访问index.php?id=123
这题的关键在于伪静态,比如url中含有xxxx.php/xx/x,那么.php后的xx就会被当成参数名,x会被当成参数
所以这里的payload可以这么构造:http://ctf5.shiyanbar.com/indirection/index.php/x/index.php
转载于:https://www.cnblogs.com/-qing-/p/11077437.html
实验吧之【拐弯抹角】(url伪静态)相关推荐
- 实验吧_拐弯抹角(url伪静态)Forms
拐弯抹角 先贴代码 1 <?php 2 // code by SEC@USTC 3 4 echo '<html><head><meta http-equiv=&qu ...
- #实验吧整理#拐弯抹角小结
题目地址:实验吧:拐弯抹角 知识点 伪静态:参考资料 关于绕过构造: 构造 /indirection/a/-/ /indirection/./ 构造 \ 来代替被过滤的 / 有的系统大小写通用,可以尝 ...
- ThinkPHP下隐藏index.php以及URL伪静态
第一种方法: 设置url的重写模式(默认模式是1) 'URL_MODEL' => 2, // URL访问模式,可选参数0.1.2.3,代表以下四种模式: 第二种方法: 使用Apache来进行设 ...
- TP3.2设置URL伪静态满足更好的SEO效果
URL伪静态通常是为了满足更好的SEO效果,ThinkPHP支持伪静态URL设置,可以通过设置URL_HTML_SUFFIX参数随意在URL的最后增加你想要的静态后缀,而不会影响当前操作的正常执行. ...
- Struts2实现URL伪静态
Struts2.ssh实现url伪静态步骤: 依赖jar:urlrewrite-3.2.0.jar 第一步:在WEB-INF下新建urlrewrite.xml文件 第二步:配置web.xml文件,注意 ...
- SEO之基于thinkphp的URL伪静态
最近基于thinkphp开发了个导购网站,现在有时间,将遇到的伪静态问题整理下,与大家分享. 1.设置URL伪静态 在config.ini.php中设置,如果只想前台URL伪静态,那么只在前台的con ...
- phpcms wap端和pc端 url伪静态
下载地址: https://download.csdn.net/download/qq_39161501/12320196 linux服务器下使用.htaccess.windows服务器下使用we ...
- YII 开启URL伪静态方法(yii中urlManager匹配和注意点)
Yii高性能PHP框架 Yii Framework是一个基于组件.用于开发大型 Web 应用的高性能 PHP 框架.Yii提供了今日Web 2.0应用开发所需要的几乎一切功能.Yii是最有效率的PHP ...
- iis搭建php出现301,IIS下万能301跳转方法:URL伪静态重写+PHP301
核心提示:大家也通常会在不同情况下有不同的301重定向需求,如要将不带www的域名301到带www的域名.将闲置老域名301到主域名.将原放在子目录下的论坛301到新的bbs二级域名.更换域名将某域名 ...
最新文章
- 调试H3C MSR 20-20 PPPOE拨号
- JQUERY的父,子,兄弟节点查找方法
- Qt 原理-MOC(3) 对象模型
- 处理时间_6_SQL Server常见的时间格式转换
- CoreAnimation编程指南(七)图层Action
- 网络与并行计算机,并行计算机系统结构网络版 白中英,杨旭东编著.pdf
- 机器学习中树模型算法总结之 决策树(下)
- MySQL---主从复制
- php九九乘法表带表格,九九乘法表打印(js打印九九乘法表用表格显示)
- Kali linux安装拼音、双拼、五笔拼音输入法:fcitx-table-wbpy中文输入法步骤详解
- pipeline离线安装
- 分布式事务--TX-LCN(介绍)
- 18北大考研经验贴汇总
- BBEdit 12.6.3 FIXED 特别版 Mac 强大的文本和HTML编辑器及汉化工具
- 手机的发展史,手机未来的发展趋势
- 如何针对数据中心进行安全疏散和消防应急管理
- Android 7.0新特性——依然范特西
- 解决远古VOD注入漏洞
- 计算机网络要点归纳(一文带你快速掌握网络知识)
- 计算机等级一考通2021,驾校驾考一点通2021最新版电脑版
热门文章
- [转]关于openstack的一些废话(非技术)
- 读完《人类简史》的感受
- 亲测好用的系统维护工具:System Toolkit for Mac中文版
- u盘安装LINUX键盘失灵,U盘启动键盘失灵怎么办?u盘启动键盘无法选择PE处理方法...
- STM32F0 使用ST-LINK实现对外部Flash芯片的烧录
- linux定时备份网站发布目录,Linux 定时备份网站文件至七牛云存储 | 厘米天空
- 分布式消息队列RocketMQ工作原理与应用(一)
- 双电阻差分电流采样_模拟电路-差分放大电路
- 修改readonly属性的值
- 盘点一些惊世骇俗的壁纸网站!多年珍藏干货!