【通关选择】upload-labs通关攻略(大全)_upload最新靶场通关(1)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

如图所示,已经上传服务器成功image.png
用浏览器访问xxx.jpg:
image.png
如图所示,xxx.jpg被成功解析

Pass-05(黑名单验证,.user.ini.)

这关多过滤了个.htaccess

 $deny\_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".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");

创建一个.user.ini文件并把它上传
image.png
.user.ini文件里的意思是:所有的php文件都自动包含666.jpg文件。.user.ini相当于一个用户自定义的php.ini
image.png
修改php-ini配置文件
把这里的300秒(即默认等5分钟)改为10
image.png
修改后保存php.ini文件并重启phpstudy
前提:在服务器上有一个456.php当中含有“一句话木马”文件,然后访问此php文件即可
Snipaste_2023-05-12_15-05-44.jpg

Pass-06 (黑名单绕过,大小写绕过)

滤掉.htaccess和.ini。但是没有使用strtolower()函数,可以使用大小写绕过黑名单
把.php 格式改为 .Php 上传上去之后,就会自动解析为.php

strtolower() 函数把字符串转换为小写

image.png

右键获取图片链接
image.png
参数获取phpinfo
image.png
连接蚁剑
image.png

Pass-07(黑名单验证,空格绕过)

没有使用trim()去除空格,可以使用空格绕过黑名单

image.png
正常显示
image.png

Pass-08 (黑名单验证,点号绕过)

这没有使用deldot()过滤文件名末尾的点,可以使用文件名后加.进行绕过
image.png

image.png
测试蚁剑连接
image.png

Pass-09(黑名单,特殊字符::$DATA绕过)

image.png
连接蚁剑,不能使用::$DATA
image.png

