0x00 有些wp里比较简略的内容,略做些分析,顺便记录点学到的姿势
0x01 wafupload
先放源码,标了几处重点。
详细分析一下代码
第一个判断MIME就是content-type是不是image/jpeg,在burp中抓包直接改掉即可。
第二个判断比较关键,判断扩展名是否是jpg、png、gif
问题出在代码是如何获取扩展名的。
1、首先,文件被上传时,判断是否POST了filename字段,如果有,就把$file变量直接赋值为POST上来的值,可以是数组。
如果没有POST该字段,$file变量取上传时的name,即$_FILES[‘file’]['name']
2、若$file文件名不是数组,就对字符串中的点号. 进行explode分割,分割成数组
如上传aa.bb.php会被切为
[0] = > 'aa'
[1] => 'bb'
[2] => 'php'
这样的数组
3、获取扩展名代码
$ext = end($file);
利用了end函数,这个函数可以返回数组的最后一项。
也就返回了最后的php作为$ext,再经过判断ext是否是jpg、png、gif的一种。