文件上传漏洞原理与实战——upload-labs靶场

文件上传漏洞原理与实战——upload-labs靶场

Pass-01 前端校验
image-20220706164802834

题目让上传一个webshell到服务器,先上传一个正常图片1.png看看

image-20220706165015410

可以正常上传,在上传一个a.php试一试

image-20220706165208000

可以看到弹窗提醒只能上传jpg,png,gif类型的文件,不能直接上传a.php。

image-20220706165335440

a.php文件是一个一句话木马。

弹窗应该是前端js写的一个弹窗,我们可以绕过。F12打开开发者模式。

image-20220706165552519

选择上传功能点区域,查看网页源代码,删除return checkFile()函数,就可以上传了。

image-20220706165921972

上传成功:image-20220706170145305

因为我们上传的不是正常的图片,所以显示的是裂开的图片。

右击复制图片链接,在新标签页中打开。

image-20220706170244398

测试时先看看phpinfo能否执行,如果能显示说明这个木马是没有问题的,再用蚁剑去连接。不要上传完就急着用蚁剑去连接。

image-20220706170347625

**echo “

”;**表示的是格式化输出,能够使看出来方便很多。

image-20220706170848124

可以在F12设置里禁用JavaScript

image-20220706171120118

源代码:前端js校验

image-20220706171250624

Pass-02 MIME类型检测绕过
image-20220706171735953

先看源代码

image-20220706172457124

采用burp来抓包

image-20220706173159435

抓包后改为允许的文件类型。因为检测的不是我们的后缀,所以我们需要把type改掉

image-20220706173232297

将type修改为jpeg,png或者gif都可以,记得image/jpeg和冒号中间有一个空格要保留

image-20220706173433417

然后放掉包,上传成功

image-20220706173709943

剩余步骤与01相同,右击复制图片路径,在新页面打开然后查看phpinfo和ipconfig。然后可以用蚁剑去连接。

image-20220706174128504

Pass-03 黑名单

一般情况下,代码文件里会有一个数组或者列表,该数组或者列表里会包含一些非法的字符或者字符串,当数据包中含有符合该数组或列表的字符串时,即认定该数据包是非法的。

image-20220706174546187

无法直接上传:

image-20220706190246298

我们可以用**.phtml.php3**文件上传

image-20220706191154817

image-20220706192954438

image-20220706193115414

也可以用burp去进行拦截,并修改后缀

image-20220706193508248

想要.php3和.phtml文件生效必须修改phpstudy配置文件,在httpd-conf文件中

image-20220706193640941

添加后缀名,并且将开头的#删除。

在Windows的时候如果文件名 +“:: D A T A ” 会 把 : : DATA”会把:: DATA::DATA之后的数据当初文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,他的目的就是不检查后缀名

例如:“phpinfo.php:: D A T A ” W i n d o w s 会 自 动 去 掉 末 尾 的 : : DATA”Windows会自动去掉末尾的:: DATAWindows::DATA变成“phpinfo.php”

image-20220706194348011

image-20220706194404137

上传失败这是因为源代码中有去除::$DATA的操作image-20220706194441493

我们可以通过双写来解决这个问题

image-20220706194753393

上传成功:

image-20220706194814711

::$DATA

:: D : : D:: D::DATAATA

源代码的意思是碰到:: D A T A 就 将 他 变 成 空 , 我 们 按 照 第 二 个 将 他 双 写 后 , 他 会 查 找 : : DATA就将他变成空,我们按照第二个将他双写后,他会查找:: DATA::DATA,并将其变为空之后还会剩下一个::$DATA,这样就可以绕过。

image-20220706195113873

复制链接进入后,url里有:: D A T A , 所 以 还 是 被 禁 止 访 问 的 , 这 时 我 们 可 以 将 : : DATA,所以还是被禁止访问的,这时我们可以将:: DATA访::DATA删除

我们就又可以进行连接了。

Pass-04 htaccess文件绕过黑名单

第四关将黑名单加多了。

image-20220706195715850

Apache的.htaccess是一个配置文件,用来控制所在目录的访问权限以及解析设置。

在配置文件中将AllowOverride的none改为all,保存后重启phpstudy就可以了。

image-20220706201144529

必须用.htaccess不能用1.htaccess之类的,无法解析。

通过命令行修改文件名,将1.htaccess修改为.htaccess

ren 1.htaccess .htaccess

image-20220706202000634

不能直接把.htaccess放在网站根目录下,否则会报错

先上传.htaccess文件,再上传shell.txt(一句话木马)

image-20220706203128923

然后继续上传shell.txt

image-20220706203218958

上传完成,右击复制图片连接,并打开,连接成功。

image-20220706203324817

“zoom:50%;” />

上传完成,右击复制图片连接,并打开,连接成功。

image-20220706203324817

后缀为htaccess的文件,其中文件内容为SetHandler application/x-httpd-php,意思是把所有文件都解析为php文件来执行。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游子无寒衣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值