一口气学完upload-labs 文件上传靶场

admin 2024年5月19日01:37:51评论4 views字数 2998阅读9分59秒阅读模式

upload-labs是专门针对文件上传的靶场。总共21关,现在搬起小板凳,让我们一起来学习吧!

一口气学完upload-labs 文件上传靶场

靶场环境安装

这里为了方便,我们直接在Windows下用phpstudy来搭建。(Linux环境或php版本过高,可能导致某些关卡不能顺利通过。)一口气学完upload-labs 文件上传靶场

Pass-01

我们直接在kali中生成一个php shell。

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

我们直接尝试上传php。提示不是图片格式!一口气学完upload-labs 文件上传靶场

审查元素,发现有js对上传做了限制,换句话来说就是进行了前端限制。我们将相应的js语句删掉,或者将js禁用。便可直接上传。一口气学完upload-labs 文件上传靶场

一口气学完upload-labs 文件上传靶场

Pass-02

我们首先在源码中发现,在上传过程中,将信息头的 Content-Type 字段限制在了 image/jpeg,我们需要用burp进行抓包,修改信息头就行了。即,将Content-Type: application/x-php修改为Content-Type: image/jpeg一口气学完upload-labs 文件上传靶场

Pass-03

通过查看源码,我们可以看到,将文件的后缀名进行了限制

$deny_ext = array('.asp','.aspx','.php','.jsp');

但是,在php中.php3、.php4、.php5、.pht、.phtml、.phps 的文件都会被解析为 php 文件。因此,我们需要将原来的kali.php改为kali.phtml即可。当然这种方法也只有低版本的php中才能复现。一口气学完upload-labs 文件上传靶场

Pass-04

通过查看源码,我们发现能把禁用的后缀都禁用了。一口气学完upload-labs 文件上传靶场这时,我们要使用 .htaccess文件实现攻击。

# 将后缀名为 h-t-m 的文件解析为 php 脚本执行
AddType application/x-httpd-php .h-t-m
# 将后缀名为 h-t-m 的文件用 php处理器 来处理,效果同上
AddHandler php5-script .h-t-m
# 将所有文件解析为 php 脚本执行
SetHandler application/x-httpd-php

将文件直接修改后缀名为 .h-t-m,配置文件内输入上述指令且保证文件名为 .htaccess 即可。

Pass-05

仔细观察黑名单,会发现后面几关的黑名单都比这一关多了一个.iniphp.ini 是 php 的配置文件,.user.ini 中的字段也会被 php 视为配置文件来处理,从而导致 php 的文件解析漏洞。

准备文件:创建 .user.ini文件,内容为:

auto_prepend_file=520.h-t-m

修改文件的文件名为 kali.h-t-m和上关一样。上传即可!

Pass-06

仔细观察黑名单,发现漏掉了大写的PHP修改后缀名为kali.PHP上传即可。

Pass-07

在 Burp Suite 中打开靶机,直接上传备好的木马文件,抓包并在上传的文件名末尾加上一个空格。

一口气学完upload-labs 文件上传靶场
一口气学完upload-labs 文件上传靶场

Pass-08

通过阅读代码,我们发现了这句

$file_name = deldot($file_name);//删除文件名末尾的点

值得注意的是由于后续语句都基于最后一个点所提取出来的后缀名做的操作,而该语句的删除也导致后缀名提取为空,即 .php. 中最后一个点后面所接的后缀名为空。因此,我们需要在在 BurpSuite 中上传文件抓包修改文件名,只需要在最后加上一个点即可.一口气学完upload-labs 文件上传靶场

Pass-09

通过观察源码,少了

$file_ext = str_ireplace('::$DATA'''$file_ext);//去除字符串::$DATA

关于 ::DATA 前的数据当作文件名。因此,如果文件名为 h-t-m.php::

DATA 即可:

一口气学完upload-labs 文件上传靶场

Pass-10

在Windows中, .php.执行时却因为自动忽略而变成.php。因此将文件的后缀名修改为.php. .一口气学完upload-labs 文件上传靶场

Pass-11

