一、[ACTF2020 新生赛]Include

1.题目

2.解题步骤

点进去看了一下

根据题目猜测,应该是和php的文件包含漏洞有关…尝试了一下显示phpinfo,意料之中的失败了,看wp才了解到,这是一道伪协议的题目。然后翻了一下之前的博客,复制一下payload,成功解题。

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


3.总结
  1. 第二次做伪协议的题,只能说经验不足,没辨识出来,下次遇见类似这种?file=访问文件的题目时可以尝试。
4.参考资料
  • [BUUOJ记录] [ACTF2020 新生赛]Include - Ye’sBlog - 博客园

一、[GXYCTF2019]Ping Ping Ping

1.题目

2.解题步骤

一脸懵,试一下给ip送变量

是rce漏洞,但也有些关键字被过滤了


好想学会写脚本然后用脚本测试过滤了哪些…这里知道了漏洞类型,应该用穷举法测出哪些函数没有被过滤…出于懒惰还是看一眼wp吧…

是我败了,师傅的智慧果然是无穷的,直接读文件是我没想到的

(注: ls, cat是linux访问文件的命令)
看wp知道是因为空格被过滤了,师傅们使用的是${IFS}$绕过。系统自带的变量 $IFS 内部字段分隔符(Internal Field Separator, IFS)定义一个定界符,默认是空格。知道了原理,开始绕!

好↑的↓,是大括号被过滤了,师傅说改成$IFS$1…百度了半天不明白为什么要用$IFS$1


这里没访问到,师傅提示要访问index.php

爆出了源码,可以看到正则过滤了哪些内容。接下来有三种方法可以绕过。

  1. 变量拼接
 ?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php

大意是构造一个变量a=g,然后正则没有匹配到flag,就绕过了。这里需要注意的是正则的形式。index.php下的代码含义为匹配字符串,是否按顺序出现flag这四个字母。所以如果$a放在前面解析,就会直接出现了flag四个字母,只有放到最后一个,才会有效果。

  1. sh绕过
 ?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

sh和bash都是linux的shell的一种,二者语法可以兼容。index.php过滤了bash的命令,但是没有过滤sh的命令。把flag.php这几个字转码base64再转回,即可绕过。

  1. 内敛执行
?ip=127.0.0.1;cat$IFS$1`ls`

将反引号内命令的输出作为输入执行。所以这句话就变成了 cat index.php flag.php。就会把两个文件显示出来。

3.总结
  1. 第三道rce的题,感觉核心就是绕过。这道题教会了我空格的绕过和三种字符串的绕过。
  2. 又熟悉了一下linux的命令。像ls cat 还有bash,sh的概念等等。
  3. 正则真的好玄学…变量拼接想了好久为什么只有拼最后一个才能绕,这个匹配规则真有趣…
4.参考资料
  • 学习一个shell 变量$IFS - 快乐嘉年华 - 博客园
  • [GXYCTF2019]Ping Ping Ping - 王叹之 - 博客园
  • [GXYCTF2019]Ping Ping Ping(RCE)_xlcvv的博客-CSDN博客
  • Linux SHELL中sh和bash的区别 - 御用闲人 - 博客园
  • 命令执行漏洞利用及绕过方式总结 - ghtwf01 - Welcome to ghtwf01’s blog

