DVWA系列之24 high级别上传漏洞

最后再来分析high级别的代码:

DVWA系列之24 high级别上传漏洞_第1张图片

这里首先有一条语句需要理解:

$uploaded_ext = substr($uploaded_name, strrpos($uploaded_name, '.') + 1);

在这条语句里,首先利用strrpos() 函数来查找“.”在变量$uploaded_name中出现的位置,然后将得到的数值加1,最后利用substr()函数从变量$uploaded_name的指定位置截取部分字符串。

总之,这条语句的作用就是从我们所上传的文件名中截取出扩展名部分。

接下来就用if语句来判断这个扩展名是否是大写或小写的jpg/jpeg,如果不是的话则不允许上传,因而这里就是定义了一份白名单,这也是安全性比较高的一种防御措施。

最后总结一下,如果要挖掘上传漏洞,那么就可以在网页代码中搜索$_FILES这个用于接收上传文件的变量,或是搜索move_uploaded_file这个用于执行上传操作的函数,然后再分析是否采取了过滤措施。

上传漏洞作为一种主流的***方式,其形式是非常多样的,单纯就DVWA中这种上传漏洞而言,定义白名单就是一种不错的防御方式。

你可能感兴趣的:(DVWA系列之24 high级别上传漏洞)