upload-labs系列–pass-01

J1angL1 371 0

0x00 搭建upload-labs靶场

工欲善其事,必先利其器。在学习文件上传漏洞之前,我们要先搭建好相关环境,个人推荐upload-labs靶场。这个靶场每一关都有着不同的绕过方式,相对来说比较全面,而且提供相应源码和提示以供分析。upload-labs的下载地址:https://github.com/c0ny1/upload-labs/releases。直接下载下来之后,解压在PHPStudy的./www/(或者相对应的集成环境的网站根目录下)目录下,并新建一个upload文件夹以作上传文件存放使用。而后便可以开始使用。
upload-labs系列--pass-01

0X01 判断是什么限制

通过f12大法和查看源码我们可以看出,是一个简单的前端js验证,为什么这样判断呢,我们可以通过f12审计一下代码看看,选取元素为上传框,可以看出,有一个判断看书为checkFile,那么我们继续查看代码元素,利用审计功能自带的搜索,我们搜索一下“checkFile”这个函数,可以发现,一共有两处地方提及checkFile,第一处为上传框处做判断使用,第二处便是JS函数做限制处,由此我们判断这里有一个前端JS验证,当然,我们不清楚后续有没有其他的限制,阅读一下JS代码,做一个简单的假设就是他只有JS验证,当然,我们也可以抓一下包看一下是否有其他的验证特征(例如: contnet-type )。综上所述,可以判断,这里是一处简单的JS验证,那么便可以进行下一步,绕过。当然,还有第二种方法,上传文件后看网络加载,如果没有加载便判断无法上传就是前端JS验证。

upload-labs系列--pass-01

upload-labs系列--pass-01

upload-labs系列--pass-01

0x02 简单的JS限制的绕过

JS验证原理:

在文件上传时用户选择文件时或者提交时有些网站会对前端文件名进行验一般检测后缀名是否为上传的格式如果上传的格式不对则弹出提示文字。此时数据包并没有提交到服务器,只是在客户端通过 js 文件进行校验,验证不通过则不会提交到服务器进行处理。

那么我们可以根据他的验证原理去进行绕过。

绕过 JS 检测方法:

绕过JS检测常规是两种方式,一种为: F12 使用网页审计元素,把校验的上传文件后缀名文件删除,即可上传。另外一种便是:把恶意文件改成 js 允许上传的文件后缀,如 jpg、gif、png 等,再通过抓包工具抓取 post 的数据包,把后缀名改成可执行的脚本后缀如 php 、asp、jsp、net 等。即可绕过上传。

删除JS元素:

upload-labs系列--pass-01

抓包修改绕过验证:

upload-labs系列--pass-01

从下图可以看出我们是上传成功了。

upload-labs系列--pass-01

那么我们用蚁剑连接一下看一下,当然,不想那么麻烦的话一句话木马可以写成phpinfo的一句话木马,直接右键上图所框位置,选择复制链接,将其打开,如果为phpinfo的界面那么证明上传成功。

upload-labs系列--pass-01

可以看出,在我们测试连接的时候他是连接成功的,而不是返回值为0,证明我们的shell上传成功,连接后可以进行后续操作。

0x03 总结

前端JS验证的绕过是属于比较简单的那一类型的文件上传漏洞绕过的操作,当然,每处漏洞的绕过方式,判断方式都要牢牢掌握才能更好的在以后运用在实战当中。

 

发表评论 取消回复
表情 图片 链接 代码

分享