upload-labs1-13
upload-labs1-13
pass-01
首先我们新建文件a.php并用一句话木马<?php @eval($_POST['cmd']); ?>
然后我们上传1.php发现弹窗给出了白名单类型为jpg.png.gif
并且burp抓包无法获取数据包我们就可以猜测是前端验证
我们禁用前端js再尝试上传
发现上传成功
然后我们访问图片通过hackbar构造post传参返回php界面即成功
pass-02
上传1.php并用burp抓包将数据发送至repeater模块发现提示文件类型不正确
分析数据包我们可以猜测是Content-Type类型有限制
我们修改Content-Type:image/jpeg或其他白名单重新发送数据包即可
pass-03
再次上传1.php 弹出黑名单不允许asp,aspx,php,jsp
在某些特定环境中某些特殊后缀仍会被当作php文件解析 php、php2、php3、php4、php5、php6、php7、pht、phtm、phtml
我们通过尝试改成.ptml发现直接上传成功
pass-04
在尝试了前3关的方式均绕过失败通过提示发现有一个文件没有绕过
即.htaccess文件
我们就可以先上传.htaccess再上传php文件
pass-05
上传5.php、.htaccess、5.phtml等文件发现都被禁用
由提示知上传目录有readme.php
由百度可知
我们本地创建.user.ini文件和并改.php后缀.png上传
auto_prepend_file =
pass-06
通过提示可以发现文件大小写过滤不严谨
我们通过修改.php为.PHP即可上传成功
pass-07
通过查看源码发现没有对上传文件做去空格处理 trim()
利用burp抓包修改对应的文件名来添加空格
然后成功上传
pass-08
同理这次源码当中没有对文件后缀名做去点.的操作 strrchr($file_name, ‘.’)
Windows系统下,文件后缀名最后一个点会被自动去除。上传 8.php.
pass-09
这次是未对上传的文件后缀名做去::$DATA
处理
Windows系统下,如果上传的文件名为9.php::$DATA
会在服务器上生成一个9.php的文件,其内容和所上传文件内容相同并被解析。
pass-10
这次没有缺失操作
可以用.php. .绕过
代码运行最后得到的后缀为"." 不在黑名单中 然而又用原来的10.php. .来保存文件 由于windows在文件命名中会自动删除.和空格 所以最终得到的是10.php 因此绕过了黑名单限制
pass-11
我们上传php时发现文件的后缀名消失了
我们可以尝试双鞋.phpphp即可成功
pass-12
PS:需要php的版本号低于5.3.29
,且magic_quotes_gpc
为关闭状态(需要自己关闭)
设置上传路径为upload/12.php%00
,添加12.php%00
内容为了控制路径,上传文件后缀为白名单即可 例:12.png,保存后为/upload/12.php%00*****.png
,但服务端读取到%00时会自动结束,将文件内容保存至12.php中
然后即可
pass-13
第13题与12题思路一样使用白名单限制上传文件类型,但上传文件的存放路径可控,
但因为是POST型,需要对%00进行解码或在16进制中修改,POST不会像GET那样对%00进行自动解码。
所以只要在burp里面输入%00 然后进行url解码即可 得到就是0x00
,需要对%00进行解码或在16进制中修改,POST不会像GET那样对%00进行自动解码。
所以只要在burp里面输入%00 然后进行url解码即可 得到就是0x00
[外链图片转存中…(img-TNLsvXB6-1731048589384)]
标签:文件,00,12,upload,labs,pass,php,上传 From: https://blog.csdn.net/2401_87235125/article/details/143626487