1NDEX

  • 0x00 前言
    • 小tips
  • 0x01 复现
    • 关于00截断的题外话
  • 0x02 Rethink

0x00 前言

点图片时看到url有变动
直觉觉得像文件包含

协议流读一下
册 还真是

贴一下php源码

 <?php$file = $_GET['category'];if(isset($file)){if( strpos( $file, "woofers" ) !==  false || strpos( $file, "meowers" ) !==  false || strpos( $file, "index")){include ($file . '.php');}else{echo "Sorry, we currently only support woofers and meowers.";}}?>

试一下flag.php
真有

想方设法包含一下
本来还想通过花里胡哨的操作把马放上去
试了一下data,发现这个wrapper被禁了…谢特
远程文件包含也被禁了

小tips

strpos( $file, "meowers" ) !==  false || strpos( $file, "index")

前后两个判断其实还不太一样
看一下strpos函数

strpos() 函数查找字符串在另一字符串中第一次出现的位置。
返回字符串在另一字符串中第一次出现的位置,如果没有找到字符串则返回 FALSE。
注释:字符串位置从 0 开始,不是从 1 开始。

所以前面meowers只要求出现就行
而后面的index是要求出现在非首位的位置
否则 strpos($file,“index”)返回int(0) 判断也过不去

0x01 复现

老实看wp
原来php://filter还能自己套协议呢
poc

php://filter/convert.base64-encode/index/resource=flag

/index/是加上去凑条件过判断的
可以发现当php定位不到我们自己加的filter时会报warning
但并没有影响执行,学到了!

还看到有师傅有相对路径做的
好巧妙
相对路径计算时中间目录不存在并不影响

php://filter/read=convert.base64-encode/resource=woofers/../flag

题目就这样done了!

关于00截断的题外话

but 其实我一开始想用00截断做的
属实是学艺不精了…搜了一下才知道他对php版本要求比较低
(PS:网上很多文章都说版本低于5.3.4,我实测5.3.29都不行!踩坑好久!自己试5.2.x才可以,后面看文章推测应该是5.3.24以前)
那句话咋说…实践是检验真理的唯一标准蛤
但是呢我看到它的报错就比较疑惑
明明存在flag.php这个文件
他居然报错fail opening ‘flag.php’

然后找到一篇醍醐灌顶的源码级理解
师傅tql

https://blog.csdn.net/zhangzhuangtongxue/article/details/78198191

以下截取文章

也就是说当比较时发现长度不一样(存在截断字符串)时会直接输出报错信息
也可以推测出5.3.24之前的php版本都适用00截断了嗝~

0x02 Rethink

刷点前面的题找找自信
快被打自闭了

[BSidesCF 2020]Had a bad day -- 关于00截断的衍生相关推荐

  1. BUUCTF WEB [BSidesCF 2020]Had a bad day

    BUUCTF WEB [BSidesCF 2020]Had a bad day index.php?category=woofers' 报错 Warning: include(woofers'.php ...

  2. [BSidesCF 2020]Had a bad day

    [BSidesCF 2020]Had a bad day 界面就给了俩选项,网页源码也没啥东西,随便点一个选项,也看起来没啥用 但是点了后发现可能是sql,但是sql试过了不行 这个页面源码有个ind ...

  3. BUUCTF Web [BSidesCF 2020]Had a bad day1

    [BSidesCF 2020]Had a bad day1 启动靶机,打开burp,点击WOOFERS抓包 可以看到请求中有个meowers的参数,在后面加个'测试 通过报错信息可以看出,catego ...

  4. BUUCTF:[BSidesCF 2020]Had a bad day

    BUUCTF:[BSidesCF 2020]Had a bad day 可能存在SQL注入或者文件包含,在我尝试读取index.php源码的时候出现了报错信息 的确是文件包含,但是有index.php ...

  5. buu做题笔记——[WUSTCTF2020]朴实无华[BSidesCF 2020]Had a bad day

    BUU [WUSTCTF2020]朴实无华 robots.txt response level 1 level 2 level 3 [BSidesCF 2020]Had a bad day [WUST ...

  6. BUUCTF [BSidesCF 2020] Had a bad day

    BUUCTF [BSidesCF 2020] Had a bad day 考点: php伪协议嵌套 启动环境: 其中包含两个按钮,选择猫和狗的图片: 此时的URL变为: http://xxx/inde ...

  7. 00截断上传绕过_【文件上传与解析】文件上传与解析漏洞总结v1.0

    点击上方"公众号" 可以订阅哦! Hello,各位小伙伴晚上好~ 这里是依旧勤劳写公众号的小编~ 今天本公众号将推出一个新的模块,那就是漏洞知识点总结模块!!!(此处应有掌声~) ...

  8. php5.5 反序列化利用工具_%00截断配合反序列化的奇妙利用

    文章来源:安全客 原文链接:%00截断配合反序列化的奇妙利用 - 安全客,安全资讯平台 前言 前段时间做了一个CTF题目,发现这道题目相当的精妙,主要是利用了%00的截断来绕过安全校验,最终利用反序列 ...

  9. 00截断上传绕过_关于上传中的00截断分析

    关于上传中00截断的细节,很多朋友在渗透中都会发现一些这样的有趣现象,这个站点使用00截断上传的方法上传成功了,而换一个站点又失败了,这是什么原因呢?你看了这篇文章就会明白. 00截断原理 0x00是 ...

最新文章

  1. Python--面向对象之组合
  2. [04-05]box框模型(Box Model)定义了元素框处理元素内容、内边距、边框和外边距的方式...
  3. 流操作中的noException
  4. 大数据技术之kafka (第 3 章 Kafka 架构深入) 分区策略在分析
  5. MacVim配置目录树
  6. hadoop集群安装配置
  7. dlib+OpenCV实现人脸登录系统
  8. mac perl dbd mysql_Install DBD::mysql for Perl in XAMPP in Mac , solving errors
  9. 固定资产中计算机软件类型,固定资产国标分类1.doc
  10. vtkdelaunay3d的参数设置_VTK 渲染体数据并加方位标注
  11. KinhDown(度盘PC下载器)
  12. camera link心得
  13. 谷歌地图,计算两个坐标点之间的距离
  14. 【基础入门题031】三色球问题
  15. 编译LineageOS
  16. 潘多拉-视频播放器,一个轻量的视频播放器
  17. 中国香水市场深度调查研究报告
  18. iOS-常见三种加密(MD5、非对称加密,对称加密)
  19. 数据结构实战(十)——家谱管理系统
  20. HTML基础学习记录

热门文章

  1. Java-java中冒号(:)的用法
  2. OpenSuse常用命令操作笔记
  3. 【每日一题】输入年限返回现存猪的数量
  4. 吴洪声十问TapTap黄一孟:跟着你的兄弟们赚钱了吗?
  5. 强烈安利!GitHub下载加速神器,简单方便,非常好用!!!
  6. java第七封印游戏_《第七封印》游戏攻略
  7. 论文写作课程学习总结
  8. 刚毕业入职一个多月就被裁,赔偿半个月工资两万四!
  9. 【Java】Java并发编程
  10. 年薪中位数超30万,南大AI专业首届毕业生薪资曝光