小白的ctf之路之文件上传浅谈

这次开始使用upload-labs开始进行文件上传的初步练习。

首先什么是文件上传以及文件上传的漏洞。通俗点来讲,就是在一些网站中需要上传照片,文档等一些文件的操作就是文件上传。而这里也同样有着大量漏洞可以利用,总的来说就是利用服务器对上传文件的过滤不严格,上传一些可以执行恶意语句的脚本并成功在服务器运行。

pass1:

查看提示,题目要求只能上传图片格式。而我们写的脚本是PHP。 

 那么为了能够上传文件,我们在文件后缀名后再加上.jpg。在网页上上传并用burp suite抓包。

在这里,将.jpg删除并发送,接着访问upload文件夹,成功上传并执行脚本。 

 pass2:

先随便上传一个PHP文件

这样的提示说明该文件上传是后端服务器验证,做法和第一题可以一样,用burp suite抓包后修改后缀名同样也可以。不过也有其他方法也不用改动脚本的后缀名。

pass2也是mime文件类型校验 

是浏览器常用的文件校验方式, 文件被上传后由后端脚本对其类型进行判断,使用在网站前端进行文件上传时,可以不修改脚本的后缀名。上传时使用burp suite进行在抓包。

 关键在content-type这里,常用字段有:image/jpeg :jpg 图片格式、image/png :png 图片格式、image/gif :gif 图片格式、text/plain :纯文本格式、text/xml : XML 格式、text/html : HTML 格式。我们在这里将其改成image/jpeg后发送,这样就绕过了后端的校验。

pass3:

故技重施没有用了,我们查看js源代码

大致可以看出来asp,aspx,php,jsp为后缀的文件被禁止上传, 而还禁止了::%DATA的使用,目的是让人无法使用文件流进行上传。方法也有,方法1.使用其他的文件后缀比如php3,phps等

结果就是,文件确实是上传了,也能正常访问,但无法执行。这里是因为我的Apache的配置文件有问题.

在该文件中添加php3,php5等。

 

 方法2.::$DATA双写,校验脚本中的只是删除了::$DATA这样的字符串,如果在::$DATA中的两个字符之间再加上一个::$DATA那么在删除::$DATA后,两边的字符串合并后又可以组成::$DATA。

所以抓包后在.php后加上::$D::$DATAATA即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值