什么是命令注入? 原理和利用方式是哪些

      outputo-20210605-174508-957-ddjf.png

1.命令行注入是什么?

命令注入:使用可以调用系统命令的web应用程序,通过构建特殊的命令字符串,将恶意代码输入编辑域(如缺乏有效验证的输入框),改变网页动态生成的内容,最终实现在服务器上工作的系统命令。恶意黑客可以使用这种攻击方法非法获取数据或网络资源。

命令注入攻击首先被注意到的是Shell命令注入攻击(因此最初也被称为Shell命令注入攻击),1997年被挪威程序员意外发现。

在黑客世界里,不同的软件系统有自己独特的命令注入方式。命令注入攻击最常见的形式是SQL命令注入攻击(简称SQL注入),即恶意黑客利用设计中的安全漏洞将SQL代码以网页的形式粘贴到输入框中,然后更改服务器数据。PHP应用中还有一个漏洞叫PHP命令注入攻击——中国著名的网络应用Discuz!重复数据删除也有这种漏洞。

无论如何,他们的攻击原理是一样的。也就是说,当恶意黑客进入有命令注入漏洞的网页时,他们会构建数据并输入恶意命令代码,因为系统没有过滤它,恶意命令代码会一起执行,最终导致信息泄露或正常数据损坏,甚至恶意命令控制用户的电脑和网络。

注入攻击中常用的命令拼接:

Ipconfig查看本地网络。

网络用户视图系统用户。

目录查看当前目录。

找到包含指定字符的行。

Whoami查看当前系统的有效用户名。

&、&、&、|、||命令拼接和A&B拼接的区别,A和B之间没有约束关系。A&BA在BA之前成功执行|BA的输出作为B的输入A|BA在B执行之前失败。注:因为&用来分隔网址中的参数,所以需要在命令注入中将其转换为%26。

有什么危害?世界上第一个命令注入攻击程序,可以随意从网站上删除网页,就像从本地磁盘上删除文件一样简单;

什么样的网站执行系统命令?哪个网络应用程序会成为攻击的目标组?现在,只知道域名查询的网站使用系统命令执行用户提交的信息。

接下来,网站的哪一部分将执行系统命令?

发现漏洞时如何最大化其价值?(挖掘价值)

钻空子后,如何摧毁尸体?(隐藏下落)

如何预防?最初的想法是白名单,具体的实现方法需要进一步研究。

分享: