前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >看图说话:命令行注入(Command Injection)漏洞示例

看图说话:命令行注入(Command Injection)漏洞示例

作者头像
张树臣
发布2019-03-04 15:25:16
10.4K0
发布2019-03-04 15:25:16
举报

1. 什么是命令行注入?

命令注入:利用可以调用系统命令的web应用,通过构造特殊命令字符串的方式,把恶意代码输入一个编辑域(例如缺乏有效验证的输入框)来改变网页动态生成的内容,最终实现本应在服务端才能工作的系统命令。一个恶意黑客可以利用这种攻击方法来非法获取数据或者网络资源。

命令注入攻击最初被关注到,是Shell命令注入攻击(所以最初也被称为Shell命令注入攻击),由挪威一名程序员在1997年意外发现的。

在黑客的世界,针对不同的软件系统,有各自特有的命令注入方式。最常见的命令注入攻击形式是SQL命令注入攻击(简称SQL注入),是指恶意黑客利用设计上的安全漏洞,把SQL代码粘贴在网页形式的输入框内,进而改变服务端数据。PHP应用程序中也有名为PHP命令注入攻击的漏洞——国内著名的Web应用程序Discuz!、DedeCMS等都曾经存在过该类型漏洞。

无论哪种形式,它们的攻击原理都是一样的。即当恶意黑客进入一个有命令注入漏洞的网页时,他们构造数据同时输入了恶意命令代码,因为系统对此并未过滤,恶意命令代码一并执行,最终导致信息泄露或者正常数据的破坏,甚至可能会导致恶意命令掌控该用户的电脑和他们的网络。

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

常见的拼接命令:

ipconfig 查看本地网络net user 查看系统用户dir 查看当前目录find 查找包含指定字符的行whoami 查看系统当前有效用户名

&,&&,|,||命令拼接符的区别

A&B

拼接,A和B之间无制约关系

A&&B

A执行成功,之后才会执行B

A|B

A的输出作为B的输入

A||B

A执行失败,之后才会执行B

注:由于&在url中用于分隔参数所以在命令注入中需要转码为 %26

  • ipconfig 查看本地网络
  • net user 查看系统用户
  • dir 查看当前目录
  • find 查找包含指定字符的行
  • whoami 查看系统当前有效用户名

&,&&,|,||命令拼接符的区别A&B拼接,A和B之间无制约关系A&&BA执行成功,之后才会执行B A|B A的输出作为B的输入 A||B A执行失败,之后才会执行B注:由于&在url中用于分隔参数所以在命令注入中需要转码为 %26

2. 实战演练

1、以下实际场景实验,打开靶机页面:

2、这是简单的ping功能页面,输入IP后,执行ping命令并返回内容,在“Enter an IP address: ”输入框里输入“127.0.0.1”,提交后,可以看到该命令正常执行后返回信息:

3、已知操作系统固有特点,使用连接符,可以执行多条指令:

代码语言:javascript
复制
command1 && command2 如果command1执行成功,则执行command2
代码语言:javascript
复制
command1 | |command2 如果command1执行失败,则执行command2

(实际连接符有多种组合方式,传说&和|两种连接符在windows和linux环境下都支持)

4、模拟攻击者,在“Enter an IP address: ”输入框里输入“127.0.0.1&&echo “hello world”” ,提交后,可以看到除了ping命令被正常执行外,echo “hello world”在最后被执行(hello world带着引号跑出来了,有点土啊):

5、模拟攻击者,在“Enter an IP address: ”输入框里输入“123||net user” ,提交后,可以看到ping命令执行失败,net user命令被执行:

6、一旦存在命令注入漏洞,攻击者就可以在目标系统执行任意命令,这通常意味着服务器被拱手让人。

3. 遗留问题

  1. 危害有哪些?世界上第一个命令注入攻击程序能随意地从一个网站删除网页,就像从本地磁盘删除文件一样简单;
  2. 什么类型的网站会执行系统命令?或者说哪些web应用会成为攻击的目标群体?目前只知道域名查询类的网站会用系统命令执行用户提交的信息。
  3. 接上一个问题,网站的什么部分会执行系统命令?
  4. 发现漏洞,该如何最大化体现漏洞价值?(挖掘价值)
  5. 利用完漏洞,该如何毁尸灭迹?(隐匿行踪)
  6. 怎么防范?初步思路是白名单,具体实施方法还需要进一步研究。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试经验与教训 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Discuz!
Discuz! 是全球领先的论坛社区应用系统,自2001年6月面世以来,服务超过300多万网站用户案例。现在,借助 Discuz! ,您不仅可以使用搭建传统的社区论坛,更可轻易的构建面向移动互联网时代的私域流量和社交圈子类的应用,并快速启动业务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档