![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
upload-labs
文章平均质量分 83
大部分的网站和应用系统都有上传功能,而程序员在开发文件上传功能时,并未考虑文件格式后缀的合法性校验或者是否只在前端通过js进行后缀检验。
这时攻击者可以上传一个与网站脚本语言相对应的恶意代码动态脚本,例如(jsp、asp、php、aspx文件后缀)到服务器上,从而访问这些恶意脚本中包含的恶意代码,
阜城小柳
长路漫漫,唯有自渡。
展开
-
upload-labs之第十九和二十关以及总结
Pass19打开第十九关,发现上传的地方还可以定义上传的文件名再看看提示这里说这个文件名是用的post方式传递的,那么看看源码到底要怎么绕过$is_upload = false;$msg = null;if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { $deny_ext = array("php","php5","php4","php3","php2","html","htm".原创 2021-10-28 22:06:58 · 1551 阅读 · 0 评论 -
upload-labs之第十七和十八关
Pass17打开第十七关,通过提示发现跟以前的都不一样。看来是需要进行代码审计了,那么来看看源码吧$is_upload = false;$msg = null;if(isset($_POST['submit'])){ $ext_arr = array('jpg','png','gif'); $file_name = $_FILES['upload_file']['name']; $temp_file = $_FILES['upload_file']['tmp_n.原创 2021-10-28 21:54:36 · 2028 阅读 · 0 评论 -
upload-labs之第十六关
Pass16打开第十六关,任务什么的还是没有区别。那就看看提示。渲染了图片?啥是渲染啊,它对上传漏洞防御能有啥用啊?带着一堆的问号我默默打开了源码。$is_upload = false;$msg = null;if (isset($_POST['submit'])){ // 获得上传文件的基本信息,文件名,类型,大小,临时文件路径 $filename = $_FILES['upload_file']['name']; $filetype = $_FILES['.原创 2021-10-28 21:40:53 · 1279 阅读 · 0 评论 -
upload-labs之第十四和十五关
Pass14打开第十四关,发现任务要求跟上一关是一样的。都是要求上传图片马。所以再看看提示吧。没有说要检查文件前两个字节了,但是用了一个新的函数来检查是否为图片文件。我们先了解一下这个getimagesize()函数是干嘛的吧。getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型及图片高度与宽度。函数成功返回的就是一个数组,失败则原创 2021-10-28 20:35:22 · 2369 阅读 · 1 评论 -
upload-labs之第十二和十三关
注意:在上一篇的最后有一个知识点没有提到的就是,关于00截断的利用条件。需满足 php 版本<5.3.4 php.ini中的magic_quotes_gpc是off状态的。(至于为什么下面会进行演示)Pass12打开第十二关老规矩先看提示提示跟上一关一样是上传路径可控???怎么回事,难道两关考的考点是一样的吗?赶紧看看源码$is_upload = false;$msg = null;if(isset($_POST['submit'])){ $ext_arr = .原创 2021-10-28 20:27:59 · 2825 阅读 · 1 评论 -
upload-labs之第十和十一关
Pass10打开第十关,查看提示可以看到跟前面的都不一样,这里提示的是会把这些敏感的后缀从文件名中去除,那么到底是如何去除的呐,我们先用shell测试一下查看上传至服务器的文件可以看到确实是把敏感的后缀名直接去除了,这样的话即使能上传成功也不是一个可以利用的shell了。那么接下来从源码入手看看有没有什么漏洞可寻吧。$is_upload = false;$msg = null;if (isset($_POST['submit'])) { if (fil...原创 2021-10-28 08:16:54 · 1604 阅读 · 0 评论 -
upload-labs之第八九关
Pass08打开第八关首先查看提示内容这里可以看到如同前面几关一样,这个是通过黑名单来防止文件上传漏洞的发生。而且把一般的后缀名都禁止了。那么再来看看源码吧。$is_upload = false;$msg = null;if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { $deny_ext = array(".php",".php5",".php4",".php3",".php2",".htm原创 2021-10-28 08:01:29 · 482 阅读 · 0 评论 -
upload-labs之第六七关
Pass06打开第六关先查看提示可以看到依然是黑名单禁止了很多的文件后缀,接下来再看看源码吧$is_upload = false;$msg = null;if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pH.原创 2021-10-28 07:41:39 · 783 阅读 · 3 评论 -
upload-labs之第四五关
Pass04打开第四关先查看提示可以看到这一关的过滤太狠了,基本把该过滤的都多虑了,把大小写绕过和上面一关的配置漏洞都考虑进去了。但是黑名单里面还是漏掉了一个文件名,那就是Apache服务器的一个配置文件.htaccess。有关这个文件的一些知识请看本站的另一篇文章《.htaccess 文件 在文件上传漏洞中的作用(附phpstudy2019复现失败详情)》所以这一关可以先上传一个.htaccess配置文件,写入规则让服务器把指定的文件格式按照php的格式解析。然后就上传指定文件格.原创 2021-10-28 07:30:42 · 1036 阅读 · 0 评论 -
upload-labs之第二三关
Pass02打开靶场还是为了上传一个shell,这次首先查看提示原来这一关考的不再是js前端校验了,而是服务器端的MIME校验了。那么先了解一下MIME是什么吧。对于web应用来说的话,就是在把响应结果传送到浏览器上的时候,浏览器必须启动适当的应用程序来处理这个响应文档。这就可以通过多种类型MIME(多功能网际邮件扩充协议)来完成。在HTTP中,MIME类型被定义在Content-Type header中。比如你要传送一个Microsoft Excel文件到客户端。那么这时的..原创 2021-10-27 19:59:16 · 632 阅读 · 0 评论 -
upload-labs之第一关
一、靶场简介upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 靶场安装 由于upload-labs 是一个由php 语言编写的靶场,因此需要在php环境下进行使用。我这里推荐用phpstudy集成环境。靶场项目地址:GitHub - c0ny1/upload-labs: 一个想帮你总结所有类型的上传漏洞的靶场将源码下载下来之后,在www目录.原创 2021-10-27 19:31:22 · 4943 阅读 · 1 评论