CISP-PTE中间件安全

1.Apache

1.1.apache 向上解析漏洞

  • 当apache解析一个无法解析的后缀名,会持续向上解析,直到解析完 整个文件名,或者成功解析文件为止。

  • 例如解析a.php.x1.x2.x3,当无法解析x3时会解析到x2,x2无法解析,再解析x1,知道解析到php成功解析为止。

  • 攻击示例:test.php.abc(其中abc不为任意黑名单也不属于Apacha解析白名单),可以用来绕过php的黑名单限制

image-20241010142735228

1.2.apache 换行解析漏洞(CVE-2017-15715)

  • 在解析xxx.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略

  • 上传方法(绕过黑名单)

    • 当为POST请求时,在文件名后缀上加上一个\x0a,(可通过bp改包实现)
  • 解析方法

image-20241010151318457

image-20241010151416986

1.3.SSI服务端嵌入(服务端包含)

  • 默认扩展名.stm、.shtm、.shtml。
  • 以下为文件内容。
1
<!--#exec cmd="id"-->
  • 通过上传这样一个文件的方式来执行命令。

image-20241010152033062

image-20241010152009959

2.Nginx

2.1.nginx解析漏洞(可过白名单)

  • 在图片码访问路径的后面加上一个/.php,nginx会将该文件以php的文件格式进行解析。

  • 操作步骤

    • 首先上传一张图片码
    • 再在访问路径后加上/.php

image-20241010220341873

image-20241010220259719

2.2.nginx 无编码空格和截至符 (绕白名单)

  • 通过上传一张图片码,然后通过在文件后添加.gif 0x20 0x00 0x2e php
  • 来对将图片码以php格式进行解析。
  • 具体操作
    • 首先上传一张图片码,抓包将后缀添加一个空格
    • 然后访问该图片码,抓包修改访问路径(图片抓不到包可以先在url后面加上其他字符来抓包)
    • 添加 0x20 0x00 0x2e php
    • 放包后成功解析。

image-20241010222241274

image-20241010221503792

image-20241010222313953

2.3.nginx 目录穿越 (综合题)

  • 通过在路径后添加../可直接穿越到根目录

image-20241010223054754

3.Tomcat

3.1.Tomcat密码爆破

  • tomcat是通过用户名和密码进行base64编码来登录,因此可以爆破tomcat用户密码

  • 首先抓取登录请求包,发送到intruder模块并添加变量

    • 修改payload,payload类型为Custom iterator,这样可以添加多个自定义值
    • 添加第一个位置即,用户名,分隔后缀为“:”
    • 添加第二个参数位置,即密码
  • 然后stack 开始爆破,相应200的即为爆破成功请求。

image-20241010230105444

image-20241010230339284

image-20241010230413032

image-20241010225937161

3.2.war包部署 图像界面部署木马

  • 通过jdk将木马jsp文件转换为war格式 命令jar cvf ttt.war 2.jsp 需要使用低版本的jdk,高版本jdk会显示安全问题,无法打包。
  • 然后登陆tomcat进行部署,显示ok表示部署成功
  • 访问网站根目录,即部署的jsp文件。

image-20241010232035546

image-20241010232412391

image-20241010232512910

image-20241010232604230

密码156156,网页版jsp木马

image-20241010232742628

3.3.Session操作 (任意身份登陆)

  • 通过访问路径 /examples/servlets/servlet/SessionExample ,可以操作添加自定义session
  • 添加成功后访问首页,显示登陆成功。

image-20241010233339656

image-20241010233451636

3.4.文件接口部署war包

  • 访问接口/manager/text/serverinfo 输入用户名和密码,默认为admin,admin

  • 访问该页面显示文本信息表示权限正常。

  • 具体部署路径/manager/text/deploy?path=/getshell

  • 具体操作

    • 首先抓取到该部署请求。
    • 修改get请求为put请求,同时选择 paste from file 添加war包文件。(如果不成功可以修改请求数据显示为二进制)
    • 返回数据显示OK即表示部署成功
    • 然后访问/getshell/2.jsp即可。

image-20241010234127612

image-20241010234345200

image-20241010234623399

image-20241010234930341

image-20241011000038444

image-20241010235841048

image-20241011000253722