链接:https://pan.baidu.com/s/1I7nwmMdt9XB2AbcYQJ3_eA
提取码:1234
简介:个人学习记录
目录
一、前端js验证
二、mime类型绕过
三、黑名单绕过
四、.htaccess文件配置文件漏洞,无过滤
五、考查 .user.ini文件
六、大小写
七、trim()去空操作
八、winous特性,以.结尾无效
九、::$data
十、一次过滤没有循环
十一、这一关进行了过滤php字符串
十二、%00截断:url 的终止符
十三、post %00截断
十四、文件包含漏洞+图片马上传(只对图片的文件头进行了检测,可以只保留文件头)
十五、文件包含漏洞+图片马上传
十六、文件包含漏洞+图片马上传
十七、二次渲染
十八、逻辑漏洞+文件竞争
十九、图片马和文件包含漏洞
二十、截取数据包
二十一、数组和文件上传检测的结合
一、前端js验证
第一关主要前端的JavaScript验证,两种绕过方式
1.关闭JavaScript,但是在真实情况下,可能造成页面布局和显示问题等等
2.第二个是将页面源代码保存到本地保存为html格式,删除JavaScript那部分验证代码,然后
在提交表单(form)里,将action="绝对地址"添加后再访问,然后提交.php型的文件。
二、mime类型绕过
mime类型:
媒体类型(通常称为 Multipurpose Internet Mail Extensions 或 MIME 类型 )是一种标准,用来表示文档、文件或字节流的性质和格式。它在IETF RFC 6838中进行了定义和标准化。
用burp抓包,然后修改
改为image/jpeg
即可成功上传。
三、黑名单绕过
试着上传
黑名单验证,但是它不全,我们可以上传一个后缀名为 .php3 .php5 .phtml 的后门文件
(在apache中对于phtml的解析没有开启,在httpd.conf中开启即可)
在用菜刀连接
四、.htaccess文件配置文件漏洞,无过滤
适用条件:
php版本处于5.6以下
没有开启nts
1.制作一个图片木马
2.首先要有一个php文件里面写入
<?php
phpinfo?>
3.dos下创建命令
copy 1.jpg /b+shell.php /a phpinfo.jpg
4./a和/b是啥
(1)/a
就是把文件内容以ASCII编码方式进行处理。
copy /a file1.txt+file2.txt+file3.txt newfile.txt
把file1.txt,file2.txt和file3.txt,以ASCII编码方式合并为newfile.txt这个文件。这个最终的文件中就包含了前面三个文件的内容。
(2)/b
如果一个图片文件是1.jpg,一个文本文件是2.txt,可以用如下命令
copy /b 1.jpg+2.txt 3.jpg
这样就把2.txt加到1.jpg的结尾生成了新文件。
5.上传一个.htaccess文件
文件里面写入
AddType application/x-httpd-php .png .jpeg
6.之后上传木马图片
可以执行
五、考查 .user.ini文件
注意:apache中间件是无法正确执行的。我们在phpstudy改为nginx
建立一个 .user.ini文件,写入
auto_prepend_file=phpinfo.png
然后上传
之后再上传一个图片木马
执行readme.php即可执行出图片木马中的代码
六、大小写
在burp中截取请求数据包
然后将.php中改成大写
注意:此方法只适用于windous,而linux是区分大小写的,不能正常执行
七、trim()去空操作
没有首尾去空 trim()
burp抓包首尾加个空格即可
八、winous特性,以.结尾无效
在数据包尾部加.
代码中缺少
$file_name = deldot($file_name);//删除文件名末尾的点
九、::$data
::$data的作用是将webshell.php当做字符流处理,所以对其后缀名检测不成功。
这一关没有::$data的过滤代码
加上::$data
十、一次过滤没有循环
抓包
. .进行过滤
十一、这一关进行了过滤php字符串
这样写来绕过过滤php
在中间插入一个他所过滤的就可以
也可以是phtmlhp
十二、%00截断:url 的终止符
前提条件:php版本小于等于5.3.4 并且魔术引号(magic_quotes_gpc)需要关闭
然后修改上传路径,并且修改文件后缀名躲过检测
十三、post %00截断
这个依旧是用%00截断,并且更改上传路径。但是这里是post方法,因为post提交的参数里不能自己解码,所以需要将其解码写入
十四、文件包含漏洞+图片马上传(只对图片的文件头进行了检测,可以只保留文件头)
1.制作一个图片马,可以用命令,可以直接打开图片制作 列如:
2.这里需要在upload下创建一个文件包含文件include.php 写入(用来测试上传的图片马)
<?php
$file= $_GET['file'];
include($file);
?>
访问包含文件并且写入参数 图片马名(随机数+时间戳+后缀名),成功执行。
十五、文件包含漏洞+图片马上传
dos下制作图片马
上传后点击文件包含漏洞 来访问同一级目录upload下的上传文件
十六、文件包含漏洞+图片马上传
和上边类同
前提条件:要开启一个php.ini的配置
箭头指的地方 ; 删掉
而且还会出现黑屏的情况,查资料
重启phpstudy,删除upload再新建一个upload(有效)
十七、二次渲染
二次渲染:我们上传的图片由于大小等原因,网站对我们的图片进行了二次渲染,生成了一个新的图片,所以我们构造的图片码中的webshell语句没了。
这关实在有点难搞,上传gif比较好搞一点
1.制作gif图片马后上传,保存上传的图片到本地与制作的图片马做对比
在蓝色部分匹配处插入<?php phpinfo() ?>后,再次上传后
利用文件包含漏洞执行。
十八、逻辑漏洞+文件竞争
先移动到了$upload_file下,再进行的后缀名检测
所以可以利用这个语句,在上传文件后检测前:立即执行此文件,在当前文件夹下创建一个webshell.php
构造一个文件phpinfo.php,如下:
<?php fputs(fopen('webshell.php','w'),'<?php phpinfo() ?>');?>
1.首先截取上传webshell的request数据包发送到inturter
2.在截取一个不断请求upload下我们上传的webshell的数据包,这里上传的是phpinfo.php
3.在inturter界面清除掉所有payload标记
4.分别对两个页面进行payloads设置(两个请求设置相同即可)
(1)设置请求数目,payload类型
(2)设置一个大点的线程(options里面)
5.start attack
成功实现上传一个webshell.php
十九、图片马和文件包含漏洞
(这关应该也是文件竞争,但属实不太明白,只能上传图片马,用文件包含漏洞)
二十、截取数据包
将upload-19.jpg改为.php.或者加个空格都行
二十一、数组和文件上传检测的结合
1.更改mime类型
2.数组save_name分为三部分,save_name[0]是用于最后的命名。save_name[2]进行比对检测文章来源:https://www.toymoban.com/news/detail-451465.html
文章来源地址https://www.toymoban.com/news/detail-451465.html
到了这里,关于文件上传 —— 靶场upload-labs-master的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!