文件上传之双写文件名和::$DATA绕过
文件上传实验室upload-labs第9,10,11,12关
前言
一、什么是::$DATA
::$DATA是window的一个特殊属性,解析时会自动省略掉。
二、双写文件名和::$DATA绕过
1.利用::$DATA绕过
第九关
查看源码发现没有限制::$DATA后缀名
上传文件58.jpg
利用burp抓包
得到文件202204161343202393.php
修改后缀名成功,复制网址到蚁剑连接即可。
连接成功,实验成功。
第十关
查看源码发现限制了空格和点,这里可以进行构造点和空格和点(. .)进行绕过
上传文件58.jpg
抓包进行修改文件后缀名
将文件修改为了58.php. .
得到文件路径为upload/58.php.
复制网址到蚁剑连接即可
连接成功,实验结束。
2.双写文件名绕过
第十一关
查看源码提示,发现php文件会被删除
利用burp抓包
发现没有了后缀名
打开网址发现不存在,这时可以利用双写文件名进行绕过
修改为58.pphphp
成功绕过,上传成功。
复制网址到蚁剑连接即可,实验结束。
第21关
源码看不懂,但是查百度发现也是双写绕过
上传文件58.jpg
修改文件名为.php
将以下代码
------WebKitFormBoundaryGV4EMgYPFfuHTeBv
Content-Disposition: form-data; name=“save_name”
upload-20.jpg
------WebKitFormBoundaryGV4EMgYPFfuHTeBv
Content-Disposition: form-data; name=“submit”
修改为
------WebKitFormBoundaryRsV4F8SwwBFiYUAl
Content-Disposition: form-data; name=“save_name[0]”
upload-20.php
------WebKitFormBoundaryRsV4F8SwwBFiYUAl
Content-Disposition: form-data; name=“save_name[2]”
jpg
------WebKitFormBoundaryRsV4F8SwwBFiYUAl
Content-Disposition: form-data; name=“submit”
进行重发一次
重发成功,文件上传成功,生成.php文件。
打开文件网址,复制网址到蚁剑连接
连接成功,成功获取shell,实验结束。
总结
本次实验是对文件上传简单靶场的练习,对双写文件名和window特性::$DATA绕过方法的认识,掌握了文件上传漏洞的攻击和利用方法。