目录
前言
第二关:
第三关:
第四关:
第五关:
第六关:
第七关:
第八关:
第九关:
第十关:
第十一关:
第十二关:
第十三关:
第十四关:
第十五关:
第十六关:
第十七关:
第十八关:
第十九关:
第二十关:
第二十一关:
总结
前言
这是upload文件上传漏洞相关的靶场,适合新手
第一关:
直接上传发现,有js前端检测。于是我直接修改网页源码,从而绕过检测。
成功上传,并连接。
上传木马,他说文件类型不正确。
所以我猜测是content-type这个参数不对,于是我修改这个参数,使用bp抓包,并修改参数为image/png。
最后成功上传,并连接。
直接上传木马,这里报错的是后缀有问题,猜测这里有正则匹配,也就是黑名单。但是过滤不全,可以使用php5绕过。
直接上传木马,发现这种它把这种文件给过滤了。看提示发现这里同样设置了黑名单。
这里我想到了一个文件,并且不在黑名单内。就是.htaccess文件。它可以设置一个文件用某种语音来解析,相当于一个文件包含漏洞。文件内容是:
最后也是成功连接。
这里的提示和上一关的一样。
查看提示发现:
有个php文件,于是我想到了.user.ini文件,这个文件也同样是包含,是吧一个文件放在某种文件里解析。如果我上传一个图片马。而后使用文件了的php文件解析,那么这个木马就会生效并能让我成功连接。
.user.ini内容:
而后上传shell.jpg,最后连接readme.php文件即可。
这里的提示和上次的一样。看提示:
好像没有过滤Php这个后缀,于是我尝试上传,成功。
连接成功!
这里我直接查看源码
有黑名单,有过滤,可以发现这里没有去除空格。但是windows会自动去除。所以我们可以使用bp抓包添加空格,而后尝试连接。
连接成功。
这里同样查看源码:
有黑名单,发现同样有过滤不全的存在。他没过滤文件后面的 . 使用php.绕过。
连接的时候那个点可以去掉,因为windows会自动删除他。
这里查看源码,还是有问题。问题是没有过滤::$data这个东西
使用bp抓包并在文件后面添加::$data这个东西。而后便可以使用蚁剑连接。::$data这个东西在连接时要去掉。
这里的提示是说只能上传图片文件,但是把.htaccess和.user.ini这两个都过滤了。所以说这里需要用别的手段来绕过。首先我想到的是双写php绕过。但是没有函数把php给替换成空,所以行不通。但是这里有一个deldot函数。这个函数遇到空格会自动停下来,这样我可以试试给末尾加个 . 绕过,先bp抓包
成功上传并连接。
成功连接!
这里是截取。从此可以得出,我们可以尝试上传木马并使用%00截断。
成功上传。这里的php需要5.2.17版,小于5.3都可以。(查资料发现)
连接也是成功的。
这里同样上传普通木马失败,提示是上传路径可以控制。
那么就跟上一关相似了。尝试上传木马,并更改路径。
注意源码发生了变化,刚刚是get而这次是post。所以更改时有变化。
而后改成16进制
最后交给蚁剑。
这里是要上传图片马。
使用以上命令创建一个图片马。而后上传,在使用文件包含漏洞触发php命令
最后使用蚁剑连接。
查看提示:
这个是判断图片大小问题,我感觉就是为了防止上传大马而设计的。
所以只要图片小一点就好了。
蚁剑连接。
同样上传图片马,成功上传。
查看提示:
应该是检查图片文件的头。
但不影响我们上传图片马。
最后一样使用蚁剑连接。
同样直接上传图片马,这次却连接失败了。
看提示:
说明,他在不改变图片原内容的情况下,重新制作了图片。那么我就应该找到那个没有改变的地方,并插入木马。
成功插入代码。而后使用蚁剑连接。
这里同样上传图片马,但是没有了文件包含漏洞。
Unlink()这个函数会删除上传的文件。这样来看可以进行条件竞争了。
这里打开一个文件,没有就创建,w为写入模式。最后面的为内容。
而后使用bp一直发包。
使用python访问文件即可。
最后交给蚁剑
同样这里需要代码审计。这个做了一个过滤,只能上传白名单里的。
这里看来我是无法在上传php文件了,所以我打算使用图片马。并配合文件包含漏洞来过关。
代码:
同样使用bp发包:
最后访问成功后使用蚁剑连接。
这里上传文件发现没用。查看源码:
发现这里先检查你save_name的名字,而后上传。并更改名字。
这个函数有一个漏洞,会忽略 /. 这个。于是bp抓包
最后使用蚁剑连接。
查看源码:
这里会进行一个拼接
而在上面,进行了一个切割。
使用bp抓包
这里我直接把参数分成数组,而后在经过拼接得到upload-20.php.
最后使用蚁剑连接。
以上就是今天要讲的内容,本文仅仅简单说了通过upload-labs的方法
可以借鉴,多多学习
学无止境