CTF学习笔记——IncludePing Ping Ping相关推荐

  1. 合天每周CTF学习笔记 — 神奇的磁带

    这是真小白的第一次学习,做个笔记记录一下思路和辅助知识. 思路 整体思路是借助提供的提示和寻找隐藏的提示. 1.查看页面源码 根据实验指导书说明,首先访问攻击的网页,并查看源码. 2.查看源码中的提示 ...

  2. 我的ctf学习笔记 misc(二)

    1.easypdf 给了一个pdf文件,图片将flag隐藏了 2.损坏的图片 给了一个不能打开的png,首先尝试修复,用winhex打开,发现首尾格式是错误的,整个顺序需要颠倒过来,在储存会发现图片变 ...

  3. CTF学习笔记一——RSA加密

    RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,"由已知加密密钥推导出解密密钥在计算上是不可行的"密码体制. 在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息, ...

  4. CTF学习笔记——SQL注入

    SQL注入 sql注入的分类 1)可回显的注入 可以联合查询的注入 报错注入 通过注入进行DNS请求,从而达到可回显的目的 2)不可回显的注入 bool盲注 时间盲注 3)二次注入 通常作为一种业务逻 ...

  5. CTF学习笔记——Easy Calc

    一.[RoarCTF 2019]Easy Calc 1.题目 2.解题步骤 发现框框-应该是注入题-源码中提示有个waf,继续看源码,发现有个calc.php,进去看看 初步理解应该是用num传参,然 ...

  6. CTF学习笔记:misc

    1.来题中等的吧: 下载压缩后,得到一张图片 仔细观察上面的青色条纹,可以发现这是摩斯密码,把它记录下来: .- .-.. .--. .... .- .-.. .- -... 在线网站上翻译得到fla ...

  7. CTF学习笔记——sql注入(2)

    一.[SUCTF 2019]EasySQL 1.题目 2.解题步骤 看标题就知道是关于sql注入的题目.老规矩,先跑一下sqlmap,再用1' or 1=1 #试试. Nonono. 不死心再试一下别 ...

  8. CTF学习笔记20:iwebsec-文件上传漏洞-05-htaccess文件上传

    本练习最终只能上传图片,关键要让图片文件可以调用,也就是作为php解析. 一.通过之前的方法均不能上传php文件 通过burpsuite配合改扩展名.大小写.双写等手段均不上传成功. 二.编写并上传. ...

  9. CTF学习笔记22:iwebsec-文件上传漏洞-07-条件竞争文件上传

    一.正常上传php文件被删除 你这么暴力,刚上传就删除,解决思路就是不停地上传,你要接收文件.判断文件.删除文件总要时间吧: 那我见缝插针,不停地调用上传的文件,一旦成功就写入另一ma,也就是ma中m ...

最新文章

  1. druid seata 配置_五分钟体验分布式事务框架Seata
  2. SQL查询表对应的外键约束
  3. COGS-257-动态排名系统-树状数组+主席树
  4. BestCoder-Round#33
  5. JavaScript(基础、高级)笔记汇总表【尚硅谷JavaScript全套教程完整版】
  6. 适配器模式和装饰模式
  7. 蓝桥杯 子串分值 递推
  8. JavaScript文本特效实例小结【3个示例】
  9. pytorch torch.narrow
  10. bat执行java程序的脚本解析
  11. Yii2 Lesson - 03 Forms in Yii
  12. 2.ELK stack 集群 搭建
  13. Java中对象和类(main主类简介)
  14. Visio 入门教程
  15. python与vb语言_vb.net和python区别是什么
  16. 如何修改iTunes的iPhone备份路径?
  17. 蔡学镛:写SOP(标准作业程序)就是写程序
  18. 小学C++编程入门书籍及相关资料介绍(一)
  19. 运筹帷幄决胜千里,Python3.10原生协程asyncio工业级真实协程异步消费任务调度实践
  20. linux 模拟误码率,基于System View的比特误码率测试的仿真研究

热门文章

  1. 找回Windows XP密码
  2. 论文翻译解读:Distributed Representations of Words and Phrases and their Compositionality【Word2Vec优化】
  3. 原创 | 传统医药零售如何实现数字化转型
  4. 绿色荧光素标记Galectin-3抑制剂,FITC-Galectin-3
  5. 最大质因数 最大回文数乘积 字符串String类用法_Java每日练习题及题解(11月16日)
  6. javascript面向对象精要学习总结(第二章 函数)
  7. django学习-武沛齐教程【day4】
  8. USound发布高性能ASIC线性音频放大器,提高真无线立体声装置、助听器和智能眼镜的电池寿命
  9. 计算机组成部分有cpu吗,CPU的主要组成部分有哪些?
  10. 自己动手编写一个VS插件(六)