DVWA-Command Injection

这篇具有很好参考价值的文章主要介绍了DVWA-Command Injection。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概念

各种脚本语言都有可以调用系统命令的方法,如PHP语言中的system()、exec()等命令执行函数,可以执行系统命令,命令注入攻击,是指攻击者构造特殊的语句,将系统命令拼接到正常的用户输入,进而传递到命令执行函数的参数中,造成系统命令被执行的攻击方式。

安全漏洞从原理到实战——命令执行漏洞 (baidu.com)

命令注入原理:


DVWA-Command Injection

PHP中常见的可执行系统命令的函数主要有:system()函数,执行给定的命令,输出并返回最后一行结果;exec()函数,执行给定的命令,不输出结果,只返回最后一行结果;shell_exec()函数,通过Shell环境执行命令,并将完整的输出结果以字符串的形式返回;passthru()函数,执行给定的命令,显示原始输出结果,没有返回值;popen()函数,打开进程文件指针,该进程由给定的命令执行而产生,为单向管道;proc_open()函数,执行给定的命令,并且打开用来输入/输出的文件指针,为双向管道。通过向这些函数的参数中拼接系统命令,就可能发生命令注入攻击

命令注入攻击时,需要使用连接符将系统命令拼接到输入参数中。在Windows和Linux操作系统中,相同的连接符也会有不同的意义

系统命令中的常用连接符

DVWA-Command Injection


命令注入漏洞分析

命令注入攻击时

1)首先根据用户的不同输入测试页面的不同输出,以确定是否存在命令注入漏洞;

2)如果可能存在,则在原输入的值中使用连接符拼接系统命令,将其传递到后端执行后,获取服务器相关的信息,如服务器的操作系统、当前用户等。

通过命令注入漏洞,攻击者可以继承Web应用程序的用户权限,对Web相关目录进行文件读写操作,甚至控制整个网站或服务器

低水平

1、输入IP地址,输出了ping IP的内容,由显示结果可知,执行了ping命令,且在页面上显示了结果

DVWA-Command Injection

2、在用户输入中,使用连接符拼接系统命令,构造特殊语句进行测试。

构造 127.0.0.1 && dir,可以看到执行了dir命令,输出了目录下的文件。

由此可以判断,当前Web服务器为Windows操作系统,当前目录为

 D:\phpstudy_pro\WWW\DVWA\vulnerabilities\exec

DVWA-Command Injection

 文章来源地址https://www.toymoban.com/news/detail-480880.html


<?php

if( isset( $_POST[ 'Submit' ]  ) ) {
    // Get input
    $target = $_REQUEST[ 'ip' ];

    // Determine OS and execute the ping command.
    if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
        // Windows
        $cmd = shell_exec( 'ping  ' . $target );
    }
    else {
        // *nix
        $cmd = shell_exec( 'ping  -c 4 ' . $target );
    }

    // Feedback for the end user
    echo "<p

到了这里,关于DVWA-Command Injection的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • webgoat-(A1)injection

    概念 This lesson describes what Structured Query Language (SQL) is and how it can be manipulated to perform tasks that were not the original intent of the developer. 课程目标是描述什么是SQL以及SQL如何执行那些非开发者本意的任务。 目标 The user will have a basic understanding of how SQL works and what it is used for 用户将会理

    2024年02月05日
    浏览(40)
  • 开发安全之:SQL Injection

    Overview 调用通过不可信赖的数据源输入构建的 SQL 查询 mysql_query()。通过这种调用,攻击者能够修改语句的含义或执行任意 SQL 命令。 Details SQL injection 错误在以下情况下发生: 1. 数据从一个不可信赖的数据源进入程序。 2. 数据用于动态地构造一个 SQL 查询。 这种情况下,数据

    2024年01月23日
    浏览(49)
  • 开发安全之:XML Injection

    Overview responsemsg() 方法将处理未经验证的 XML 输入。此调用可能允许攻击者将任意元素或属性注入 XML 文档的正文中,导致 Denial of Service 或泄漏敏感信息。XML Injection 之所以不同于 XML External Entity (XXE) Injection,是因为攻击者通常会控制插入到 XML 文档中部或末尾的输入。 Detail

    2024年01月22日
    浏览(38)
  • 开发安全之:JSON Injection

    Overview 在 XXX.php 的第 X 行中,responsemsg() 方法将未经验证的输入写入 JSON。攻击者可以利用此调用将任意元素或属性注入 JSON 实体。 Details JSON injection 会在以下情况中出现: 1. 数据从一个不可信赖的数据源进入程序。 2. 将数据写入到 JSON 流。 在这种情况下,由 XXX.php 的第 X

    2024年01月21日
    浏览(29)
  • Langchain框架 prompt injection注入

    Prompt Injection 是一种攻击技术,黑客或恶意攻击者操纵 AI 模型的输入值,以诱导模型返回非预期的结果 LangChain 是一个基于大语言模型进行应用开发的框架。 所谓大语言模型(Large Language Models, LLMs),是指基于海量语料训练、参数动辄数十亿上百亿的语言模型。除了大家熟知

    2024年02月01日
    浏览(42)
  • 什么是依赖注入(Dependency Injection)?

    依赖注入(Dependency Injection,简称DI)是一种设计模式,用于实现类之间的解耦和依赖关系的管理。它通过将依赖关系的创建和维护责任转移到外部容器中,使得类不需要自己实例化依赖对象,而是由外部容器动态地注入依赖。 传统的对象创建方式往往由类自身负责创建和管

    2024年02月15日
    浏览(43)
  • Injection of autowired dependencies failed

    问题描述 报错信息 application.yml 问题修复

    2024年03月18日
    浏览(39)
  • Understanding Dependency Injection for angular

    Angular https://angular.io/guide/dependency-injection Denpendency Injection,  or DI, is one of fundamental concepts for angular, DI is writed by angular framework and allows classes with  Angular decorators,  such as Components, directives, Piples and Injectables , to configure dependencies that they need.  Two main roles exists in DI system: dependency

    2024年02月10日
    浏览(34)
  • Field injection is not recommended

    意思就是不推荐使用字段注入的方式,不是不推荐 @Autowired 注解,以前为了简便就直接使用 @Resource 代替,程序员都在不断追求完美。。。 接下来我们实实在在的分析一下为啥不推荐,以及到底推荐那种方式注入。 不推荐使用@Autowired进行字段注入的原因有以下几点: 紧耦合

    2024年02月12日
    浏览(38)
  • 进阶测试知识学习之Fault Injection

    这种方法的基本思想是人为地在系统中引入错误,然后观察系统的反应。这可以帮助测试人员了解系统是否能够恰当地处理错误,并在错误发生时保持正常运行。故障注入可以用来测试各种类型的错误,比如硬件故障、操作系统错误、网络错误,甚至是编程错误。 故障注入可

    2024年02月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包