Pass-10(黑名单 点 空格 点

补充知识:deldot()函数从后向前检测,当检测到末尾的第一个点时会继续它的检测,但是遇到空格会停下来

使用shell.php. . 的方式绕过 (点 空格 点)
image.png

image.png

Pass-11(双写绕过)

提示信息:
image.png
源码要求(str_ireplace())函数将黑名单中的文件后缀名进行了替换为空
image.png

在burp中更改文件后缀名
image.png
在靶机中的效果,后缀名一律没有
image.png

str_ireplace() 函数不区分大小写,大小写绕过不适用,因此使用双写绕过

image.png
成功被传入
image.png

连接蚁剑成功,php文件成功被解析
image.png

Pass-12 (白名单绕过 00截断GET型)

源码:
只能上传jpg,png,gif图片的方式
用GET的方式传参,要求是:随机数+时间参数 +.+可控的类型,保证传入的参数可控
image.png

本体绕过方式:

apache版本调至5.2.17
magic_quotes_gpc=off

将php后缀改为服务器允许上传的文件后缀(png,gif,jpg),将123.php后的内容忽略掉,使用web.php.png文件中的内容上传到123.php中

原理:(参考:https://blog.csdn.net/weixin_47598409/article/details/115050869
php的一些函数的底层是C语言,而move_uploaded_file就是其中之一,遇到0x00会截断,0x表示16进制,URL中%00解码成16进制就是0x00。

image.png
右键访问图片链接,可以看到文件成功被解析

image.png

注意:连接蚁剑要将中间的字母数字都混杂内容清理掉,然后便可成功连接

image.png

Pass-13 (白名单绕过,post 00截断)

只允许上传.jpg|.png|.gif类型文件!认定为白名单验证
和PASS-12类似
image.png
本题绕过

apache版本调至5.2.17
magic_quotes_gpc=off

传参方式为POST,使用0x00进行截断,对数据进行0x00截断绕过
上传shell.php用BP抓包
上传的是一个php文件,首先要抓包更改它的后缀名来绕过白名单验证
提示:
image.png
因为源码告诉我们它的保存路径是拼接的,所以我们直接可以在可控的部分直接输入文件名,并且用%00截断来截断后面那些多余的内容

POST不会对%00进行解码
修改URL,进行解码
image.png
将其红框内容删除
image.png
访问后发现,php文件能够被浏览器解析
image.png
连接蚁剑成功
image.png

本来要做14关的,莫名其妙的弄错了,制作了个简易的图片马,然后自己还请记住了是文件包含的格式就构造了URL,不过此方法是适用于13关的

图片马,就是在图片中隐藏一句话木马。
在cmd命令行中,此操作是在随便目录下完成的,当是要参与制作的图片和一句话木马文件要处于同一个目录下。

首先love.png是一张普通的图片(随便截取一张),php.php存储的一句话木马(当然也可以写在其他类型的文件中),lovelove.png是生成的文件。

copy php.php/b + love.png lovelove.png
#其中b代表二进制文件,a代表assci

image.png
将生成的lovelove.png上传,传输成功,不过可以看到此时图片马是无法被浏览器解析的
image.png
不过构造的URL可以根据访问的页面,看到是可以被成功解析了

http://192.168.200.71/uploadlabs/include.php?file=/upload/7420230928033352.png

image.png
cmd连接
image.png

连接蚁剑
image.png

Pass-14(首次制作图片马)

image.png
在文件头部添加图片格式:
GIF的文件头为GIF89a,png的文件头为PNG。

随便截取一张图片
添加文件头
末尾写上一句话
image.png
成功上传之后,右键图片链接,然后用文件包含漏洞打开图片,被成功解析P
image.png

Pass-15(getimagesize)

image.png
getimagesize函数意思是:对目标文件的16进制去进行读取文件头的几个字符串是不是符合图片的要求
这关用第14关的图片马就可以实现,将含有一句话的木马放到图片中,然后将文件头此换成要求的三种图片的头格式
上传成功
image.png
可以被成功解析
image.png

Pass-16(exif_imagetype)

exif_imagetype()读取一个图像的第一个字节并检查其后缀名。需要在phpstudy的扩展种开启php.exif选项

做法和上一关同,不再赘述!

Pass-17(二次渲染)

提示信息
image.png
要求图片格式为JPG(后续还有代码要求格式为GIF,PNG 不在赘述)
image.png
move_uploaded_file(

t

m

p

n

a

m

e

,

tmpname,

tmpname,target_path)此函数附近有逻辑错误
image.png
不过本题是考察的图片马,制作图片马(理由上一几关的方式,文件包含以下)
image.png

不过webshell获取不了,从上传的目录上看,上传之后的一句话没有了
image.png

image.png

二次渲染后的一句话消失了。那么经过观察,看到从此处前后是不变的
image.png

用010Editorr打开,尝试蒋一句话插到此位置
image.png
然后蚁剑连接
image.png

Pass-18(条件竞争)

提示信息
image.png

使用move_uploaded_file()函数,将上传的文件保存到服务器,再进行判断是否是jpg、png、gif中的一种类型,如果在数组中就保存重命名,如果不在根据unlink()就直接删除

代码他是先将图片上传上去,才开始进行判断后缀名、二次渲染。如果在上传上去的一瞬间访问这个文件,那他就不能对这个文件删除、二次渲染。这就相当于我们打开了一个文件,然后再去删除这个文件,就会提示这个文件在另一程序中打开无法删除。

$is\_upload = false;
$msg = null;

if(isset($\_POST['submit'])){
    $ext\_arr = array('jpg','png','gif');
    $file\_name = $\_FILES['upload\_file']['name'];
    $temp\_file = $\_FILES['upload\_file']['tmp\_name'];
    $file\_ext = substr($file\_name,strrpos($file\_name,".")+1);
    $upload\_file = UPLOAD\_PATH . '/' . $file\_name;


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)**
![img](https://img-blog.csdnimg.cn/img_convert/2804ea3e1fd712d92a680af599448bcc.png)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

'];
    $file\_ext = substr($file\_name,strrpos($file\_name,".")+1);
    $upload\_file = UPLOAD\_PATH . '/' . $file\_name;


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)**
[外链图片转存中...(img-uzF59QIp-1713210325688)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值