Command Injection(命令行注入)

Command Injection(命令行注入)

前言

主要集合dvwa对命令行注入进行学习

内容比较基础简单

练习

Low

1
可以看到这是一个可以输入ip,测试连通性的界面

2
我觉得这个看代码来审计就很清楚了,这里我们输入(这里是Linux系统)会与’ping -c 4’拼接在一起,然后当做命令执行…这就给了我们很大的操作空间

&& 可以用来执行多条命令

3
可以看到这里我加上 && pwd后爆出了当前路径

这里只要有权限很多命令都是可以执行的,尤其是读取文件

45
上图可以看到,这里和文件包含时出现了一样的情况,/etc/passwd 有权限可以读出来

/etc/shadow没有权限所有无法读取。

Medium

这里命令行注入也是一种注入所以和sql注入,xss一样这里的防护手段主要是过滤,黑名单机制

还是直接看代码来审计吧

6
可以看到这里把"&&“和”;“替换成了”"

所以这里可以用&

注意的是”&&”与” &”的区别:

Command 1&&Command 2

先执行Command 1,执行成功后执行Command 2,否则不执行Command 2

Command 1&Command 2

先执行Command 1,不管是否成功,都会执行Command 2

7
8
我们可以看到不管ping是否执行成功,第二条命令都顺利执行了,但输出的时候第二条命令的输出在上面

然后在前面我们使用过双写绕过,这里我们可以同理,用&;&来绕过…
9

High

high级别主要是完善了黑名单

10
可以看到上面的黑名单基本是十分完善了,但是’| '这后面有个空格…这是故意留的后门吧…

“|”是管道符,表示将Command 1的输出作为Command 2的输入,并且只打印Command 2执行的结果。

11

Impossible

对输入进行了严格限制,只有数字.数字.数字.数字才行

总结

看漏洞会觉得这个漏洞很厉害,这相当于拿到了一个shell

但最大的问题啊,我觉得不是权限问题

最大的问题是这样的漏洞很难见到啊,不像sql注入,xss这样具有很强的通用性

毕竟sql查询,留言等操作,基本上是web很常见的操作,而像这样的cmd的操作,让用户输入,然后把用户输入直接cmd运行很少见,一下都想不出什么例子…

参考

  1. 新手指南:DVWA-1.9全级别教程之Command Injection
发布了54 篇原创文章 · 获赞 20 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览