最近事是真的多,之前做的题的wp到了现在才写,咸鱼了.............
拐弯抹角
这道题进去就看见源码,没错了,就是代码审计啊啊啊啊啊
题不难,但是确实有学习意义,就贴一贴
 <?php
// code by SEC@USTCecho '<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>'; 
题目本身解释也挺详细的,不介绍了,看了真的是内心万马奔腾啊.......
据说考到了伪静态,就是在一个url后面带上一堆的参数,然后还要弄得很规矩的样子
payload如下
http://ctf5.shiyanbar.com/indirection/index.php/lll/index.php
然后他就会把第一个index.php后面的所有东西都解析为值,lll是键名,然后index.php是键值
这道题看到大佬们还有另一个做法,就是直接在后面加多一个index.php
-----------------------------------------------
FALSE
进去就叫你登录,然后还贴出后台源码
<?php
if (isset($_GET['name']) and isset($_GET['password'])) {if ($_GET['name'] == $_GET['password'])echo '<p>Your password can not be your name!</p>';else if (sha1($_GET['name']) === sha1($_GET['password']))die('Flag: '.$flag);elseecho '<p>Invalid password.</p>';
}
else{echo '<p>Login first!</p>';
?>
大概意思就是输入两个值,然后如果这两个值的sha1相等,就把flag拿出来
sha1只能处理字符串,如果传个数组进去就会报错返回false,那么问题就很简单了,只要传过去两个数组就能绕过了
payload
http://ctf5.shiyanbar.com/web/false.php?name[]=&password[]=1

拐弯抹角FALSE-实验吧相关推荐

  1. Python实验及注意点总结

    第一次上机 实验一 # 随机生成两个小于100的整数,打印其中一个数的数据类型和存储地址, 求这两个数的和.差.积.商.幂运算. import randomx = random.randint(1, ...

  2. 可视化文本数据—词云

    "词云"这个概念由美国西北大学新闻学副教授.新媒体专业主任里奇·戈登(Rich Gordon)于提出,词云是一种可视化描绘单词或词语出现在文本数据中频率的方式,它主要是由随机分布在 ...

  3. hasattr判断是不是可迭代类型的方法

    实验一.print(hasattr(1,"len")) print(hasattr(list,"len")) print(hasattr("dddd& ...

  4. IOC容器和Bean的配置实例

    实验1: <!--实验1:通过IOC容器创建对象,并为属性赋值 --> <!-- 需要由IOC容器创建对象的全类名 --> <!-- 为了便于从IOC容器中获取book对 ...

  5. spark 写本地文件_(纯干货建议收藏)一次GC引发的Spark调优大全

    上一篇Tungsten On Spark-内存模型设计总结了Spark内存设计相关的知识点,本篇会快速为读者复习一下JVM相关的知识点,然后基于线上的GC调优对spark整体的调优做一个汇总,希望能让 ...

  6. es 创建索引_es的基本原理和操作文档

    来源:https://blog.csdn.net/wanbf123/article/details/81504097 一.背景知识 1.搜索的分类 我们想要寻找某些信息的时候,一般会直接去百度.谷歌. ...

  7. python3、pycharm的安装以及python基本语法

    一.python的安装和环境编译 1.先下载安装包,可以去官网下载源码安装包,并进行解压 2.解决编译过程中需要的依赖包:gcc.zlib.zlib-devel.openssl-devel yum i ...

  8. torch.Tensor.requires_grad属性的使用说明

    参考链接: torch.Tensor.requires_grad 原文及翻译: requires_grad() 方法: requires_grad()Is True if gradients need ...

  9. Android热修复之Tinker集成最新详解

    前言 该文章属于初级集成详解,侧重Tinker的使用,如若想深入了解其原理请自行查阅相关文档Tinker相关文档 当前市面的热补丁方案有很多,其中比较出名的有阿里的 AndFix.美团的 Robust ...

  10. Android 集成Thinker 教程

    集成地址:https://blog.csdn.net/Blog_Sun/article/details/88035496 thinker 后台地址: http://www.tinkerpatch.co ...

最新文章

  1. linux下java调用matlab程序,linux_java调用windows_matlab程序
  2. wechall.net/stegano 解题心得
  3. [云炬Mysql数据库笔记] 第2章 数据库设计
  4. 06 使用VS2012开发简单控制器程序 1214
  5. OpenGL第六节:加载png图片
  6. 你看那个人他像一条狗
  7. python训练聊天机器人词库_[ ChatterBot聊天机器人 ] ChatterBot训练数据以及使用三方语料库训练数据 - pytorch中文网...
  8. 五笔字根表识别码图_五笔字根表键盘图下载|8698版五笔字根表键盘图高清大图_ - 极光下载站...
  9. week7-学习写技术交底书的所得
  10. 计算机考研408每日一题 day158
  11. [转]Oracle数据库逻辑增量备份之exp/imp
  12. 2021年系统架构设计师考试上午真题与答案
  13. 不用ps如何批量修改图片尺寸?教你一个方法
  14. 巴塞尔iii_巴塞尔协议——银行风控实施的超级系统工程 之二
  15. airvideo_如何免费获取Android中的AirVideo功能
  16. 关于线性空间和线性映射
  17. 如此美妙,Python 处理CSV、JSON和XML数据的方法真简便
  18. 使用阿里云服务器搭建代理服务器
  19. dvt高危患者的护理措施_DVT的预防措施
  20. C和C++中的register变量和volatile变量理解

热门文章

  1. 国内旅游网站排名以及各自的特色
  2. dart报错Invalid constant value
  3. 人工智能在苍蝇眼的帮助下监测无人机:新的仿生算法从噪声中提取信号
  4. x730服务器发布网站,仙居X730公路:山水仙居 美丽仙径
  5. 从足球两大类事件来说Map和Enum的巧妙
  6. 一分钟告诉你视频字幕翻译软件有哪些
  7. 初识Transact-SQL
  8. 不易发现的代码逻辑之外的错误
  9. ALLyeSNO优化版浩方 Ver:2007.06.13 呵呵今天整合出来的
  10. 从我写程序那天起:我就没有打算写程序