重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
最后再来分析high级别的代码:
成都创新互联主要从事网站制作、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务大连,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
这里首先有一条语句需要理解:
$uploaded_ext = substr($uploaded_name, strrpos($uploaded_name, '.') + 1); |
在这条语句里,首先利用strrpos() 函数来查找“.”在变量$uploaded_name中出现的位置,然后将得到的数值加1,最后利用substr()函数从变量$uploaded_name的指定位置截取部分字符串。
总之,这条语句的作用就是从我们所上传的文件名中截取出扩展名部分。
接下来就用if语句来判断这个扩展名是否是大写或小写的jpg/jpeg,如果不是的话则不允许上传,因而这里就是定义了一份白名单,这也是安全性比较高的一种防御措施。
最后总结一下,如果要挖掘上传漏洞,那么就可以在网页代码中搜索$_FILES这个用于接收上传文件的变量,或是搜索move_uploaded_file这个用于执行上传操作的函数,然后再分析是否采取了过滤措施。
上传漏洞作为一种主流的***方式,其形式是非常多样的,单纯就DVWA中这种上传漏洞而言,定义白名单就是一种不错的防御方式。