upload-labs

pass01

前端验证

可以禁用js或者将一句话木马文件改后缀为jpg再抓包改后缀

pass02

MIME验证

image-20210619161803643

抓包改Content-Type为image/jpeg

image-20210619162026833

pass03

黑名单验证(后缀名绕过)

image-20210619162226054

只要后缀不为图中的黑名单后缀即可绕过

image-20210619162400853

常用绕过后缀名

php,php3,php4,php5,phtml.pht

pass04

黑名单验证(.htaccess攻击)

image-20210619162931274

源码中黑名单后缀多了,基本没办法从后缀名绕过

这时可以利用.htaccess文件进行攻击

先上传一个.htaccess文件,内容如下

image-20210619164809827

再上传对应.htaccess文件内容的文件名文件,含有一句话木马

image-20210619165204772

.htaccess文件,它将该目录下匹配的对应文件解析为php执行

pass05

点空格点绕过

image-20210619172038981

新增的一关 前三关的结合体

对照源码分析

假设上传一个文件 为xx.php. .

$file_name = deldot($file_name);//删除文件名末尾的点

这时文件名为xx.php.

$file_ext = strrchr($file_name, '.');

strrchr 匹配文件名最后出现点的位置 这时修改文件为.
   

$file_ext = trim($file_ext); //首尾去空

这时文件名为.

根据Windows特性,会删除文件名最后的点

因此最后上传上去的文件名为xx.php

pass06

大小写绕过

image-20210619165400798

查看源码,发现少了转换成小写的函数

对此可以采用大小写绕过黑名单方式

image-20210619165514067

pass07

空格绕过

image-20210619172830083

对比前面的关卡,源码少了首尾去空

文件名后缀加个空格就可

pass08

点绕过

image-20210619173756507

查看源码,发现少了删除末尾点

在后缀名上加上点即可绕过

pass09

::$DATA绕过

image-20210619173852108

对比源码,少了::$DATA,在后缀名加上,Windows特性不会解析::$DATA

pass10

点空格点绕过

跟第五关一样

pass11

双写绕过

image-20210619174201914
$file_name = str_ireplace($deny_ext,"", $file_name);

将黑名单中的后缀名替换成空

因此可以采用双写进行绕过

image-20210619174426093

pass12

%00截断(get方式)

第一个方块,是白名单验证,所以上传时首先需要将php木马文件改成jpg格式

第二个方块,是说明用拼接路径get方式接收,所以%00截断方式在url上截断

image-20210619175055044

因为在url处进行了截断,所以最终保存的后缀名为url处的php

pass13

%00截断(POST方式)

image-20210619175249256

第一个方块,是白名单验证,所以上传时首先需要将php木马文件改成jpg格式

第二个方块,是说明用拼接路径post方式接收,所以%00截断方式在bp上修改,由于post不会对%00进行编码,所以需要在bp上进行编码

img

pass14

图片马绕过

image-20210619175839452

题目提示使用图片马,利用文件包含漏洞

下方源码为用函数二进制读取文件,判断为图片才能通过,因此无法简单的改后缀绕过

图片马制作方法

copy a.jpg /b + shell.php /a shell.jpg
/b 表示一个二进制文件
+ 表示将多个文件合并成一个文件
/a 表示一个ASCII文本文件

先上传一个图片马,并复制上传成功后的图像链接

image-20210619180437960

查看文件包含漏洞,跳转到该链接

然后在该链接后拼接保存好的图像路径地址

http://192.168.184.103/upload-labs/include.php?file=upload/6420210619180100.jpg

成功执行php

pass15

图片马绕过

image-20210619181454008

绕过方法跟14关一样,只是获取图片信息从二进制读取到getimagesize函数读取

getimagesize() 函数用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息。

pass16

图片马绕过

image-20210619182441425

绕过方法一样,只是用php自带模块对图片进行检验

需要开启php扩展

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