直接查看源码,重点在这句:

$file_name = str_ireplace($deny_ext,""$file_name);

那就直接将文件后缀名改成 .pphphp上传即可。

Pass-12

当我们上传一个 jpg 文件,并且指定的路径 save_path 为 ../kali.php%00,连之后就会变成 ../kali.php%00/[随机数].jpg. 而这段字符串在%00就已经被截断了,因此原本将文件上传至 jpg 文件的语句就变成的将文件上传至 kali.php 文件中。

一口气学完upload-labs 文件上传靶场

Pass-13

打开 BurpSuite 上传上一关相同的文件(以 .jpg 后缀作为伪装的 php 文件),我们可以在 Raw 模式下编辑好路径,最后留下一个字符便于我们修改,这里预留一个 / 字符:在二进制(Hex)中找到对应字符,将其修改为 00 即可:

一口气学完upload-labs 文件上传靶场

Pass-14

制作图片🐎就行了。

copy [图片文件名] /b + [shell文件名] /a [合成后的文件名]

一口气学完upload-labs 文件上传靶场一口气学完upload-labs 文件上传靶场

Pass-15

利用Pass-14 的方法,将文件上传靶机,成功。一口气学完upload-labs 文件上传靶场

Pass-16

这关需要开启对应的php模块,才能成功。在 phpstudy 中自带的 php 版本中直接勾选 php_exif 模块即可,也可能叫 exif 上传图片🐎后,利用include.php?file=图片路劲加载即可。一口气学完upload-labs 文件上传靶场

Pass-17

重渲染用到的 imagecreatefrom* 函数需要GD 库的支持,在 phpstudy 中只需将php_gd2勾选即可一口气学完upload-labs 文件上传靶场

Pass-18

在 Burp Suite 中打开靶机,直接上传文件抓包,右键send to Intruder.在 Intruder 下的 Positions 页面就可以看到我们上传文件抓到的包了,现在我们只需一直发送这个包即可。首先在 Positions 页面点击clear §其中 § 用于包裹有效荷载,由于我们不需要修改,因此删除§.之后转到 Payloads 页面修改 Payload type 同样因为我们不需要修改有效荷载,因此选择 Null payloads.一口气学完upload-labs 文件上传靶场之后该页面就会多一个条目 Payload Option [Null payloads],这里选择 Continue indefinitely,

后点击右上角橙色按钮 Start attack 即开始运作,从而实现上传。

Pass-19

构造一个 .ppt 文件,在原文件后直接添加后缀 .ppt 即可,在 Burp Suite 中打开靶机,上传文件,抓包后发送至 Intruder,具体步骤与 Pass-18 中相同,这里稍加概括,Clear $ 后设置 Payloads 为 Null payloads,并选择 Continue indefinitely 以无限重发,最后在 Resource Pool 中设置适当的最大并发请求数 Maximum concurrent requests 即可 Start attack .一口气学完upload-labs 文件上传靶场

Pass-20

直接在文件名末尾加上/.一口气学完upload-labs 文件上传靶场

Pass-21

Burp Suite 抓包!由于有 MIME 检查,因此原文件名应伪装为合法图片文件。一口气学完upload-labs 文件上传靶场在 save_name 变量名后加上 [0] 即可,其中 0 表示数组第一个元素,同样后续元素定义则使用 save_name[x] 其中 x 为对应索引。

一口气学完upload-labs 文件上传靶场

总结

由于笔者环境问题,部分关卡在实验时没有成功。在文中仅提供了思路供参考。当然方法应该比较多,大家可以自行查阅资料。本文仅供参考!

BREAK AWAY
表哥推荐
01
春秋云镜靶场攻略(一)
02
文件上传漏洞原理解析
03
多姿势弹shell 不怕姿势多,就怕记不住

关注我们 下期更精彩

怕丢失 关注我

原文始发于微信公众号(kali笔记):一口气学完upload-labs 文件上传靶场

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月19日01:37:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一口气学完upload-labs 文件上传靶场https://cn-sec.com/archives/2036456.html

发表评论

匿名网友 填写信息