通过DVWA学习命令执行漏洞(Command Execution)
来源:互联网 发布:阿里云属于paas 编辑:程序博客网 时间:2024/05/16 06:24
通过DVWA学习命令执行漏洞(Command Execution)
作为初学者的笔记,有何问题或建议请大牛们不吝指教~
在系统终端中,要想输入多条命令,可以在一条命令结束之后用分号(;)来隔开进而进行下一条命令的执行。另外也可以通过&&来替换分号,前提是前面的命令正确执行之后才能接着执行后面的命令。命令执行漏洞也正因此而产生。
先看low级:
提示让我们输入一个IP地址来实现ping,猜测会是在系统终端中实现的,输入以下语句结果发现是存在命令执行漏洞的:
此时将分号换成&&也是可以的:
如果直接不输给ping IP地址而是直接一个分号后面接其他命令也是OK的,因为在系统终端这些命令都是能正常执行的:
但是如果在ping命令后使用&&号但没有给ping命令输入IP地址时,这时候将不会返回任何值,因为&&号后面命令是建立在前面命令已经正确执行的前提之下的,但是此时ping命令并没有正确执行了。
Medium级别:
在中等级别分号和&&号都不管用了,查看源代码,发现有个函数专门用于过滤这两个字符串,而其他地方和low级代码一致:
但是该级别的缺点是只过滤了上述两种字符,这里我们还可以用&号、管道符|等直接绕过。
两个命令之间用&号表明这两条命令会同时执行,顺序先后不一定。测试结果如下:
可以看出命令显示的时候是嵌套显示的,也就是说几个命令在同时执行。另外一点注意的是,&号与&&号不同,因为是同时执行,所以并不存在前面的命令必须执行了后面的命令才能执行的问题。例子中不输入IP地址也能执行后面的命令:
管道符能正常执行,但管道符的限制是只显示后面那条命令的执行结果:
另外也有两个管道符(||)的用法,但是条件是前面的命令执行失败,和&&号的相反:
当然,因为该过滤机制只是过滤了分号或&&字符,因此也可以使用&;&的嵌套组合来进行绕过:
High级别:
分析源代码:
程序中将输入的内容按.号进行分割,首先通过is_numeric函数判断每个部分是否是数字类型,然后再判断整个字段数是否为4个,如果都满足条件则继续执行。之前的所有方法都会无效,限于知识的缺乏还不知如何利用。
命令执行漏洞利用的例子:
可以利用nc来监听4444端口,再进行管道的重定向:
;mkfifo /tmp/pipe;sh /tmp/pipe | nc -nlp 4444 > /tmp/pipe
在Kali Linux中直接nc连接上该服务器:
命令执行漏洞的笔记大致如此,有新的收获或者看到什么好的方法再添加。
- 通过DVWA学习命令执行漏洞(Command Execution)
- 通过DVWA学习CSRF漏洞
- DVWA之Command Execution
- 通过DVWA学习文件上传漏洞(File Upload)
- 通过DVWA学习文件包含漏洞(File Include)
- 通过DVWA学习SQL注入漏洞
- 通过DVWA学习反射型XSS漏洞
- 通过DVWA学习存储型XSS漏洞
- DVWA漏洞学习(1)环境搭建
- DVWA漏洞学习(2)反射型XSS
- file include 文件包括漏洞,毒化日志,并生成木马,执行系统命令 dvwa低安全
- 通过DVWA学习SQL盲注
- DVWA中学习PHP常见漏洞及修复方法
- OS命令执行漏洞
- Struct2命令执行漏洞
- 命令执行漏洞
- 命令执行漏洞总结
- ImageMagick 命令执行漏洞
- Material design风格控件锦集
- Codeforces #392 B. Blown Garland
- oracle数据库
- 四:const基础
- 排序入门(2)----PAT-A1012 The Best Rank
- 通过DVWA学习命令执行漏洞(Command Execution)
- How to add network openconnect editor to fedora 25?
- 通俗讲解:缓存、缓存算法和缓存框架
- C++中产生随机整数的方法(srand()函数与rand()函数)
- CSS: display:none和visibility:hidden的区别
- How to remove unused kernel from fedora 25
- 学习整理HttpClient4.5成http访问服务类
- 二分贪心专题C
- 机器学习与计算机视觉资料汇总