![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
文件上传漏洞
文章平均质量分 71
通过靶场实战的方式,给大家讲解文件上传漏洞
山兔1
学习网络安全的
展开
-
3-7 【实验】21-数组配合windows特性绕过+代码审计
今天我们来讲pass-20,我们先进行上传测试,我们抓个包然后我们repeater直接点上传它提示我们禁止上传该类型文件,在之前绕过的方法里面,我们可以在Content-Type那边改,image/jpeg,然后我们在上传提示我们文件上传成功,但是它是一个jpg的图片,我们要上传一个php的文件,说明后台的一个文件校验是通过Content-Type来进行的我们先去读一下后台的文件代码$allow_type = array('image/jpeg','image/png','image/gi原创 2022-04-05 18:31:50 · 948 阅读 · 0 评论 -
3-6 【实验】20-00截断漏洞绕过+代码审计
今天我们来讲pass-19,它用的方法是我们之前讲的00截断,我们先上传一句话木马,保存名称无所谓,写一个1.jpg,后台抓包这个时候filenanme只允许图片文件,我们把它改成jpg,另存为的名称为2.php+,加跟之前一样,它是一个占位把2b这个地方换成00我们repeater再go,我们会发现上传一个文件我们去访问一下这个文件,看它存不存在OK,没有404,我们蚁剑连接一下这个时候,我们获取webshell,非常常规的操作我们看一下后台代码怎么回事后台代码有一些校验被注原创 2022-04-04 22:07:05 · 1511 阅读 · 0 评论 -
3-5 【实验】19-条件竞争加解析漏洞绕过+代码审计
今天,我们来讲pass-18,18跟17是一样的,都是条件竞争,但是他们有两点区别,18在回显路径上不一样,它是回显到根目录,然后17是放在upload下面,第二点不同,18用了一个解析漏洞解析漏洞,我们一会用到的时候,再说,我们先上传文件,png这个时候,会返回路径,把地址拷贝一下,然后去访问,http://192.168.42.138/upload/upload1648984137.png发现一个图片,这个路径是因为作者写的代码有问题,就显示成这样,实际上应该在upload下面在操作的时候,原创 2022-04-04 19:03:05 · 1244 阅读 · 0 评论 -
3-4 【实验】18-条件竞争绕过+代码审计
今天我们来讲pass-17,17的绕过方式跟之前的不太一样,这个绕过方式,叫条件竞争的绕过,我们先来看一下后台的代码$file_name = $_FILES['upload_file']['name'];获取我们的file_name$temp_file = $_FILES['upload_file']['tmp_name'];获取我们上传的临时文件$file_ext = substr($file_name,strrpos($file_name,".")+1);获取我们上传文件的后缀$u原创 2022-04-03 17:26:55 · 1598 阅读 · 0 评论 -
3-3 【实验】17-图像二次渲染绕过+代码审计
我们这篇文章,要开始讲pass-16,pass-16的绕过方式,跟前面的15个是完全不同的所以说,我们先看一下,后台代码的实现,读懂代码之后,我们来想一下如何绕过if (isset($_POST['submit']))判断submit是否为空,如果不为空的话,运行下面代码$filename = $_FILES['upload_file']['name'];$filetype = $_FILES['upload_file']['type'];$tmpname = $_FILES['upload原创 2022-04-02 20:06:44 · 1544 阅读 · 0 评论 -
3-2 【实验】16-exif_imagetype绕过+代码审计
如果我们要用exif_imagetype函数,必须要开启php_exif模块php.ini在C:\phpStudy\php53文件夹里面,你用的是那个php版本,那就是那个文件夹把前面的分号去掉找到[exif]段,把下面语句的分号去掉如果不启用的话,在上传的时候,就是这样的界面如果,我们打开之后,不确定模块开启了,那我们就在根目录下面,放一个phpinfo.php的根目录文件其实就是个phpinfo的函数,我们通过浏览器访问这个时候,我们就可以看到phpinfo里面所有的配置文件原创 2022-03-31 00:31:28 · 990 阅读 · 0 评论 -
3-1 【实验】15-图片马绕过+代码审计
我们这篇文章,讲的是pass-14,14和13,它的方法是一样的,它们的区别是后台代码不一样,我们先按照13的步骤来,然后在根据后台代码进行分析一下,看看13和14,到底有什么区别我们上传图片马,菜刀连接这样,我们就可以得到webshell,和上一篇文章是一摸一样的,我们这篇文章讲的就是,它的后台代码是如何实现的函数声名isImage,代码执行到这里,只能加载到内存,不能执行$res = isImage($temp_file);判断一个文件是不是isImage,就到了我们的函数里面了$ty原创 2022-03-30 00:02:07 · 240 阅读 · 0 评论 -
2-7 【实验】14-图片马绕过+代码审计
这节课,我们要开始讲pass-13,讲的跟我们之前稍有点不一样,因为这个漏洞,它不是单个的利用,是结合其它漏洞一块去利用今天的漏洞是上传图片马到服务器,图片马就是图片的一种木马,就是带有木马的图片叫图片马注意的有三点:1.保证上传后的图片马中仍然包含完整的一句话或webshell代码。2.使用文件包含漏洞能运行图片马中的恶意代码。这点就是我们这篇文章讲的组合漏洞的一个利用,就是利用文件包含漏洞3.图片马要.jpg,.png,.gif三种后缀都上传成功才算过关!图片马就是我们在图片当中插入一句原创 2022-03-27 18:57:59 · 3362 阅读 · 0 评论 -
2-6 【实验】13-POST00截断绕过+代码审计
这节课,我们要讲pass-12,pass-12和pass-11其实,没有什么本质的区别,只不过利用的方式稍微有点变化,我们先做下实验,做上传的木马文件进行拦截我们看到包里面的内容,跟上节课参数有点一样,这里有个参数叫save_path,它的值…/upload/跟上节课是一样的,只不过上节课,它的类型是get类型,这个参数类型是post类型,我们按照上节课的思路做一下,我们加个%00,右键repeater,然后,我们在前面加个1a.php,后面yijuhua.php,改成jpg,我们点go这个时候,他原创 2022-03-26 21:22:23 · 1445 阅读 · 0 评论 -
2-5 【实验】12-GET00截断绕过+代码审计
今天,我们讲pass-11,00绕过的方式,点上传,抓包我们发现在http的url里面,save_path是我们前面几篇文章里面,没有的,save_path其实特别敏感,save是保存,path是路径,就是保存路径的意思,然后,他默认的路径是…/upload/,因为我们所有上传的文件都保存在upload下面这个时候,我们要想一下,save_path是否可控,就像,我们在学sql注入的时候,我们要可控我们用户输入的参数,比如id,现在我们来试一下,这个save_path是否可控,我们把upload删掉原创 2022-03-26 17:40:21 · 1552 阅读 · 0 评论 -
2-4 【实验】11-双写绕过+代码审计
今天我们讲的是pass-10,我们用到的思路和我们之前讲sql注入,用到的思路是一样的,我们回想一下之前我们用到的思路过滤union select,后台做了个单词的替换,将我们的union替换为空,或者替换为其它的一些特殊的字符,这个时候,我们在后台语句的执行中,因为union置换为空,所以产生了语法错误当时我们有个思路,我们在union中间在加个unionuniunionon select当我们中间这个union被过滤之后,变为空之后,我们这个union就会和前面三个字符,后面两个字符,合并,组原创 2022-03-23 23:48:12 · 1388 阅读 · 0 评论 -
2-3 【实验】10-后缀. .绕过+代码审计
今天我们来讲paaa-09,我觉得是没有什么太大的意思,因为这是相当于投机取巧的一个方法我们抓包,先试一下效果在文件名的后面,加个. .,然后,我们看一下效果上传成功了,那我们就访问一下这个文件,抓包关掉没有问题,我们在蚁剑里面连接一下这样是可以的,我们去分析一下后台代码,看一下,为什么加了个. .就可以了$file_name = deldot($file_name);这个方法在common.php里面如果我们传了.php. .,代码会先删除末尾的点,变成.php.$file原创 2022-03-13 10:48:29 · 1200 阅读 · 2 评论 -
2-2 【实验】09-后缀加--$DATA绕过+代码审计
我们本篇文章,将要讲述pass-08,用到的是windows文件流的一个特性,这个特性,我们先去尝试一下我们上传一句话木马,然后抓包这个时候,我们在文件名的后面,加个::$data,利用的就是windows的一个特性,如果说我们windows加个php这么个环境,那我们在上传文件名里面,文件名加上::$data,这个时候,就会把::$data之后的数据当做文件流,进行处理,而且,它不会检测后缀名,而且会保留::$data之前的文件名,其实它的目的就是为了注入检查后缀名,所以我们就利用这个特性进行绕过原创 2022-03-12 19:16:31 · 893 阅读 · 0 评论 -
2-1 【实验】08-后缀加点绕过+代码审计
我们这篇文章,将讲述pass-07,pass-07的利用方法,跟我们之前讲的差不多,它用的还是windows的一个特性,在前面一篇文章里面,我们讲过,在后缀名里面,如果加一些空格的话,它会自动抹掉,那如果我们加一些点的话,我们会发现,还是会把我们给抹掉了,所以,我们今天要看一下,能不能用这个特性进行绕过我们直接抓包我们在后面直接加个点我们go这个时候就出现了一个然后,我们复制这个链接,代理关一下,浏览器访问没有提示我们404,我们用菜刀连一下,清空缓存,添加,双击这个时候,我们发现也原创 2022-03-12 13:24:52 · 305 阅读 · 0 评论 -
1-1 【理论】01-文件上传/下载漏洞的业务场
今天,我们这篇文章来讲文件上传/下载漏洞的原理以及危害,这篇文章从四个方面来讲,1 文件上传漏洞产生的原因2 文件上传合法性的检测方法3文件上传漏洞20种绕过姿势4 文件下载漏洞文件上传漏洞介绍 文件上传在我们的平时生活和工作中,是很常见的,比如,我们要上传个图像,上传个资料,上传一些其它文件和内容 文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限,向服务器上上传可执行的动态脚本文件控制不足或者处理缺陷这点跟我们原创 2022-02-27 18:34:32 · 1273 阅读 · 0 评论 -
1-7 【实验】07-后缀加空格绕过+代码审计
今天,我们本篇文章将讲述pass-06,今天,我们讲述的是跟windows绕过相关的办法,这种方法,只能在windows下面去使用,在linux下面它没有这种特性我们先来分析一下源码上面这些代码,其实都是一样的,但是这些代码,少了一行代码,就是首尾去空格,防止我们在上传的时候,进行绕过因为它在里面进行验证的方式,是黑名单,如果我们在验证的时候,后缀名是.php,这肯定是不允许上传的,那如果我们加个php空格,这个时候,我们就能绕过所有的验证方式空格在我们windows里面是不允许有的,你们可以自己原创 2022-03-12 12:47:06 · 1051 阅读 · 0 评论 -
1-6 【实验】06-大小写绕过+代码审计
我们本篇文章将讲述pass-05的内容我们这篇文章将换一个内容来讲述,我们先讲源代码这个代码和上面一关的代码,其实没有什么太大区别$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv原创 2022-03-12 11:16:12 · 1095 阅读 · 0 评论 -
1-5 【实验】05-覆盖.htaccess绕过+代码审计
我们本篇文章将讲述psss-04绕过的方法,这个方法,我们还是按照之前的思路来,上传一句话木马,然后我们点上传上传只会提示我们此文件不允许上传,这个时候我们要想方设法去绕过它,按照我们前面三篇的思路,js前台有没有过滤、content-type类型是否过滤、后台服务器apache是否存在解析漏洞,我们通过尝试之后,发现前面用过的方法,都是不可以的,所以我们要用新的方法我们本篇文章将讲述一个新的知识点,覆盖我们的.htaccess进行绕过,我们先讲述htaccess文件,这个文件是apache服务器中的原创 2022-03-10 23:29:24 · 1088 阅读 · 0 评论 -
1-4 【实验】04-phtml绕过+代码审计
我们现在开始讲upload,pass-03的题目,首先,我们直接选一个php文件上传我们点上传,看看它的提示它提示我们不能够上传.asp,.aspx,.php,.jsp后缀文件,这些文件都是我们常用的web后缀名,它居然不能够上传这些后缀名,那我们要采取其他的办法进行绕过现在我们是php的环境,那我们能够用php4、php5,或者说是phtml的方式进行绕过,那当然,如果说我们是asp的环境,那我们可以用asa、cer、cdx,这样的后缀名,进行绕过,那如果说是我们aspx的,这种网站,我们能够用原创 2022-03-08 23:40:12 · 3077 阅读 · 1 评论 -
1-3 【实验】03-content-type验证审计+绕过
这一次,我们先看一下网页源代码,看有没有前台的一些验证OK,没有,那肯定是后台验证,后台验证的话,我们就可以去抓包进行绕过我们选择一个文件,选yijuhua.php然后把上一篇上传的文件给删掉,它上传的文件默认在upload下,大家自己搭建环境的话,这个upload默认是不存在的,我们就要自己创一个我们把这个yijuhua.php,进行删除抓包跟我们上一篇文章一样,浏览器开代理BP选is on,然后点上传抓到包之后,我们就右键,send to repeater这个地方,我们要去.原创 2022-03-06 19:12:53 · 999 阅读 · 0 评论 -
1-2 【实验】02-前台JS验证审计+绕过
上传漏洞绕过,本质上跟我们上一篇讲的SQL注入绕过,没有本质区别,SQL注入绕过是绕过后台对一些特殊函数、特殊字符的过滤,那么上传漏洞其实也一样,绕过后台对上传文件名称以及内容的一些过滤,所以说,这两者漏洞之间,我们抓包的话,会发现,这两个包里面的内容,其实差不多,要么get请求,要么post请求,那么对应我们上传漏洞,其实post请求内容,分别对应请求头,请求体,所以说,我们上传漏洞和注入漏洞,抓包之后,它http请求,没有太大区别,我们之前讲的,web漏洞,都是发生在http请求里面,是不谋而合的我原创 2022-03-06 12:49:39 · 1491 阅读 · 0 评论