【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…

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

我开始接单/兼职/搞副业/建设个人社区,为自己谋后路了。 简述 大家好,我是小荣,一个前端开发程序员。我最近开始在业余时间接私单了,也在想一些能够带来成长,收入的副业,主要也是为了自己谋后路&#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证书采用了强大的加密算法,可以有效地防止数据在传输过程中被窃取或篡改,具…

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

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

Scikit-Learn回归树

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

【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…

【高质量】2024五一数学建模C题保奖思路+代码(后续会更新)

你的点赞收藏是我后续更新的最大动力&#xff01; 一定要点击文末的卡片&#xff0c;那是获取资料的入口&#xff01; 你是否在寻找数学建模比赛的突破点&#xff1f; 作为经验丰富的数学建模团队&#xff0c;我们将为你带来2024 年五一数学建模&#xff08;C题&#xff09;…

1700java进销存管理系统Myeclipse开发sqlserver数据库web结构java编程计算机网页项目

一、源码特点 java web进销存管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为sqlser…

Vue通过下拉框选择字典值,并将对应的label以及value值提交到后端

产品品种从字典中获取 产品性质也是从字典中获取 字典当中的保存 dict_type表 dict_data表 在表单提交的方法中 1.因为做的产品性质是多选&#xff0c;它会以数组的方式提交&#xff0c;所以需要先将Json格式转变为String JSON.stringify(this.form.nature) 2.提交表单&…

【Linux网络编程】DNS、ICMP、NAT技术、代理服务器+网络通信各层协议总结

DNS、ICMP、NAT技术、代理服务器网络通信总结 1.DNS2.ICMP协议2.1ping命令2.2traceroute命令 3.NAT技术4.NAT和代理服务器5.网线通信各层协议总结 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&…

vue3 依赖-组件tablepage-vue3版本1.0.3更新内容

github求⭐ 可通过github 地址和npm 地址查看全部内容 vue3 依赖-组件tablepage-vue3说明文档&#xff0c;列表页快速开发&#xff0c;使用思路及范例-汇总 vue3 依赖-组件tablepage-vue3说明文档&#xff0c;列表页快速开发&#xff0c;使用思路及范例&#xff08;Ⅰ&#…