Web安全-命令执行漏洞利用与防护

实验声明:本实验教程仅供研究学习使用,请勿用于非法用途,违者一律自行承担所有风险!

命令执行漏洞利用与防护

【实验目的】

  掌握命令执行漏洞产生的原因和利用方法,感受其带来的危害,了解相应的防范策略。

【实验环境】

**目标靶机:**DVWA2008
(用户名: 360college 密码: 360College)

**Web渗透主机:**WebPentester
(用户名: college 密码: 360College)

【实验原理】

  命令执行漏洞指的是网站的应用程序有些需要调用执行系统命令,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。本实验通过利用网站的命令执行漏洞,使大家了解命令执行漏洞产生的原因,感受其带来的危害,了解相应的防范策略。

  当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。

  常见的原因有:

  (1)代码层过滤不严格:商业应用需要执行命令,商业应用的一些核心代码可能封住在二进制文件当中,在web应用中通过system函数调用。

system("/bin/program --arg $arg")

  (2)调用第三方组件存在的代码执行漏洞:如wordpress,可以选择imagemagick这个常用的图片处理组件,处理用户上传图片时造成命令执行;还有JAVA中 struts2/elasticsearch groovy等。

实验步骤

第一步 登录存在文件包含漏洞的Web服务器并启动网站Web服务

  (1)使用360College账号登录靶机(密码为360College)

  (2)双击桌面快捷方式phpStudy启动服务:

  Web服务成功启动后的界面如下图所示:

第二步 渗透主机远程访问DVWA网站,并利用命令执行漏洞获取信息

  (1)输入url地址:

  http://【靶机IP】:8085

  以用户名admin密码password进行登录:

  (2)设置训练级别为low

  (3)在命令执行菜单框下输入127.0.0.1并通过submit提交,此时反馈信息显示执行了“ping 127.0.0.1”命令

  (4)在命令执行菜单框下输入127.0.0.1 && natstat -an再次通过submit提交,此时反馈信息显示不仅执行了“ping 127.0.0.1”命令,而且还执行了“natstat -an”命令:

  执行结果如图所示:

  (5)如果分析DVWA命令执行功能源代码,如图所示:

  其在使用shell_exec命令执行函数时没有将输入的参数进行限制,导致能够带入其他系统命令来执行。

【思考与总结】

  命令执行漏洞能够造成的危害有:

  (1)执行系统命令或读写系统文件;

  (2)反弹内外shell;

  (3)控制整个Web服务器;

  (4)辅助内网渗透。

  对其的防护策略是:

  (1)尽量不要执行一些外部命令;

  (2)使用自定义函数或函数库来代替外部命令;

  (3)使用一些过滤函数来对用户输入的命令参数进行过滤;

  (4)指定可执行文件的路径,预先把要使用的命令放置在该路径下。

posted @ 2020-11-17 19:51  码小农的幸福生活  阅读(870)  评论(0编辑  收藏  举报