当前位置: 首页 > article >正文

DVWA第二关 之命令注入

命令注入(Command Injection)漏洞,是对一些函数的参数没有做过滤或过滤不严导致的,可以执行系统或者应用指令(CMD命令或者bash命令)的一种注入攻击手段。PHP命令注入攻击漏洞是PHP应用程序中常见的脚本漏洞之一。

PHP中命令连接符基础知识:

command1 && command2 先执行command1后执行command2。

command1 | command2 只执行command2。

command1 & command2 先执行command2后执行command1。

以上的三种连接符在Linux和windows环境下都支持。

难度(Low)

审计代码发现直接使用命令执行函数,没有进行任何的过滤所以出现命令执行漏洞。

开始操作:

输入127.0.0.1则正常显示网络状态:

解决乱码问题
在文本框中输入"127.0.0.1”后结果显示为乱码,解决此问题的方法:在DVWA-master\dvwa\includes目录下找到dvwaPage.inc.php文件中所有的”charset=utf-8”,修改”charset=gb2312”,即可。

输入:127.0.0.1 & ipconfig输出了本机实际的IP地址以及服务器的网络连接信息。

大家可以同时测试net user、whoami等命令,均可正常输出。

中等难度(medium)

漏洞代码截图:

这里把连接符‘&&’和‘;’转换为空了但是依旧没有完全解决问题,我们还是可以通过'&'和‘|’来执行命令。

漏洞利用:

输入127.0.0.1 | dir

127.0.0.1 & ipconfig

难度(high)

漏洞代码:

这里同样是过滤特殊字符但是仔细一点观察会发现‘|’后面还是有一个空格的,如果直接输入'|',则不会被过滤。

我们输入127.0.0.1|ipconfig则可以轻松绕过。

难度(impossible)

审计代码:

这里添加了判定代码。

它检查用户输入的IP地址的每个部分是否都是数字,并且确保有四个部分。这里使用了白名单的方式,只允许IP进行输入,所以从根本上解决了这个问题。

此时在输入127.0.0.1|ipconfig则不会有回显,并提示你需要输入一个有效的IP地址。


http://www.kler.cn/a/452682.html

相关文章:

  • 显示 Windows 任务栏
  • Leecode刷题C语言之字符串及其反转中是否存在同一子字符串
  • springboot使用自定义的线程池 完成 多线程执行网络请求,返回数据后,统一返回给前段
  • 【论文阅读笔记】Scalable, Detailed and Mask-Free Universal Photometric Stereo
  • vue 基础学习
  • ffmpeg之播放一个yuv视频
  • 怎么将PDF压缩大小?PDF文件进行压缩的几个方法推荐
  • css文字折行以及双端对齐实现方式
  • 面试题整理17----K8s中request和limit资源限制是如何实现的
  • 机器学习基础 衡量模型性能指标
  • 如何用PhpStudy搭建网络安全靶场
  • 数据结构-树(二叉树)
  • 不用电脑也不用编程,实现PLC、智能仪表对接SQL数据库的方案
  • Dataset Distillation with Attention Labels for Fine-tuning BERT
  • SpringAI人工智能开发框架005---SpringAI文本转语音_语音转文本_音频翻译程序接口编写_英文音频翻译_中文音频翻译_指定模型
  • Linux如何设置redis可以外网访问—执行使用指定配置文件启动redis
  • 视频的音乐怎么提取为MP3格式?
  • ChatGPT生成接口文档实践案例(一)
  • 教师资格证报考条件15篇
  • ISP之提取.DNG格式中的RAW(Bayer)数据
  • 数据结构与算法再探(二)串
  • 面试场景题系列:分布式系统中的唯一ID生成器
  • 5.学习webpack配置 babel基本配置
  • uni-app 跨端开发精美开源UI框架推荐
  • 编码转换(实例)
  • 2024最新教程Mac安装双系统