北京高端网站建设公司浩森宇特,上海跨境电商公司,祝明电子商务网站建设实验报告,晋城做网站的1.下载安装
下载地址
链接#xff1a;百度网盘-链接不存在 提取码#xff1a;jhks
安装
直接把他放在phpstudy的WWW目录中。#xff08;phpstudy的下载安装#xff0c;可以自行百度一下#xff09;
打开
访问地址#xff1a;127.0.0.1/upload-labs 问题
这里可能…1.下载安装
下载地址
链接百度网盘-链接不存在 提取码jhks
安装
直接把他放在phpstudy的WWW目录中。phpstudy的下载安装可以自行百度一下
打开
访问地址127.0.0.1/upload-labs 问题
这里可能会遇到一个问题burpsuite会抓不到包。这时我们只需把127.0.0.1改为本机IPv4的地址。查看本机IPv的方法打开cmd,输入ipconfig.这样就可以正常抓包了 接下来就可以打靶了。
upload-labs(1-11关)
第一关
第一关通过右键查看源代码或者提示我们不难发现是一个前端验证一般前端验证都是纸老虎形同虚设。 所以第一关的通关方法有三种
第一就是将浏览器js代码禁用掉右键---检查---调试器---设置---禁用JavaScript。快捷方式f12---f1就可以了 然后就可以上传了。 这种方法有缺陷因为禁用了js代码如果在实战中网站的一些正常功能可能无法显示。当然打靶通关是可以的。
第二种方法是用bp抓包工具直接将改后缀名 如果js代码是在本地运行很可能抓不到数据包。这种方法也是不太行同样通过第一关是可以的。
第三种方法是将网站源码复制下来放到本地然后将js代码删除。
右键---查看网站源代码---全部复制---创建一个记事本---将代码放进去---把记事本后缀名改为.html---用Notepad打开---找到js代码---删除 如果我们打开是有上传文件的界面但是不知道要上传给谁。这时我们返回到最开始右键---检查---网络---然后上传一个正常的图片。这样我们就可以看到这个文件传给谁了。 然后我们在用Notepad打开我们自己的html文件修改action,这个action是告诉他这个图片提交给谁因为这个源代码中没有我们就自己加一个。 最后用浏览器打开我们的html文件上传。php文件即可。建议学会用第三种方法在实战中可能会遇到很多限制条件第三种方法才是最完美的。
第二关
根据源代码我们可以发现这一关是常见验证中的文件类型验证也就是验证MIME信息 所以进行抓包将Content-Type修改为允许上传的类型image/jpeg、image/png、image/gif三选一。 查看回显发现已经上传成功 访问一下 第二关完美通关
第三关
查看源代码我们可以发现是一个黑名单验证 上一篇讲过黑名单是规定不允许上传的文件但是如果黑名单定义不完整的话是可以实现绕过的用.phtml .phps .php5 .pht进行绕过。这里我们直接上传一个.php5文件 上传成功,访问看一下 因为上传上去的文件名会改变但是在数据包中有回显实战中可能没有所以我们还是可以访问的。
第三关就完美通过了
注意
要在apache的httpd.conf中有如下配置代码AddType application/x-httpd-php .php .phtml .phps .php5 .pht如果不配置他是无法解析php5代码的访问的时候就是一个空白页
配置过程以phpstudy2018版本为例 1.打开其他选项单 2.打开配置文件---打开httpd.conf
3.修改代码去掉注释符# 4.保存重启phpstudy就可以了
第四关
这一关我们可以看到禁止上传文件可太多了 这种情况我们可以尝试上传一个.htaccess配置文件将4.png图片当作php代码进行解析首先创建一个.htaccess文件里面写上代码 FilesMatch 4.png SetHandler application/x-httpd-php
这串代码的意思是如果文件中有一个4.png的文件他就会被解析为.php把这个文件上传上去。 上传上去之后我们在把图片用Notepad打开里面写上php代码。再进行上传。 最后我们访问这个4.png文件 第四关就完美通过了
注意
.htaccess文件不能起名字他就是.htaccess文件如果你将他改为4.htaccess或者其他的什么名字是不可以的无法解析。在实战中有可能上传上去这个文件会被自动重命名被重命名了就不可以了。
如果以上操作都弄好了还是出不来还是去改phpstudy配置文件其他选项菜单--打开配置文件---httpd.conf 箭头指向位置一开始none,改为all保存重启phpstudy就可以了。
第五关
第五关其实是有些upload-labs的第九关我也认为把这关放到第九关比较合适。如果你的第五关和我的不一样那么我的第六关就是你的第五关依次类推到第九关。
这一关的思路是它没有循环验证也就是说这些收尾去空删除末尾的点去除字符串::$DATA转换为小写这些东西只是验证了一次。所以我们的绕过思路就很简单在数据包中把后缀名改为.php. .说一下他的验证过程首先他发现有一个点这时会把他去掉又发现有一个空格也会把它去掉我们这时还有一个点也就是.php. 由于他只是验证一次所以不会在去掉我们的点这时就可以上传成功也可以解析成功。如下图: 上传成功然后访问 第五关完美通关
第六关
看第六关的代码我们知道这一关没有强制将大写转换为小写所以我们可以上传纯大写或者大小写结合的后缀名 但是要注意不要和限制上传的文件后缀名写重复了。 直接上传一个后缀名为.PHP的文件 我们可以看到上传成功访问 第六关就完美通关了。
第七关
直接看代码发现没有收尾去空。上传php文件抓包在后面加空格。 然后我们可以发现上传成功访问 第七关闯关成功
第八关
第八关我们可以发现没有删除文件名末尾的点和第七关思路一样就是把空格换成点 然后我们可以发现上传成功访问 第八关闯关成功
第九关
第九关查看代码发现没有去除字符串::$DATA关于什么是::$DATA参考上一篇文章和第七八关一样直接上传在数据包的php后面直接加上::$DATA 然后我们可以发现上传成功访问 第九关闯关成功
第十关
第十关和第五关一样第五关怎么玩第十关就怎么玩。好像第五关和第十关重复了接下来的十一关有可能是你们的第十关如果你们的upload-labs和我的一样就正常看
第十一关
第十一关也是黑名单的绕过他的意思是如果你上传了上面规定的文件他就会把你的后缀名去掉比如你上传了11.php那么他就会把你的php过滤掉。文件没有了后缀名自然也就无法解析了。但是他是一次过滤也就是说我们写两个php就可以了10.pphphp,他过滤掉一个正好剩下了11.php。如下图所示 上传成功然后访问 十一关通关
总结
这些全部为黑名单绕过而且只是验证一次所以这些关卡全部可以用一个思路解出来那就是.php. . 都是可以这样的但是通关不是目的让知识得到巩固才是目的。
upload-labs(12-21关)
接下来的主要就是白名单的绕过直接开干。
第十二关
第十二关我们看代码可以得知是一个白名单只允许上传jpg,png,gif格式的文件。但是上传路径是可以控制的可以使用%00进行截断。%00只能用于php版本低于5.3的。这里我们需要把phpstudy切换一下版本,把magic_quotes_gpc关闭以phpstudy为例。其他选项菜单---php扩展及设置---参数开关设置---把magic_quotes_gpc关闭。 图片就凑合看一下吧找到位置就可以了。接下来就上传,要上传jpg文件。然后去修改地址 这里相当于上传了一个12.php文件到upload中%00就是截断了后面的不要了。 访问 这样就可以了顺利通关。
第十三关
第十三关和第十二关是差不多的只不过是接受值变成了post,她两的差别呢就是get会自行解码post不会自行解码我们需要对%00进行编码,选中%00右键按下图操作来 编码好我们就可以上传了 上传成功访问 第十三关成功
第十四关
第十四关是用图片php代码组成一个图片码进行上传当然要想解析出来这个图片还得有这个包含漏洞。我们看到他已经说了网站存在包含漏洞 首先制作一个图片码可以直接用Notepad直接打开图片后面加一个php代码但是需要16进制要不然图片可能出错。 也可以cmd进行生成命令语句copy 14.jpg /b 14.php /a webshell.jpg 如图所示我们在上传这个生成后的图片。 上传 访问 看一下访问的地址因为一开始就说了有一个包含漏洞 所以地址要加上file
第十四关闯关成功。
第十五关
第十五关我们要了解一个函数 我们来看这个 getimagesize函数这个函数的意思是会对目标文件的16进制去进行一个读取去读取头几个字符串是不是符合图片的要求的
所以这关还是用和14关一样的方法生成带有php代码的图片上传配合包含漏洞拿下此关。 上传成功访问 十五关通关成功
十六关
第16关同1415关思路一样操作一样。但是需要打开php_exif phpstudy的其他选项菜单---打开配置文件---php-ini 重启phpstudy即可
exif_imagetype() 读取一个图像的第一个字节并检查其签名。
本函数可用来避免调用其它 exif 函数用到了不支持的文件类型上或和 $_SERVER[HTTP_ACCEPT] 结合使用来检查浏览器是否可以显示某个指定的图像。
通过过程参考1415关。
第十七关
第十七关主要是把二次渲染绕过 imagecreatefromjpeg函数 二次渲染是由Gif文件或 URL 创建一个新图象。成功则返回一图像标识符/图像资源失败则返回false导致图片马的数据丢失上传图片马失败。 进行通关 按照原来的方法进行上传我们可以发现还是可以上传的但是配合包含漏洞却无法解析这时我们把上传的图片复制下来用Notepad打开发现我们原来写的php代码没有了这就是二次渲染把我们里面的php代码删掉了。 我们 把原图和他修改过的图片进行比较看看哪个部分没有被修改。将php代码放到没有被更改的部分配合包含漏洞就可以了。 使用HxD Hex Editor进行比较 下载地址HxD - Freeware Hex Editor and Disk Editor | mh-nexus 然后比较 具体实现需要自己编写Python程序人工尝试基本是不可能构造出能绕过渲染函数的图片webshell的知道怎么解就可以了。
第十八关
第十八关主要是对条件竞争的考察我们看代码他是先将图片上传上去才开始进行判断后缀名、二次渲染。如果我们在上传上去的一瞬间访问这个文件那他就不能对这个文件删除、二次渲染。这就相当于我们打开了一个文件然后再去删除这个文件就会提示这个文件在另一程序中打开无法删除。
操作直接上传一个php文件然后进行抓包将数据包发送至intruder下如图操作 然后如图操作修改 再修改一下线程 然后发包用另一个浏览器一直访问18.php地址只要在上传的一瞬间他还没来的及删除、修改就可以了。卡吧 18关完美通关。
第十九关
第十九关的上传路径有点问题不是上传到了upload里面建议修改一下进入第十九关找到myupload.php文件如图所示修改。 重启就可以了。
这关是检查了后缀名然后上传然后在进行二次渲染。这时我们只能上传图片马而且得配合解析漏洞进行通关
操作和18关的一样就是访问地址是加上包含漏洞的。 没什么问题这些漏洞其实都是逻辑上的漏洞二次渲染本身是没什么问题的。如果人家先验证在进行上传那就没有办法了。
19关完美通关。
第二十关
20关是两种通关方法 第一种 move_uploaded_file()函数中的img_path是由post参数save_name控制的可以在save_name利用%00截断注意php版本低于5.3。如图 访问 由于这种前面关卡已经用过相信作者真正用意不是考这个。
第二种 move_uploaded_file()有这么一个特性会忽略掉文件末尾的 /.
所以我们把他修改为如图所示 访问 第二十关完美通关
第二十一关
这一关是利用数组绕过验证 访问 十九关是一个黑名单php/.就可以绕过但是二十关他会检测文件后缀名是一个白名单。所以把他拆分掉第三部分是.png所以就会上传。实际上他上传上去的东西是 upload-21.php/.png 上传上去的东西就是upload-21.php。实现了绕过。 完美通关