【web安全】-- 命令执行漏洞详解

本文将从原理开始介绍命令执行漏洞并附有三个实例来供各位客官学习

文章目录

  • 一、什么是命令执行漏洞
  • 二、出现的原因
  • 三、有可能存在命令执行漏洞的函数(php)
    • 1、利用一些函数来实现命令执行
    • 2、直接执行系统命令的函数
  • 四、命令拼接符号
    • 1、Windows
    • 2、linux
  • 示例
    • 1、将dvwa难度调整为low(最低难度)
    • 2、将dvwa调成Medium(中级难度)
    • 3、将dvwa安全改查high(高级难度)

一、什么是命令执行漏洞

命令执行漏洞是一种网络安全漏洞,它允许攻击者在受影响的系统上执行恶意命令。这种漏洞通常出现在软件应用程序或系统中,其典型示例是 Web 应用程序中的远程命令执行(RCE)漏洞。

二、出现的原因

  1. 未正确验证用户输入:应用程序未对用户提供的输入进行有效的验证或过滤,使得攻击者可以通过恶意输入注入命令。
  2. 将用户输入作为命令执行的一部分:应用程序在执行系统命令、数据库查询或其他操作时,未正确处理用户输入,导致攻击者能够通过注入恶意命令来执行任意操作。
  3. 应用程序缺乏必要的安全控制机制,使得攻击者能够利用漏洞执行命令并获取系统权限。

三、有可能存在命令执行漏洞的函数(php)

1、利用一些函数来实现命令执行

eval()、assert()等

如果管理员没有严格限制上面的命令,就有可能出现远程命令执行漏洞的出现

2、直接执行系统命令的函数

system(),exec(),shell_exec()

四、命令拼接符号

在利用远程命令执行漏洞的时候离不开命令的拼接符号,怎样利用命令拼接符号是实现命令执行漏洞的基础,下面从Windows和linux介绍相应的拼接符

1、Windows

拼接符示例详解
&a&b无论a是否正确b都会执行
&&a&&b当a正确b才会执行
||a||ba执行失败然后才执行b
|a|b表示A命令语句的输出,作为B命令语句的输入执行。当A失败的时候将不会执行

2、linux

拼接符详解
&后台运行
&&当a正确b才会执行
||a||b
()如果想执行几个命令,则需要用命令分隔符分号隔开每个命令,并使用 圆括号()把所有命令组合起来,示例如下
;将多个命令用;分隔开可以运行多个命令

示例

以dvwa靶场为例

1、将dvwa难度调整为low(最低难度)

在这里插入图片描述
在查看源码的情况下看到并没有做什么过滤操作,直接上命令

192.168.190.1 | netstat -ano

在这里插入图片描述

2、将dvwa调成Medium(中级难度)

在这里插入图片描述
过滤了&&;我们可以采用其他的连接符

ping 192.168.190.1 || ipconfig

在这里插入图片描述

3、将dvwa安全改查high(高级难度)

在这里插入图片描述
发现过滤了好多的连接符,但是我们发现有一个可用的就是|因为源码过滤了|加空格并没有过滤单个|

192.168.190.1 |ipconfig

在这里插入图片描述

今日分享结束,有写的不好的地方还望各位客官见谅

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/5540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT:不同UI间数据,信号的交互

前言 接上文,手动绘制的矩形框毕竟还是在上位机的播放界面内,想要把数据发送给3559还是需要通过串口或者网口发送,没有部署在一个界面就需要不同UI间数据和信号进行交互了,数据还好说,全局变量都可以做到,信…

【c++】反向迭代器的探究实现

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 在list中我们实现了正向的迭代器,学习完优先级队列后,我们也对适配器模式有了一个深刻的理解,这篇文章基于这种模式下,实现各类容器的反向迭…

Docker-compose部署LTC同步节点

1、下载ltc程序包,litecoin下载地址 下载页 mkdir /data/docker-compose/ltc cd /data/docker-compose/ltc https://github.com/litecoin-project/litecoin/releases/download/v0.21.3/litecoin-0.21.3-x86_64-linux-gnu.tar.gz2、编写dockerfile和bitcoin.conf b…

头歌:Spark Streaming

第1关:套接字流实现黑名单过滤 简介 套接字流是通过监听Socket端口接收的数据,相当于Socket之间的通信,任何用户在用Socket(套接字)通信之前,首先要先申请一个Socket号,Socket号相当于该用户…

你不知道的CSS函数calc():解锁布局设计的新维度

在CSS的世界里,精确控制元素的尺寸和位置是每个前端开发者追求的目标。而CSS3引入的calc()函数,无疑为我们提供了前所未有的灵活性和精准度,让我们能够动态计算长度、宽度、高度等属性值,实现更为复杂的布局效果。本文将深入探讨c…

IDEA连接数据库

先在本地安装mysql connector net 安装navicat,连接mysql,并对mysql中的内容进行修改和查看,如新建数据库,新建表等 社区版的idea界面中找不到database选项,需要先在setting中的plugin中安装database navicate&#…

