有趣的漏洞原理——命令执行

环境介绍

远程代码执行是一个重大的安全漏洞,也是完成系统接管的最后一步。
许多网站使用命令行调用来读取文件、发送电子邮件和执行其他本机操作。如果您的站点将不受信任的输入转换为shell命令,您需要注意清理输入。

1、一个dns查找站点,存在命令执行漏洞。

在这里插入图片描述

2、输入域名,返回nslookup结果

在这里插入图片描述

3、看下后端代码,通过domain参数来传递

在这里插入图片描述


进入正题

4、猜测IP查找是通过操作系统功能执行的,并尝试在最后标记一个额外的命令

在这里插入图片描述
可以看到后面的命令成功执行,说明存在命令执行漏洞
在这里插入图片描述


搞定它!

5、可以看下对方服务器的一些敏感文件

google.com && cat /etc/passwd

在这里插入图片描述

危害!

获得访问权限后,攻击者将尝试提升其在服务器上的权限、安装恶意脚本或使您的服务器成为僵尸网络的一部分以供日后使用。

如何预防

尽量避免命令行调用

现代编程语言具有允许您读取文件、发送电子邮件和执行其他操作系统功能的接口。尽可能使用 API——仅在绝对必要的情况下使用 shell 命令。这将减少应用程序中攻击向量的数量,并且还将简化您的代码库。

正确转义输入

当不受信任的输入未正确清理时,就会出现注入漏洞。如果您使用 shell 命令,请确保清除潜在恶意字符的输入值:

;
&
|
`

更好的是,通过对已知安全字符的正则表达式进行测试来限制输入。(例如,字母数字字符。)

限制允许的命令

尝试使用字符串文字而不是用户输入来构建所有或大部分 shell 命令。如果需要用户输入,请尝试将允许的值列入白名单,或在条件语句中枚举它们。

执行彻底的代码审查

作为代码审查过程的一部分,检查系统调用是否存在漏洞。漏洞通常会随着时间的推移而蔓延 - 确保您的团队知道要寻找什么。

以受限权限运行

只使用它们运行所需的权限来运行服务器进程是一个很好的做法——最小权限原则。这有助于限制命令注入漏洞作为第二道防线的影响。


在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

征__程

多动手,避免老年痴呆,活跃身心

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值