通关Upload-Labss Pass01-10

通关Upload-Labss Pass01-10

Pass-01

1.打开http://localhost/,进入首页,点击Pass-01。

2.首先测试上传后缀为jpb的图片直接上传成功。地址为http://localhost/upload/1.jpg。

3.构建PHP一句话木马。新建记事本,输入<?php eval ($_REQUEST["6"];?>,另存为PHP后缀文件,继续上传,提示报错:该文件不允许上传,请上传.jpg|.png|.gif类型的文件,当前文件类型为:.php

4.将一句话木马后缀改为.jpg,然后打开BP,上传抓包查看。

5.因此关卡的验证方式为Js验证(前端验证),所以修改一句话木马文件后缀为.JPG后,我们直接在BP中的“filename”中的h.jpg重新改为.php放包即可绕过前端的验证,放包后即上传成功。

6.右键打开文件地址,可以看到一句话木马的所在路径为:http://localhost/upload/h.php,然后输入http://localhost/upload/h.php?6=phpinfo();返回PHP服务器的配置信息页面即表示上传成功。

7.打开中国蚁剑,右键添加数据,点击测试链接后提示连接成功。

Pass-02

1.查看源码,可以看到这个关卡利用的是文件类型验证,即验证MIME信息。

2.看到此我们直接上传.php一句话,开BP抓包查看并将Content-Type修改为允许上传的类型即可。(image/jpeg、image/png、image/gif)

3.上传成功后,打开查看上传地址为:http://localhost/upload/h.php,验证phpinfo后发现上传成功。

4.此时就可以在蚁剑内添加数据获取flag了。

Pass-03

1.查看源码,发现为黑名单验证。

2.黑名单机制即禁止上传规定的文件类型,如该关卡限制上传文件后缀为

('.asp','.aspx','.php','.jsp')

以及以下检测

$file_name = trim($_FILES['upload_file']['name']);
 $file_name = deldot($file_name);//删除文件名末尾的点
 $file_ext = strrchr($file_name, '.');
 $file_ext = strtolower($file_ext); //转换为小写
 $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
 $file_ext = trim($file_ext); //收尾去空

由此可以看到此过滤很不严谨,因为在php中,如果默认状态下.php3,.php4,.php5,.phtml 都是会被解析为php的,因此我么可以直接上传后缀为(.php3,.php4,.php5,.phtml)的一句话木马。
3.上传成功后,打开一句话木马链接发现是空白页,判断应该是该.phtml代码没有被apache成功解析。

4.解决方法为:打开PHP study主界面,点击其他选项菜单-打开配置文件-httpd-conf。

打开后在最后一行加入AddType application/x-httpd-php .php .phtml .phps .php5 .pht代码,保存退出,重启PHP study即可。

5.此时我们再进入PHP info页面验证发现一句话木马执行成功,然后就可以去蚁剑添加数据获取flag了。

Pass-04

1.查看源码,发现此关卡为黑名单验证机制,并且此关卡将可利用后缀全部写入了黑名单。
本pass禁止上传的后缀文件如下!

.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf


下方过滤规则为

$file_name = deldot($file_name);//删除文件名末尾的点
 $file_ext = strrchr($file_name, '.');
 $file_ext = strtolower($file_ext); //转换为小写
 $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
 $file_ext = trim($file_ext); //收尾去空

此时我们可以尝试使用.htaccess文件进行绕过。(.htaccess全称是Hypertext Access(超文本入口) .htaccess文件也被成为分布式配置文件,提供了针对目录改变配置的方法,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。
.htaccess功能:
1.文件夹密码保护、用户自定义重定向、自定义404页面、扩展名伪静态化、禁止特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表)
2.新建一个.htaccess文件,内容为:AddType application/x-httpd-php .jpg (这个指令代表着.jpg文件会当做php来解析)。然后在将php一句话木马后缀改为.jpg,将.htaccess文件跟一句话木马分别上传即可。
3.上传后访问一句话木马文件地址,phpinfo验证发现成功拿下,此时就可以去蚁剑添加数据获取flag了。

Pass-05

1.进入此关卡点击查看代码,看到此关卡依然使用的黑名单机制,并且以及将所有后缀都写入黑名单,并且也限制了大小写,后缀加“.”,空格,去除“::$DATA”以及首尾去空。

2.点击查看提示,可以看到提示内容为“上传目录存在php文件(readme.php)”。并且发现并没有禁止上传ini后缀的文件,因此我们可以用ini文件来改变服务器的配置,利用“auto_prepend_file=”语句来生成我们的一句话木马文件。
3.准备工作:新建一个.suer.ini文件,内容为“auto_prepend_file=h.jpg"(所有的php文件都自动包含h.jpg文件。)。准备一个一句话木马,重命名为”h.jpg“,然后将这两个文件上传。上传成功后,访问”http://localhost/upload/readme.php“验证,发现为乱码,蚁剑链接发现也是提示返回值为空,说明该ini文件此时并未生效。原因在于我的PHP study开启的模式为Apache+php,无法对该漏洞进行利用,于是我讲环境调整为FastCGI模式,我这里是改成了nginx+php,再次测试发现页面中出现了一句话木马的报错语句。

4.最后上phpinfo验证,发现验证成功,然后就可以上蚁剑链接拿下flag了。

Pass-06

进入该关卡后查看源码,发现没有过滤大小写转换。直接上传h.PhP然后验证。发现验证通过,直接上蚁剑拿下。

Pass-07

该关卡依然黑名单机制,虽然后缀都有写进黑名单,但是没有添加删除空格的规格,上传后缀为JSP的一句话木马,然后BP抓包修改后缀为PHP ,放包即可。上传成功后PHP info验证成功,直接蚁剑连接获取flag。

Pass-08

查看源码可以看到,黑名单机制,限制上传后缀,首尾去空,大小写转换,去除了字符串。但是这个点利用的是PHP” strrchr()“ 函数,该函数是:查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。因此我们可以直接上传PHP一句话木马,然后开启BP抓包上传,拦截后修改,在PHP后面加上一个点,放包即可上传成功。

上传成功后打开PHP info界面验证。

Pass-09

来到第九关,查看源码,跟前几关如出一辙,都是黑名单机制,但是比前几关少了过滤字符串机制。直接上传PHP一句话,配合bp抓包修改,添加字符串”:: D A T A ∗ ∗ “。因为 p h p 在 w i n d o w 的时候如果文件名 + " : : D A T A " 会把 ∗ ∗ : : DATA**“。因为php在window的时候如果文件名+"::DATA"会把**:: DATA。因为phpwindow的时候如果文件名+"::DATA"会把::DATA 之 后 的 数 据 当 成 文 件 流 处 理 , 不 会 检 测 后 缀 名 ,且保持 ::DATA之前的文件名,他的目的就是不检查后缀名。所以此漏洞只能是Windows系统,并且只能时php文件。

放包上传成功后,验证PHP info页面通过,即可在蚁剑添加数据。

Pass-10

点击查看源码后发现,这里上传后的文件名用的还是未完全过滤之前的,前面几关采用了拼接经过strrchr()处理过的函数名,而这一关并没有。因为源码中只进行了一次点号的清除,且我们至需要让经过过滤后的后缀名不在黑名单即可,所以我们直接采用xxx.php.[空格]. 就可以进行绕过。

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值