在实施计算机安全评估和渗透测试时,命令执行漏洞是一种常见的安全漏洞,攻击者可以利用该漏洞执行恶意命令并获取系统权限。然而,有时候攻击者无法直接得到命令执行的回显结果。本文将介绍如何通过无回显攻击方法来证明命令执行漏洞的存在。
一、命令执行漏洞简介
PHP 中,传入代码执行或命令执行等危险函数的参数,客户端可控,同时针对该参数没有做过滤或过滤不足,导致代码执行或命令执行。通过远程访问方式传参,就叫做RCE。
简单来说:前端输入一个参数,后端当成命令去执行,客户端输入命令时,服务器没有对执行命令的函数做过滤。
二、无回显攻击方法
当攻击者无法获取命令执行的回显结果时,可以尝试以下方法来证明漏洞的存在:
-
时间延迟攻击:攻击者可以通过在命令中嵌入延迟操作,如sleep命令或ping命令的大量请求,来观察应用程序的响应时间。如果应用程序的响应时间与正常情况下的响应时间不同,则可以推断出命令执行漏洞的存在。
dnslog
DNS log(DNS日志)是由域名系统(DNS)服务器生成的记录DNS查询和响应的信息的日志文件。DNS日志对于网络管理员来说是非常重要的工具,它可以用于监视和分析网络流量、排除故障和防止安全攻击。
利用yakit
yakit自带dnslog平台,申请域名,执行命令,ping一下域名,
shiro<=1.2.4
-
文件系统操作:通过执行文件系统操作,例如创建、修改或删除文件等,攻击者可以检查文件系统的状态来判断命令是否执行成功。例如,攻击者可以尝试创建一个特定的标识文件,并检查是否成功创建。
-
网络流量监测:攻击者可以借助网络流量监测工具,如Wireshark,来分析命令执行时的网络流量。通过监测网络流量中的异常请求或响应,攻击者可以间接判断命令是否执行成功。
-
错误消息分析:应用程序在执行命令时,可能会生成相应的错误消息。攻击者可以通过分析错误消息来判断命令执行的结果。例如,如果错误消息中包含了攻击者预期的字符串或提示信息,可以推断出命令执行成功。
三、使用无回显攻击方法的注意事项
在使用无回显攻击方法进行命令执行漏洞的证明时,需要注意以下事项:
-
合法性和合规性:在进行渗透测试和证明漏洞存在时,务必遵守法律和合规要求。获取合法授权,并且仅在合法的范围内进行测试。
-
谨慎操作:无回显攻击方法可能对目标系统造成不可逆的影响,因此在操作时要谨慎。避免对生产环境或关键系统使用演示外的测试方法。
-
日志记录:在进行测试时,要记录所有的操作和结果。这样在发生问题或错误时,可以追溯和分析相关的日志信息。
-
定期更新:随着安全技术的不断发展,新的攻击方法和防护措施也在不断出现。因此,定期更新您的渗透测试和安全技术知识。
请关注微信公众号获取最新内容。