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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> RCE&代码执行漏洞 -> 正文阅读

[网络协议]RCE&代码执行漏洞

RCE&代码执行漏洞

1、RCE执行-代码执行&命令执行

2、CTF考点-漏洞配合&绕过手法

在这里插入图片描述

首先RCE他通常指的是两个漏洞

一个是代码执行漏洞另一个是命令执行漏洞

RCE代码执行漏洞–指的就是引用脚本代码并解析执行

RCE命令执行漏洞–调查系统操作的命令并执行

我们简单的来演示一下这个

RCE代码执行漏洞

<?php
eval ('phpinfo();');

?>

好那么这代码是什么意思呢

其实他的意思就是执行phpinfo()这个函数

那么为什么要这样写呢

首先解析一下这个代码

eval 就是执行函数吗

那么为什么要把phpinfo()用单引号括起来呢

那么用单引号括起来就是将phpinfo()以字符串的形式去执行了

那么当我们直接去访问这个含义phpinfo()这个以上代码的时候他会自动执行并打印出phpinfo()函数执行效果

好,那么我们说一下为什么要这样去写这个phpinfo();

原因是这样的,

就是将这个字符串形式的phpinfo(); 数据以当前网站上存在的脚本代码解析器去解析执行

这就是RCE代码执行漏洞

那么他呢就是会把这个字符串以这个代码的形式去解析去执行

另外一个

RCE命令执行漏洞

命令执行漏洞

一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口。比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上。一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。
如果,设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器。

系统命令执行函数

system()
passthru()
exec()
shell_exec()
popen()
proc_open()
pcntl_exec()
<?php
system('var');

?>
<?php
$a = $_POST['a']; 

system($a);
?>

两种都可以

访问存在RCE命令执行漏洞的页面

http://xxx.xxx.xxx/1.php?a=ipconfig

[ipconfig是windows系统查看当前IP的命令linux的是ifconfig]

秀儿开始

web29

在这里插入图片描述

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-04 00:12:34
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-04 00:26:48
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/

error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
}

如果说你没有学过php获取其他的编程语言

没关系

你只需要记住几个关键词

img

POST

GET

有很多传输方式

但是呢常用的有两个

一个是post和get

$_GET[‘c’]

看到这个代码首先做比喻把c当中是一个空间或者说一个位置,那么 G E T 是 获 取 这 种 空 间 的 东 西 , 一 旦 有 东 西 传 输 到 c 这 个 位 置 上 , _GET是获取这种空间的东西,一旦有东西传输到c这个位置上, G?ET西西c _ GET就是会获取c这个位置上的东西了,他只会获取不会去执行

if(!preg_match(“/flag/i”, KaTeX parse error: Expected '}', got 'EOF' at end of input: …{ eval(c);
}

那么这个代码又是什么呢

我们先看这个函数!preg_match

preg_match 函数用于执行一个正则表达式匹配。

正则表达式简单的来说就是过滤东西,他过滤了什么呢过滤了flag这个词

?c=system(‘ls’);

先通过ls查看当前目录下的文件

有一个flag.php

我们想他就是我们要的flag值

但是呢我们直接读取

c=system(‘cat flag.php’);

读取不了这个文件

为什么呢

因为代码中已经过滤掉了flag这个词

那么我们怎么才能读取到flag.php

这个时候就要会通配符拉

在这里插入图片描述

system(‘tac fla*.php’);

我们用*这个通配符

这个通配符就是所有的意思

如果当前目录下有

flaz.php

flag.php

flal.php

用到了

system(‘tac fla*.php’);

去读取

会把三个文件都读取了

为什么

因为*代表所有

你没有指定那文件

好那么他就是自己判断

只要fla是匹配的后缀php是匹配的,那个*不管是什么都可以

在这里插入图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 18:24:32  更:2022-06-25 18:25:28 
 
开发: 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年11日历 -2024/11/25 23:45:31-

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