我开始接单/兼职/搞副业/建设个人社区,为自己谋后路了。

我开始接单/兼职/搞副业/建设个人社区,为自己谋后路了。 简述 大家好,我是小荣,一个前端开发程序员。我最近开始在业余时间接私单了,也在想一些能够带来成长,收入的副业,主要也是为了自己谋后路&#xff…

C语言:数据结构(双向链表)

目录 1、双向链表的结构2、顺序表和双向链表的优缺点分析3、双向链表的实现 1、双向链表的结构 注意:这⾥的“带头“跟前面我们说的“头节点”是两个概念,实际前面的在单链表阶段称呼不严谨,但是为了更好的理解就直接称为单链表的头节点。 带…

SSH远程登录实操实验!

ssh远程登录协议:默认端口号22 以下实验7-2是服务端,7-1是客户端 服务器的相关信息: 服务名称:sshd 服务端主程序:/usr/sbin/sshd 服务端配置文件:/etc/ssh/sshd_config 客户端相关信息: …

python的输入输出(爽文,备忘,查询,友好)

Python中的输入输出主要涉及到输入函数和输出函数。 输出函数:print() print() 函数用于将信息输出到屏幕上。它可以输出字符串、变量的值,以及其他各种数据类型。 name "Alice" age 30 print("姓名:", name, "年龄:&quo…

ip ssl证书无限端口网站

IP SSL证书是由CA认证机构颁发的一种特殊数字证书。大部分SSL数字证书都需要用户使用域名进行申请,想要对公网IP地址加密实现https访问就需要申请IP SSL证书。IP SSL证书采用了强大的加密算法,可以有效地防止数据在传输过程中被窃取或篡改,具…

Java-IO-FAQ-文件写操作时自动创建文件和目录

1 需求 2 接口 3 示例 在Java中,使用FileOutputStream或FileWriter来写入文件时,如果指定的文件不存在,那么这些类默认会创建该文件。但是,如果文件路径中的目录不存在,这些类不会自动创建缺失的目录。 如果你想在写…

[C语言]典型例题:小蚂蚁爬橡皮筋、买汽水问题、导致单词块、菱形打印……

1、小蚂蚁爬橡皮筋问题 假设橡皮筋长4m,小蚂蚁从一端爬向另一端每天爬1m,且每爬了1m,橡皮筋会立马拉伸4m,在理想条件下,小蚂蚁需要爬多少天可以到达橡皮筋的另一端? 不仔细想,我们很可能认为小蚂…

Scikit-Learn回归树

Scikit-Learn回归树 1、决策树1.1、什么是决策树1.2、决策树学习的步骤1.3、决策树算法 1、决策树 决策树(DTs)是一种用于回归和分类的有监督学习方法。通常,决策树用于分类问题;当决策树用于回归问题时,称为回归树。回…

两性情感课程笔记 2020~2023

2020 剽悍生活博客七爱哦耶浪迹小鹿魔卡Chris李越泰阳欧阳浮夸舞步爱情光谱乌鸦倪称男哥路易梵公子绅士派艾克迪诺校长感觉流卡卡危险人物晓辉爱上情感恋爱研习社摄影艾瑞克Chic情叔明日恋爱情受最绅士魅男其它 2021 城市猎人知乎文章 20210926阿尔法安小妖曹学敏Chris七分学…

【C++】:日期类的实现 -- 日期计算器

前言 1.日期类是一种十分经典的类型。对于C的初学者,它能够帮助我们融会贯通许多C的基础知识,它涉及许多的基础语法,比如引用,函数重载,传值/传参返回,构造函数,运算符重载,const成…

【Python小练】求斐波那契数列第n个数

题目 输出斐波那契数列第n个数。 分析 首先我们要知道,斐波那契数列,这个数列从第三位开始等于前两个数的和,要知道数列第n个数(n>2),就要知道其前两相的值,着就需要用到递归了。来看一下吧…

C语言实验-循环结构和选择结构

一&#xff1a; 求和:1(14)(149)(14916)…(14916…n2)? 其中n的值由键盘输入&#xff1b; #define _CRT_SECURE_NO_WARNINGS #include<stdio.h>int main() {int sum 0;int n 0;printf("请输入一个整数");scanf("%d", &n);for (int i 0; i &l…

Apache中如何配置 ws 接口

Apache中如何配置 wss 接口 在Apache中配置WebSockets的支持&#xff0c;你需要使用mod_proxy_wstunnel模块&#xff0c;该模块是Apache的一个代理模块&#xff0c;它允许你代理WebSocket请求。 以下是配置步骤的简要说明和示例&#xff1a; 确保你的Apache服务器安装了mod_…

【最大公约数 排序】2344. 使数组可以被整除的最少删除次数

本文涉及知识点 最大公约数 排序 LeetCode2344. 使数组可以被整除的最少删除次数 给你两个正整数数组 nums 和 numsDivide 。你可以从 nums 中删除任意数目的元素。 请你返回使 nums 中 最小 元素可以整除 numsDivide 中所有元素的 最少 删除次数。如果无法得到这样的元素&a…