文件上传漏洞靶场源码关键语句分析

本文深入分析漏洞靶场中上传关卡的PHP源代码,探讨如何理解及绕过后缀黑名单过滤,实现文件上传的目标。文章详细解读了关键代码语句,包括变量作用、条件判断及字符串处理函数,提供了绕过技巧。
  • 漏洞靶场是进行渗透技术学习和提高的利器,可以学习到很多基本的Payload和渗透思路,但是学习Payload只是应该达到的基本目标,对过滤本身设置的思路以及对应的绕过思路进行思考和总结才是更为重要的。也就是“渔”和“鱼”的关系。
  • 过滤代码可以使用很多种语言来编写,如javascript、PHP等,代码很多时候是相通或可以类比的,因此对于很多代码功底不是很深的初学者,可以对基本代码进行分析和学习,在遇到其它代码时即使无法做到每行都能看懂,也能够看清楚代码的行文逻辑以及整体框架,只需要对一些关键部分进行精读就可以获取代码防御的核心,进而进行击破。本篇通过对靶场代码的关键语句解读来分析关卡的设置思路。对几个关卡的源代码进行仔细分析,来获取关卡设置的逻辑框架,并分析核心部分的代码语句,这对于后续的闯关以及思路的拓展是很有帮助的。
    在这里插入图片描述
    这是upload第5关的源代码,相信payload很容易就可以搜到,下面我们对它的源码框架进行分析:
    科普一下基础知识,该源码是用PHP语言进行编写的,代码中可以看到很多$符号,这是PHP语言中表示变量的,同时,PHP语言是一种弱类型语言,也就是说它再创建变量时不需要进行声明,直接赋值即可,这一点与C等强类型的语言有区别。
    1.可以看到源码中有很多的变量,我们需要搞清楚其中比较重要的变量的含义:
    $is_upload:用来定义我们上传文件是否成功,布尔型变量,TRUE代表成功,反之代表失败。
    $msg:用来进行提示的变量,一般是在文件上传出问题的时候进行的提示,在这里是文字性的提示,如:上传出错,文件类型不允许上传等。
    $_POST:变量用于收集来自 method=“post” 的表单中的值,需与HTML中的表单进行配合,本处用来获取提交(submit)的文件。
    $deny_ext:该源代码的核心变量之一,用来定义扩展名黑名单,不同关卡定义的黑名单可能不同,需要注意的是这里仅仅定义的是后缀名
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值