前言
此文章只用于学习和反思巩固文件上传漏洞知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!
一、什么是文件上传漏洞?
指程序员在编写文件上传的代码中,没有严格的过滤与控制(如黑白名单),让恶意用户可以越权上传恶意脚本文件webshell(比如php,asp的一句话木马),实施未经允许的非法操作。
二、js前端是什么?
js是JavaScript的简称,是一种广泛应用于前端开发的脚本语言。前端也就是直接在网站前台运行,能通过代码展现给用户一个良好的界面,用户也是可以直接看到甚至可以修改前端的代码的。也就是说文件上传如果只靠前端验证的话,往往是不安全的,因为可以绕过验证。
三、靶场第一关思路
这里我就把phpinfo();来当作一句话木马来演示,通过判断是否能成功解析phpinfo();文件来判断是否过关。
1、禁用js达到绕过(特指火狐浏览器)
1.我们先正常上传一个合法jpg图片试一试。(如图所示)
也是发现成功上传,并且上传成功的图片点击鼠标右键是可以得到图片的完整绝对路径的。http://xxx.xxx.xxx.xxx/upload-labs/upload/23.jpg
2.我们再上传一个带有phpinfo();的php文件看看(如图所示)
这里我上传了多次发现有疑似js验证
查看页面源码也是发现有alert这种js函数出现,所以判定为js前端验证(如图所示)
3、我们直接禁用掉js验证,在火狐浏览器url输入about:config,然后搜索JavaScript,找到enabled把他改为false(如图所示)
4、刷新页面再次上传php文件,发现成功上传(如图所示)
5、访问php文件地址发现php文件成功解析(如图所示)
如果上传的是一句话木马,就可以用菜刀连接了。
2、利用burpsuite工具绕过
1、老样子发现php上传不了,因为是前端验证,我们通过bp截取包然后修改后缀名就能绕过验证。我们先上传合法文件jpg文件,然后在bp把jpg后缀改为php后缀(如图所示)
2、然后发包,发现上传成功(如图所示)
3、访问php地址也能成功解析php代码。(如图所示)
如果上传的是一句话木马,就可以用菜刀连接了。
总结
这一关是简单的js验证绕过,达到上传恶意脚本文件,这里我们用phpinfo演示是为了更直观一点,更好的看到php代码被成功解析。此文章是小白自己为了巩固文件上传漏洞而写的,大佬路过请多指教!