合天网络安全笔记(二)
P17:第15天:文件上传黑名单,白名单及数组绕过技巧 - 网络安全就业推荐 - BV1Zu411s79i
呃大家晚上好,我们先来测试一下呃,我麦的一个声音,大家能听到我声音的话,还还有声音,足够清楚的话,在讨论区这边扣个一,好的都应该都能听得到,然后的话还有大概四分钟的时间,和我们稍微等待一下其他的同学。
八点钟的时候的话,我们准时开始我们今天的一个课程内容好吧,然后的话这一段时间的话,我们先听一会音乐,他骗了你很久啊,睡后的默契,你转身不回头,我没对你挽留,直到看着你远走,乘风与你相心,却不再对谁提起。
把你放在我心,你卷自己盖过了你,轻轻吹动,我,如今却剩几首熟悉的陌生人回忆只能是回忆,错过了我买魔法,即使成绩最爱我,现在已一句问候都可以撒着光去,你的心神代代上了,以为就是一辈子,穿越信阳人而已。
想让心把你代替,你的声音在我脑海里,我该怎么忘记你,这海边好天气,却发现不是你要的压制我的身体,是你的记忆,不属于我自己,曾经最痛,我如今却是最熟悉的陌生回忆,只能是回忆,错过了我们无法击是想起最爱我。
现在英俊问候都可谓色扯过去,你的星辰再带上吧,以为就是一辈子,哦曾经最懂我,如今全世界熟悉的陌生人回忆真的是回忆,错过了,我们无法歧视真情,最爱我,现在一句问候都格外奢侈,过去你的信誓旦旦什么了。
以为就是一啊,大家晚上好,我们今天讲的课程内容的话是,unset file upload基础篇,就按cf fire upload的话,它的一个意思的话就是不安全的一个文件上传。
我们这节课主要讲的就是这一块的一个内容,那我们本节课的话主要有四个,是四块的一个内容,首先第一块的话是对文件上传的一些,基础的一个介绍,就对它的一个简介,就给大家介绍什么是文件上传。
以及呃在文件上传的时候,程序员会做一些什么样的一个检测,它的一个检测流程是怎么样怎么样的,然后的话对这一个文件上传的一个漏洞,它所产生的危害做一个概述,这块的话是绕过客户端的一个检测。
第三个的话是绕过服务端的一个检测,第四个的话是对web的web服务器的一些解析,漏洞做一个简介,首先我们先来看一下啊,文件上传的一个基础部分,首先我们一起来了解一下什么是文件上传,文件上传的话。
它就是呃,我们客户端将数据,以文件的一个形式进行一个封装,然后的话再通过我们的一个网络协议,把它给发送到服务端,而这里说的一个网络协议的话,就是我们前面讲到的一个htp协议。
然后的话呃我们上传的这个文件的话,在服务器端他会做啊一个数据的一个解析,解析之后的话,它会存储在我们的一个服务端的一个硬盘上面,然后存储为一个文件,就如图所示,就我们一个呃个人的一个主机。
我们通过啊hdp的一个方式,通过post的一个请求,把我们的一个文件的一个内容,把它给啊发送到我们的一个web服务器,然后的话在web服务器上面做一个啊保存,然后通常的话和文件是以啊这样的一个。
htp协议去进行一个上传的,然后的话是以post的请求去进行一个发送啊,就前面也有讲到哦,就前面在讲那个htp协议的时候,有给大家做一个例子,就是啊post请求的一些啊三种的一个方式对吧,然后的话。
web服务器在接收到我们的一个主机的一个,请求之后啊,建立一个连接连接网啊,连接之后的话就会进行一个数据的一个传输,这就是一个文件上传,让我们一起来了解一下,文件上传产生漏洞的一些原因。
首先第一个的话就是服务器的一个配置不当,有服务器它在配置的时候,没有对我们上传的一个文件做一些啊检测,第二个的话就是文件上传限制被绕过,就是说啊,服务端对我们的一个文件的一些文件上传,有做一些限制。
但是它的一个性质的话它是不完整的,或者说它它的一个性质是不是啊,有效的一个性质,然后的话我们可以通过一些方法去进行,一个绕过,第三个的话就是呃,一些开源编辑器的一些上传漏洞,第四的话就是文件解析漏洞。
就是啊我们后面会有说到的一些web web服务器,比如说阿帕奇as啊,nginx等等的这些服务器,它都有存在过一些解析漏洞,能够导致我们啊进进行一些文件的一个上传,具体一点呢。
说的话就是说上传我们的一个web share目嘛,然后的话进行一个文件执行,帝国的话就是他的一个过滤不赢或被绕过,就是呃跟前面是啊类似的,哦文件上传这个漏洞,它有什么危害呢,就。
就在我们进行一个文件上传的时候,如果服务器端它的一个脚本语言,它没有对我们上传的文件进行一个,严格的验证和过滤,就容易造成容易造成这样的一个,上传任意文件的一个情况。
然后攻击者就能够去利用这样子的一个文件,上传的一个漏洞,像我们的一个服务器啊,上传我们的一个恶意文件,ae文件的话就是web share,然后通过啊通过一个这样的一个web shell之后的话。
我们就可以在服务器上面执行,我们的一个恶意代码,然后的话呃就是呃在上节课有讲到的web share,它的一些特点对吧,我们能够通过web share啊做到哪一些操作,就能够控制整个网站。
或者是说整个服务器,哦嗯文件上传漏洞,它可能存在的一些位置,我们从他的一个致命意识就能够知道,就是说我们在进行文件的上传的时候,这样的一些功能点就是会存在这样的一个漏洞,比如说第一个的话图片上传对吧。
我们经常会有比如说一些网站呃,他你去发一些帖子对吧,发帖子的话,你去上传一些图片,或者说呃你注册一个账号之后,你要修改修改一些你的头像,修改头像的话就需要啊上传你自己的一个图片。
就是这种图片上传的一个功能点的话,是很有可能存在这样的一个漏洞,还有头像的一个上传功能,还有就是呃文档的一个上传,就是比如说我们要上传一个word,或者说呃图片文啊。
呃像excel等等的一些文件的一个上传功能,这一这一类的一些功能的话,往往都会存在这样的一个上传文件,它印证是不够严格的,然后的话会导致这样的一个安全缺陷,缺陷,哦哦这里的话就是文件上传的一个检测方式。
是我们本节课啊主要去讲的一些内容,就说我们通过呃了解文件上传过程当中,它所涉及到的一些检测方式,然后的话我们针对这样的一些检测方式,去进行一个绕过,然而从中学习到我们如何去啊,绕过这样的一个文件上传。
首先我们先来看一下呃一般的文件上传过程,它的一些检测方式有哪些,首先第一个客户端的一个js检测,一般的话它会检测文件的一个扩展名,就是js检测的话,它的它是一般是在我们的一个前端。
就是说我们的一个前端的一个呃脚本,就说它没有在我们的一个服务端上面,去做一个检测,而是通过在前端的一个js脚本,来对我们上传的文件做一个检测过滤,第二种的话就是服务端的一个mm类型。
这个mmo类型的话前面也有讲到,就是我们前面说到的一个content type,这个啊字段通过检测这样的一个字段内容,来判断我们上传的文件,它是什么样的一个文件类型,这里的一个mmm的话。
我们呃就之前也有说到,我们可以看一下这个是卖马的,他哪一些类型,这里的话呃可以看到我们主要呃举一些常见的,比如说这个pdf pdf它的一个文件的一个mmo类型。
也就是我们的一个content type的一个字段的话,就是这样子的一个application加一个斜杠,后面的话接一个pdf这样的一个类型来的话,像我们上传的一些,比如说ex 1。
它是一个这样子的一个octor stream,还有呃我们常见的一些图像,一些图我们上上传的一些图片,它的一个类型我们其实可以看得到,就是关于图片类型的这样的一个content type字段的话。
它都是以一个image开头啊,后面接斜杠,然后的话就是呃我们上传的一个文件类型,它是什么样的,然后的话它就会在后面接一个文件类型对吧,然后要注意的话,这里的一个就是jp呃jpg,还有j p e g。
我们常见的这种图片文件类型的话,它都是同样的一个呃j p e g,然后第三个的话就是服务端的一个目录,路径的一个检测,它通常的话它是会检测,跟我们的一个pass参数相关,就是说我们在上传文件的时候。
它的一个上传文件内容的话,它会有包含就是你上传的一个文件,它的一个目录是上传到哪里,然后的话还有你上传的一个文件名是什么样的,在后面的话呃,在演示的时候会给大家做一个介绍。
第四个的话就是服务端的一个文件,扩展名的一个检测,通常的话就是检测它的一个文件啊,扩展,第五个的话就是服务端的一个文件内容检测,前面的话都是检测它的一些呃类型对吧,比如说扩展,还有啊一些字段。
我们的在我们的一个请求头的一些字段里面,都能够去查找到它相应的一些信息,然后第五个的话,它是对我们上传文件里面的一个内容,做一个检测,它是检测我们的一个文件内容,它是否合法,如果包含有二页的一个代码。
如果不是合法的一个呃文件类型的话,它就不允许你去进行一个上传,然后针对我们上面前面的这样的一些检测的,一个方式的话,我们能够去进行相应的一些啊绕过,绕过他的一个检测,然后我们一起来看一下。
就是文件上传绕过的一个基本的一个流程,首先第一个的话就是我们前面有说到的一个,客户端的一个检测,主要的话它就是对在本地做一个限制,它的一个检测,代码的话是在我们的一个客户端啊,客户端。
去向服务端发送请求的话,我们可以通过我们的一个bp去进行一个抓包,就抓取文件上传的一个包,然后的话做一个修改,然后修改的话,这里的话就涉及到,就是说像服务端传递这种数据的时候。
我们可以通过这样子的一个抓包修改这里的,比如说修改它的一个mm类型,如果他是对我们的一个meal类型,做一个检测的话,我们修改我们包中的一个content type的一个字段,好修改为它允许的一个类型。
就能够去进行一个绕过,相应的就是啊目录啊,还有文件扩展名,文件内容等等,我们都可以去进行一个修改,然后的话呃修改之后的话,我们再发送给我们的一个目标服务器,而目标服务器的话在呃响应。
响应给我们的一个客户端,这就是啊一个基本的一个流程,在这里的话,我们主要会去使用到一个bp,去进行一个抓包改包,咳咳,然后的话我们呃首先来了解一下,如何去绕过客户端的一个检测,客户端检测的话。
它的一个基本原理就是呃,在我们的一个上传页面,它有专门去检测我们文件上传的,一个js的一个代码,就最常见的话就是检测文件的一个类型,还有你的一个扩展名,好我们绕过的方法的话。
就是因为它是一个在客户端的一个js代码,我们只需要禁用我们的一个js,就是说不让他的一个js代码去进行一个执行,就他不会去对我们的一个上传文件,做这样子的一个检测,达到一个绕过的一个目的,可以使用的话。
就是呃火狐浏览器有这样子的一个js的插件,就是禁禁用js代码的一个插件,然后的话呃我们在这里的话,我们会去使用到一个bp,就是因为,呃在后面演示的时候再具体说吧,然后测试的话就是呃有一个靶场。
就这个靶场的话,我有发在群里有这个upload的一个靶场,这个靶场的话我们啊为什么要去用这个靶场呢,就是它里面的话啊包含了哦是很多的一些,就是呃在文件上传的时候,他的一些呃检测的一些方法。
然后的话我们针对这样的一个检测,能够去使用什么样的一个绕过的一个姿势,然后我们通过这个靶场来学习,就是文件上传它的一个一些绕过的一个姿势。
然后那个靶场的话大家应该有去下载吧,就我有发在群里的啊,这个这里的话呃,大家如果自己去,因为它是一个开源的一个靶场,大家如果自己去进行一个下载的话。
呃可能会里面的一些关卡它是会有问题的,那我这里的话就呃我用我自己的一个菲律宾study,呃我自己把里面的一些环境什么的,都给它配置完,配置完和配置好了,就说你可以直接去进行一个使用。
而不会说有一些就是说你代码访问,还有就是你的一些呃上传文件,它会有一些问题什么的,这样的话大家去使用我这里的这一个啊ph study,然后的话呃里面有一些就是啊。
就是这里的话就是上节课讲课所使用到的一个,web share的一些web share,还有的话有几个大码的话,我们也给大家去讲话呃。
比如说这个v374 k的一个代码,然后这这个阵容的话,就是他的一个大码的一个内容,然后可以看到它的一个就是它的一个代码量,是很多的,可以看到对吧,有总共的话有4583行,有一些呃。
然后的话很很大的一个代码量了。
然后呢,它里面的话有这样的一些加密的一些字符,然后这个代码的话呃,大家可以自己去啊玩一下。
这里面的一个功能的话是很很丰富的,然后这里的话我就是要说一下,就是我们为什么要去使用这样子的一个代码呢,就是我们呃大家应该有操作过,就是我们之前啊,我之前给大家介绍的这样的一些呃。
web share的一些连接工具对吧,我们只需要在web服务器上面上上传,这样子的一个web需要的一个一句话,然后的话就能够去进行一个连接对吧,当然的话啊我们前面有介绍,就是说你一句话。
木马它的一个基本的一个运行原理,就是我这里通过呃,像我这里的一个web项目码,发送我的一些命令的一些请求对吧,就是啊比如说发送一个执行命令,执行一个ip config的一个命令对吧。
我们需要像我们的这样的一个web share,去发送我们的一个数据,但是你在这种发送数据的时候,有时候它不会让你去进行一个连接,就说你对这样的一个而需要连接工具,它无法去连接这样子的一个一句话木马。
不管你无法去连接这样的一个一句话木马的话。
我们怎么去进行一个跟服务器去进行一个,稳定的一个啊通信呢,就是说这里的话就会使用到这样子的一个大码,因为一个你一个代码的话,它是在啊服务器,就说在我们的一个目标机器上面,去进行一个执行的对吧。
就我们的一些啊,我这里举个例子,咳咳,咳,啊我就以这样子这样子的一个大码为例,就我们这里的话,我们只需要在它的一个web服务器,通过这样子的一个web端去进行一个访问,访问它的一个文件就可以了。
然后的话他的我们的一些操作是在,因为这个脚本它是运行在服务器上面对吧,然后的话我们可以通过这样在啊,在这里去进行一些操作,这个操作的话它是呃好,直接在它的一个服务器上面去进行一个执行的,卡了。
比如说我们执行一个命令对吧,我们这里执行的话,它的一个执行结果它是直接显示在这里的,但是但是他不跟不同于我们的一个通过web share去,web需要工具去进行一个连接,它的一个代码,它是直接在呃。
它的一个服务器上面的,这个脚本文件里面去进行一个解析,然后解析之后的话,再把服务器里面的一个结果返回给我们,就是他没有说有中间的一个通过啊,网络去进行这样子的一个数据的一个传递。
去传递我们想要它执行的一个命令,对就是我们去使用一个代码的一个原因,就主要是为了我们的对服务器的一个,比较稳定的一个啊操作,呃然后的话我们回归我们的一个课程内容。
然后就是这样的一个靶场,这个靶场的话呃,我不知道大家就是在今天下午的时候,有没有去进行一个尝试,去进行一个操作,就其实啊他这个靶场的话,网上有很多的一些教程,我建议的话大家先不要去看那些教程。
然后呃教程的话,其实我这里要写一个,就是对这个靶场的一个通关的,一个就是一个方式,就是它里面涉及到的,比如说他做了哪一些过滤对吧,它限制了哪一些内容,然后的话我们通过这样的一些性质。
它限制了一些内容来呃,来构造出我们的一个绕过的一些方法,我这里的话有写这样的一个啊,在课后的话我会发给大家。
然后呃现在的话呃,大家先不要去看那个他们的一个一些,解题的一些步骤啊,我希望就是大家在我今天的一个课程内容,讲完之的话,自己在去进行一个操作,然后自己通过在啊去进行一个测试。
来进行一个绕过的一个方法。
首先这里的话呃,第一个就是一个js的一个检测。
我们怎么去进行一个判断呢,他是做了一个js的一个检测呢,首先我们,而是首先我们先找一个就是找一个一句话码,他码的一个内容的话,就是像这样子的,然后这里的话这句话我这里加了一个这样子的。
一个就是一个文件幻术,就是再去进行绕过啊,服务端,它对我们的一个文件内容,去进行一个检测的时候会去用到,当然这里的话你可以先不加,然后的话再准备一个这样子的一个s。p png。
其实里面的一个内容的话,也是这样子的一个一个内容。
然后把他的一个后缀,它的一个文件扩展名改成了一个pg。
这样子的一个形式,好我们去进行一个好,先随便上传一个文件对吧,我们先上传一个,比如说我们的一个菲律宾文件,一个p h p后缀的一个文件,然后进行一个上传,然后他这样的话提示它。
提示我们这里就是说上传的一个文件类型,只能是包,只能是这几种jpg pg i g f的这种图片文件,然后我当前的一个文件类型的话,是它是一一点ph p对啊,然后这个一点p h p它是怎么来的呢。
就是它是怎么去进行一个,我判断我这一个10p h p的一个文件,内容是什么样的,就说他会对我上传的一个文件的一个文件,扩展名,就是我们的这一个后缀他会做一个啊提取,提取出我们的这个后缀。
然后的话再跟他的一个js代码里面的一个哦,文件类型,它允许上传了一个文件类型做一个啊匹配,然后匹配如果是是这样子的一个类型的话,它就会允许我们上传,然后这里的话我就呃换一个对吧,换一个一个点。
pg这样子的一个呃,以顶png的一个图片后缀结尾的一个文件,然后我进行一个上传。
然后可以看到这里的话已经上传成功了,对ok啊,右键打开看一下啊,大家看到是这样子的一个内容,就是它是没有内容的,没有内容的,因为我们这一个文件的话,它不是一个图片文件。
所以的话它不会显示一个图像的一个信息,然后只是这样子的,因为里面是一个其实是一个一句话码,但是的话这里的话就有一个问题,就是你一个偏激的话,它是无法去进行一个解析的,就说它不是一个p h p文件的话啊。
服务器的一个ph p的一个解释器,它是无法去解析里面的一个文件内容的,所以这里的话我们需要去想要上传。
我们的一个一句话码的话,我们需要对它做一个绕过,好绕过的话。
哦对了,就是我们怎么去进行一个判断,它是一个js检测,我们先呃通过一个bp来去进行一个判断,我现在你刷新,我这里先选择一个点菲律宾,菲律宾的一个文件。
然后我们进行一个上传,然后注意看这边的一个请求包,我们上传上传之后的话,可以看到在这里我的一个就是bp,这里他是没有获取到他的一个请求包的,然后这里的话他是直接就弹出了,这样子的一个呃宽。
所以我们从这里其实可以基本上做一个啊,基本的一个判断就是它的一个,就它的一个内容的话啊,就是它的一个检测的话,它是没有去在服务端做一个检测的,而是在前端对我们的上传文件内容,做了一个检测。
为什么这么说呢,就是说如果说他的一个检测它是在服务端的话,我们上传这样子的一个文件,我们的一个文件的话,它会上传到一个服务端,上传到服务端的话,它中间就会有数据的一个传递,也就是我们的一个请求包对吧。
我们需要向服务端post这样子的一个,文件内容对吧,然后的话他这里是没有这样子的,相应的一个请求包的,就说明他没有到。
他没有把我们的一个数据发送到服务端,去做一个检测,所以我们只可以判断它是在前端,就是有一个js代码,对我们上传的一个文件做了一个啊,做了一个这样子的一个检测,而针对这样子的一个检测,我们怎么去绕过呢。
我们首先啊就前面也有说到。
就通过禁用它的一个js对吧,我们其实可以,先审查一下元素,然后审查元素我们可以看到,就是说在这里它啊注意一下这里的一个,这里有一个字,有一个这样子的一个好字段,就这里的一个代码的话,有。
这个on summit这里的一个代码的话,它就是把我们的一个,就是我们的一个请求的一个数据,它会把它就是呃放到我们的这里的一个,check fire的这个函数里面,然后这里的话它是一个j定义的一个。
js的一个函数,我们从文件名其实也可以知道,它是一个检查我们的一个文件的一个呃内容,检查我们上传的文件啊,我们可以通过在这里在,因为它是在前端嘛对吧,他前端的代码我们是可以能够去看到的。
我们直接把他的这里的一个前端代码,做一个删除,删除之后的话,就是说我们现在这里去进行一个上传的话,他不会把我们的一个上传的一个文件,放到我们的在下面的一个js的一个内容,去做一个检测。
其实就是在这里这里的一个js的一个代码,就是检测我们上传的一个文件,它的一个呃文件类型,它是不是它这里允许的,这样的三三种文件类型对吧,然后这里的话我把它给删除删除了,删除了的话。
他就不会把它放到我们的这样的一个啊,js代码里面去检测,然后我们可以来尝试一下,我选择一个菲律宾文件,好直接进行一个上传,这里不行吗,哇这也不行的吗。
啊这里不行啊,那还是要去禁用它的一个js的一个代码。
这里的话我就不用这一个,我不用这种,我用另外的一个,就是去进行一个改包的一个方式,我这里先找找一张这种偏激的一个图片对吧。
它是允许去进行一个上传的,然后这里的话因为它是在前端检测的话,他这里的话是允许我们上传这种图片文件的,然后这里我先抓一个包。
那我点击上传上传之后的话,抓取这这样的一个结论,这样子的一个请求包,然后的话我因为这里的话这个请求包,它其实是发到服务端的,然后这里我们的一个前端的一个检测,已经被绕过了。
然后我们只需要把这里的一个就是它呃,保存了一个文件名,就在这里的话就是一个file name的话,就是表示我们的一个上传文件的一个文件名,好我们再去进行一个forword。
就发送我们的这样的一个包发送过去。
然后的话就可以看到,在这里的话已经有了这样子的一个图像,有了这样子的一个文件,就是我们上传的一个文件。
可以看到它是一个as点菲律宾的一个文件,然后在这里的话我们可以,来访问看一下,访问一下这样子的一个ph的一个一句话,好可以看到它这里的话是正常解析了,就是他输出了我这里的多余的一个字符对吧。
然后我这里执行执行之后的话,可以看到我们的一个一句话码,是成功的进行了一个上传,这就是呃通过一个bp去呃更改它的一个请求包,来绕过他的一个前端的一个检测,呃然后这里的话大家有没有什么疑问呢。
就应该都能听得懂吧,能听得懂是吧啊啊,刚刚那个其实删除他的一个js代码,其实是可以的,这里他不行,我我我不知道,就说这种姿势大家可以去进行一个尝试的,就删除它的一个前端的一个js代码。
就只有一只有一位同学听懂了吗,而其他同学呢可以都听懂了是吧,好那我们继续我们的一个课程内容,前面我们讲到了,就是绕过他的一个客户端的一个检测,下面我们一起来看一下,就是如何去绕过服务端的一个检测。
然服务端的一个检测的话,通常是检测三个点,哪三个点的,第一个就是它那个迈尔迈尔类型,也就是我们的一个请求包当中的一个content的,content type的一个字段,第二个的话就是文件的一个后缀。
比如说我们那个文件扩展名,再比如说点p。p h p。p n g等等的,这种就是一个啊文件扩展名嘛,然后第三个的话就是对他的一个文件内容,就是我们上传的一个文件里面的一个内容,提取它里面的一个信息。
来去进行一个呃检测判断,啊其实就是我们这里如图所示,主要的话就是这样的一些点,有客户端的一个校验,然后服务端的一个教育,教育的一些信息的话,主要哦呃在后面的话都会有去讲到,这文件后缀相关的一个检测的话。
主要通过黑名单策略,还有白名单策略等等,还有文件内容的话就是呃一个文件幻数,文件幻术的话就是刚刚的那个p h p的一个码。
你前面有一个就是我加了一个gf对,就是这个gf 89 a这一个的话就是呃他好,服务端它对我们上传一个文件内容,它会提取我们的一个文件头头部,这里的几个字节好,这这里的几个字节的话。
就g i f89 a这一个字节的话,就是啊g i f图片文件的一个呃,这样子的一个啊文件幻数,然后它可以通过这样的一个呃。
这样的一个字符串来判断它的一个文件,它是一个gf的一个图片。
然后还有就是图片训了,你只要是训了这个的话呃,在那个靶场里面会有给大家去讲到,好我们一起来了解一下,就是常见的一些map类型,其实呃前面的话也要给大家介绍,这样的话我大概看一下。
就我们常常常见的像比如说text的文件对吧,就这种text link,还有htm啊,还有就是呃一些图片文件,还有word等等,好前面我们有说到,就是说服务端的一个检测的话,有一个ml类型的一个检测。
那我们怎么去进行一个绕过它的一个检测呢,我们绕过它的一个检测,一个基本的一个原理就是它的一个map类型检测,它就是检测图片类型的一个文件,它上传过程中我们的一个htp包当中的话。
它会有一个这样的一个content type的一个字段,好我们可以从这个请求包当中呃,找一个之前上传的一个文件,比如说这个对吧,这个的话就是我们上传我们的一个s的,影片机的一个呃请求包。
然后这里的话就是我们请求的一啊,我们的上传文件的一些内容的一个信息,然后这里我们有一个这样子的一个content,type的一个字段,这个字段的话就是啊用来告诉服务端,我这里的上传的这一个文件。
它的一个类型的话是一个png的一个图片文件,然后的话服务端他再去做一个检测的时候,他就是获取他这里的一个content type的一个,字段的一个值,也就是这个获取到这个值的话,与它的一个就是呃。
以它的一个允许上传的一个文件类型的一个值,去进行一个对比,然后对比出如果说是允许上传的话,就允许我们的一个文件的上传,如果不允许的话,就拒绝,就是它的一个检测的一个基本的原理。
那我们绕过的一个方法的话就比较简单对吧,我们知道了服务端它是去检测我们请求包当中,它的一个这样的一个content type的一个字段值对吧,那么我们可以直接修改我们的一个请求啊。
就是这样这样的一个请求,htp包的当中的一个content type的一个值,修改为就是呃服务端检测的时候,它允许上传的一个类型对吧,就能够顺理成章的绕过他的一个检测。
因为他只是对这一个字段做了一个啊判断,然后第四个的话就是嗯绕过文件后缀的一个检,测,文件后缀的一个检测的话,主要就是有两种策略,就是黑名单策略以及白名单的一个策略,然后这里的话我们先来了解一下啊。
黑名单策略,就黑名单策略的话,它的一个意思就是我们的一个文件扩展名,如果说在这样子的一个黑名单的话,它就是不合法的,不合法是什么意思呢,就是说呃服务端它是不接受这样子的一个,文件上传的。
就不允许这样子的一个呃文件类型,去进行一个上传,然后一般的话会有这样子,就如图所示,这样子的一个黑名单的一个列表,就在你的一个列表的话就列出了,就是不允许你去上传的一些文件的一些后缀,对啊。
比如说p h p p h p5 ,还有其他的一些呃,可执行的一些文件的一些类型,然后里面的话就是包含常见的一些类型的一些,可可执行的一些脚本文件后缀,然后针对这样子的一个黑名单的话。
我们有相应的一些绕过的方法,我这样的话有列举了六个,首先第一个的话就是呃后缀的一些,后缀的一个大小写绕过,好后缀大小写logo的话就是像这这样,这里的一个例子,我们可以通过这样子的一个大写。
然后小写小写这样子的一个大小写,一个混合的一个方式,来去绕过它的一个呃黑名单,就说他这里,比如说它这里它没有对我们的一个,我们可以看一下对吧,他只对这样的一些菲律宾啊,文件类型做了一个过滤。
但是的话我们可以看到,它其实里面没有包含有这样子的,比如说包含我这个点大写的p开头的一个,ph的一个后缀对吧,那么我们就自然就可以去上传这样子的,一个后缀,上传到服务端,服务端它在检测的时候。
他发现没有这样子的一个黑,就是包含在黑名单中的一个文件类型,那么它就是允许去进行一个上传的,然后第二个的话就是一个空格的一个绕过,还有的话以及这一个顶绕过哦,以及后面的这一个啊这样的一个字符串。
特殊的一个字符串的一个logo的话,它是呃在windows里面的,用windows系统里面的一些特性去进行一个绕过,首先我们先来了解一下这个空格,绕过空格logo的话,就是哦黑名单。
他没有对我们的一个呃后缀名,做一个去空格的一个处理好的话,我们可以通过在后面加一个空格来绕过,为什么能够绕过呢,就是就是啊因为黑名单里面他没有加嘛对吧,然后的话我们上传的这样子的一个点p h p。
后面接一个空格的话。
在windows里面我们其实可以看到。
大家应该有碰到过这样子的一个问题对吧,我们上传在我们新建一个这样的一个文件,然后的话我对它做一个命名,比如说test对吧,然后的话我在这里输入,在它后面输入一个空格。
然后的话我这里输入了一个空格之后的话,可以看到,就是说我这里输入码输入之后对吧,有有一个空格哦,这里看不到了,我这里输入了一个空格对吧,输入了一个空格之后的话,我们保存保存之后的话,我们可以看到它。
其实它会默认的把后面的一个空格给去除掉,然后的话我们就是利用它的这样子的一个原理,就是我们在这里去进行一个发包的时候对吧,我们在这里,把它的一个文件名呃,这里是一个文件名做一个加一个空格。
在后面加一个空格,就是这里加一个空格之后的话,我们去而针对服务端,它啊,没有对我们的一个文件名做一个这样的一个,去除空格的一个处理的话,我们就可以用这样子的一个方法来绕过,因为他呃目黑名单里面。
他没有这样子的一个呃呃,文件后缀的一个过滤的一个规则对吧,所以的话我们就能够去进行一个上传,就等于绕过了服务端的一个检测,然后的话这样子的一个后缀我们上传到服务端,上传到windows里面。
windows的一个服务端的话,它就有了这样子的一个特性,就是它会把默认的把后面的一个空格给去除掉,然后它其实保存到他,最后保存到服务器上面的话,它其实就是一个啊这里这样子的一个s点,hp的一个文件。
就是保存的话就是这样子的一个呃s点,菲律宾的一个文件,然后还有一个顶顶顶绕过的话,就是我们在windows里面也是同样的,我们在后面再输入一个点,然后我们进行一个保存对吧。
然后可以看到我这里输入一个点之后的话,它我们保存保存之后的话,它默认的它同样的会把后面的一个点给去除掉。
就是利用了它的这样子的一个特性。
咳咳咳咳,以及第四个,第四个同样的也是啊,windows上面的一个特性,就他没有对这样子的一个做一个处理,它是利用的一个windows这个文件系统,就我们在文件名后面加这样子的一个啊。
像这样子的一个后缀的话,它会比如说我们在这里对吧,在这里后面加这样子的一个两个冒号,然后加一个呃dollar符,然后大写的date这样子这样子的一个文件名,然后服务端它去进行一个检测的话。
它检测我们的一个后缀是这样子的对吧,他是不包含在我们的一个黑名单中的,有的话它是允许去进行一个上传的,然后上传到服务端的话,它会有这样子用windows的一个特性,它同样的。
他会把后面的这一个字符串的一个内容,它会保存为这样子的好不,他会把我们的这个文件里面的一个内容,就这样子的一个文件名,它会保存为一个s。p h p的一个文件,然后第五个的话就是一个解析漏洞。
就配合阿帕奇的一个解析漏洞,这里的话呃先了解一下,后面的话有会去说到,就它利用它的一个解析漏洞的一个特点,就是我们啊阿帕奇他在解析文件的时候,它是从右往左去进行一个判断哦。
如果他不能够识别它的一个后缀的话,它就会继续往左判断,比如说这样子的一个文件后缀好吧,文件名,比如说a a。p h,b。o w f。r r这样子的一个文件对吧,我们去上传的时候,上传到服务端的话。
他他啊服务端它在对对他做一个,解析的时候,解析的时候的话,它会从右往左,就是从这边从r r这边,然后往左去进行一个判断,而判断它是一个什么样的一个文件,然后他碰到这种i啊,还有这种呃ow mf。
任意的这种就不可识别的这种后缀的话,它就会啊一直往左去进行一个解析,一直往左啊去进行一个判断啊,然后他直到判断,能够去进行一个解析的一个后缀,它就会保存为这样子的一个文件,嗯就这一个的话。
他这后面两个他无法去判断嘛对吧,然后的话他到这里的话,它能够啊判断它是一个菲律宾的一个文件,然后的话它就会把它保存为一个aa。p h p,然后第二段话就是一个点h ta c c e s s。
这样的一个文件,这个文件的话就是嗯一个分布式的一个配置,文件,全称的话就是像这样,就这个呃超文本的一个入口,它的一个主要作用的话,就是针对当前目录的一个配置的一个解析。
就是啊他提供针对目录去改变配置的一个方法,然后的话它的一个特点的话,就是呃它只作用于当前的一个目录,以及所有的一个子目录,然后这个文件里面的话,我们可以去进行一个编写。
就编写的话里面可以去编写它的一个文件,解析的一个规则,然后这个规则的话,我们可以去啊利用它的一个呃就是服务端,它没有对我们的这样的一个文件去进行,一个过滤的话,我们上传这样的一个文件上传到服务端。
然后服务端它去解析的时候,他去啊解析这个目录下面的一些文件的时候,它会找到这样子的一个文件,这个文件的话里面定义了,就是解析当前目录下面的文件的一个规则,然后这个规则的话是我们可以去自己去进行。
一个冰写的,然后就像这里的这一个例子,我们可以看了他这里的一个意思的话,就是啊fes match就是呃文件匹配匹配,匹配当前目录下面的文件啊,有包含有这样子的一个字符串,我这样的话就是写了一个s点。
偏激的一个文件是吧,你也可以写成其他的一个任意的一个字符,然后的话他这里的一个意思的话,就是呃一个阿帕奇的一个,就是web服务器的一个配置,就这个配置的一个意思的话,就是呃把文件作为一个呃ht。
作为一个菲律宾的一个文件去进行一个解析,这里的一个代码的一个意思的话,就是呃,如果匹配到了一个s等片机点偏激的一个文件,然后这匹配到这样的一个文件的话,它就会把这个文件当作为一个呃。
p h p的一个文件去进行一个解析,所以说我们这里好,只需要去上传这样子的一个文件,然后的话在上任意上传一个s等于p n g,包含有这样子的一个字符串的一个文件,就就算它是一个图片文件服务端。
它同样的会把它作为一个,菲律宾的一个文件解析,然后的话这个图片文件里面的话,就写的是我们的一句话嘛对吧,就能够去解析它的一个啊文件里面的一个代码,好下面的话就是对它的一个基本的一个解释。
就是啊跟我刚才讲的是一样的,一样的意思好,我们其实可以通过这样子的,如果他允许这样的一个上传,这样子上传这样的一个文件的话,可以绕过很多的一个上传验证机制对吧,因为你就算他就只需要。
我们随意能够去上传这样的一个文件,如果说他只是对他的一个文件名啊,还有他那个扩展名什么的去做一个检测的话,我们随意随意上传一个文件,我们都能够去把它当成一个ph文件解析,自然的话服务端它是啊检测不了。
我们的这样子的一些一个区,进行一个啊获取web share,然后第五个的话就是绕过文件后缀的一个,白名单的一个检测,前面我们有说到就是白名啊,黑名单,黑名单的话就是说在黑名单里面的一个文件,后缀的话。
它是不允许我们去进行一个上传的,好白名单的话与黑名单是相反的,就说在白名单里面的一个文件,后缀的话是允许上传的,然后的话如果不在白名单里面的一个后缀的话,它是不允许上传的,就其实白名单相比于黑名单的话。
它是呃啊它的一个安全性是要更高的,因为你一个黑名单的话,你能够去呃存放,就是说能够去列举的这样的一个后缀,其实是有限的对吧,你不可能把所有的这样的一个后缀,你都能够列举完。
然后放到这样子的一个黑名单嘛对吧,然后白名单的话就更加呃干脆,就它只只允许你在我这个名单里面的,一个文件类型进行一个上传,就比如说你只允只允许你去进行一个上传,一个jb j p g对吧。
还有一个png的这种图片文件,然后其他的任何的一个后缀,它是都不允许上传的,然后针对这样子的一个白名单,那个啊检测的一个logo的话,我们主要的话是会利用到这样的一个,年龄阶段的一个方式,200阶段。
我们这里的话,主要的话就是呃介绍一下这个呃零零阶段,就年龄阶段的话,它是嗯我们的一个特殊的一个字符,就是,比如说我们这里一个url它发送到服务器,对服务器进行一个解码,解码之后的话。
他没有去对我们还没有传到一个验证函数,然后的话我们的一个验证的一个函数里面的话,它没有他接到的,他不是这样子的一个字符,而是我们的一个在这里00%,解码之后的一个字符。
这个00%其实是一个url的一个编码,这个u r l的一个编码,我们可以对它做一个解码,解码之后的话,可以看到它其实是一个这样子的一个字符,然后在这里这样子的一个字符的话,他是就是说呃文那个服务端。
他对他再去解析这样子的一个啊字符的时候,它会把这个字符后面的一个啊,就是把后面的一个字符给忽略掉,就比如说我在这里,我在这里,我,我在这里啊有输入了这样子的一个字符,然后的话他检测的话是一个白名单。
它只允许我们的一个点偏激的一个后缀对吧,然后的话它的话它解析的话,它是一个点偏激的一个后缀,但是我们上传到服务端之后的话,他去进行一个解解析,然后保存文件的时候,它我们中间这里是有一个。
就是刚刚那个00%,这样子的一个呃特殊的一个字符,然后的话他再去进行一个解析的时候,他会把后面这个0%,后面的一个字符给忽略掉哦,它实际保存到服务器的一个文件的话,是一个s0 p hp的一个后缀哦。
这要这里的话,因为我们知道他是一个u2 的一个兵嘛,其实我们正确的一个写法,如果是一个get请求,我是一个get请求,说在这里我们啊上传了一个文件对吧,name用get方式去上传我们的一个传递。
我们的一个文件名,s等于菲律宾对吧,我们这里的话就可以在这里进行,一个出了一个00%,这样子的一个就特殊的那个字符串的一个,编码形式,然后我们后面接,我们能够允许上传的一个文件名对吧,然后他解析的话。
它会把它当成一个png的一个文件,然后实际去保存的时候,它会把它做一个解码,就是这里的一个呃url的一个解码,解码之后的话,它会生成这样子的一个字符,然后在post的请求里面的话,它就是。
我们想要去因为这个字符它是不能够就是,比如说在这里的话,它是复制不出来的,他是复制不出来的,我们在这里的话,我们想要把它做一个年龄阶段的话,我这里我先在这里输入一个空格。
然后空格的话它的一个hex的一个冰嘛,是20%,好我们需要在这里,就是这里有一个hex的一个编码的文件,然后这里的话我们也需要找到这里,我的这里的一个文件名,就是这个fname这个字段嗯。
找一下就是这里对吧,那我们前面我们知道这里的一个空格的话,它的一个hs编码的话,它是一个2%啊,就是一个二零,让我们找到这里的这一串这一个字符,找到一个二零,就这一个,因为一般的话这种呃。
中间的话那是没有有空格的,就这一行的话没有有空格的,只有这一个对吧,我们自然的可以找到这里的,就是那个空格的,我们把它改成为一个零零,然后的话呃保存保存之后的话,我们来这边看一下的话。
它显示的就是这样子的一个符号,其实就是我们这里的一个这个,它解码之后的一个符号,那这里的话我提一下,就是特意提一下,就是在get get方get方式的话呃,在我们的一个url里面,然后的话我们是呃。
我们传递的这样子的一个url的一个编码的,这一个特殊字符的一个url编码,好,在传递到服务器的时候,它会有就是浏览器,它会对我们的这一个要编码做一个解码,解码之后的话,它会解码成这样子的一个字符。
然后在post的话,它是原样的一个传传递,它没有啊,服务端它不会对这样的一个要编码做一个解码,所以的话我们需要把它直接就是写成这样子的,一个特殊字符,这里的话大家要注意一点。
然后就其实就是其实都是差不多的一个意思,就00%,还有这样的一个呃,16进制的一个零零阶段,然后第六个的话就是文件内容的一个检测,就文件内容的话,前面其实也有说了。
就是它主要是检测文件内容来进行一个判断,文件它是否是合法的一个文件,主要的话是有两种检测方式,地址的话就是检测我们上传文件,开始出的一个文件幻数,这个文件幻术的话就是啊。
就这一个magic number,它主要的话就是标记我们的一个文件,都一个格式,就说要符合他的,这就是啊我们可以通过这个文件幻数来标,来标示这样子的一个文件,它的一个格式它是什么样子的一个啊,文件类型。
前面举的一个例子是一个gf的一个文件,它是以一个g i f98 a的一个开头,就通常的话他去进行一个文件检测的话,就是判断他前十个字字节就这一个文件话术,因为它就是在一个文件开头的一个位置。
通过判断它的一个这个字节,来判断它文件的一个真实类型,然后我们绕过的话,自然的我们就可以在我们的一个上传文件里面,添加它的这样的一个文件换数对吧,然后的话来绕过服务端对它的一个检测。
第二个的话就是文件加载的一个检测,就文件加载的话,一般就是通过服务端调用的一些api或者函数,来对我们的一个文件做一个渲染,常见的话就是图图像的一个渲染测试,就是我们上传图像,上传一个图像文件的话。
他要把我们图像里面的一个呃,里面的一个内容做一个渲染,然后的话他不会把我们在图片文件里面的一个,内容做一个就是呃简单的来说就是做一个打乱,打乱之后的话,它其实只是里面的一个呃内容变了。
但是它的它的一个图像还是原来的一个图像,就看到的图像是原来一个图像,就其实我们不是哦,我们上传一个文件对吧,有一个就是一个真实的一个文件,还有还有的话它会对它做一个缩略图对吧,他那个缩略图的话。
它其实就是基于那个文件,然后做了一个啊,做了一个其他的一个渲染,渲染之后的话,生成了这样子的一个文件,就可能你一个那一个缩略图的话,它是就是它一个清晰度对吧,我们可以明显的看到就是嗯不一样的。
然后这里的话大概介绍一下这个文件幻术吧,就像这样子的,这样的话呃看一下吧,主要的话就是我这样的话列举了,就是常见的一些图片类型,就像jpg jpg的话,就是前面的这样的这样的一些字符。
它其实就是以这样子的一个,我们的一个就可写的一个字符的话,一个20孔板是这样子的,然后gf的话就是像这样子的一个gf 89 a,就所以说我们为什么就常用的也是一个gf的。
加一个gf的一个这样的一个文件头啊,把文件换数,就是因为他这里的话好写,就gf 89 a像前面的这种这种特殊字符的话,我们写不出来的对吧,然后如果说你要写这样子的一个,一个16进制的一个呃兵马啊。
16进制的一些数的话,我们记不住对吧,他的话像呃png的也是一样的,像这种特殊字符的话,我们是啊再去写到文件里面的话,是不好书写的啊,我们我们的这里的这种呃,这个文件方式是怎么看出。
怎么去进行一个查看的,这样的话呃可以使用到一个工具,这个的话就是查看文件的一个啊,16进制的一个一些数据,好大家可以随意的找一张图片,比如说这样子的一个png的图片,其实我们直接用一个文本命器打开。
也是能够看得到,当然的话它是有一些字符的话,我们是看的是这样子的,这个vhs的话打开有点慢。
好打开。
就这样子的一个软件,我们可以把它拖进来,拖进来之后的话,其实可以看到它的一个ask的一个字符的话,就像这样子的一个偏激对吧,然后的话他这里的一个16进制的一个数的话,其实它是对应的,就这里的一个创的话。
就是这样子的一个16进制数,然后我们其实也可以,就是直接在文件里面去进行一个,把我们的一个图片文件对吧,这里把它进行一个更改,改成我们想要的一个文件头,就添加一个这样的一个文件幻数就可以了。
当然我们常用的还是用这个gf的,因为好写,然后就了解一下吧,就大家可以去呃找这样子的一些图片去打开,来查看一下它的一个这样子的一个格式,那的话我们只需要在文件化说上面。
加上我们的一个一句话木马就可以去啊,绕过他的这样子的一个检测,好第二个的话就是嗯,文件加载的一个检测,文件加载的话主要就是对图,对渲染加载测试的一个攻击,我们主要的话就是用一个代码注入,这代码注入的话。
就是我们用这样的一个图像处理软件,比如说刚刚那个问hex对吧,然后在一张图片里面。
在一张正常的一个图片,就而不是像我这里的话呃。
这里呃这种假的图片,就是虽然是一个偏激的一个后缀,但是是打不开的,是看不到里面的一个内容的,要不是看不到图像内容的,我们这里的话找一张真实的图片,比如说像这样子这样子的一张真实的一个图片,对吧,好的话。
在我们的一个好图片里面的一个空白区,进行我们的一个一句话木马的一个填充,然后注入我们的这样的一句话木马,然后的话一般就是有一些图片,就图片里面的话它有一些注释区,在这个区域的话。
我们是可以填填充我们自己的一个代码,而不会改变呃图像的图像的一个内容,就保证图像文件的一个结构它是有完整的,如果图像文件它结构不完整的话,它是呃打不开的,就是无法去查看到图图像的一个信息。
而对于这种的话,对于一般的一个渲染测试的话,是能够去进行一个绕过的,然后还有就是更严格的一个二次序嘛,九二次渲染的话就更加直接一点,就是它它会把我们的一个图片,原本的一个图片里面的一个真实的一个。
图像数据给抓取出来,然后其他的一些多余的一些部分的话,它会把它给直接隔离掉,就比如说我们要注入的,我们注入的这样的一个一句话木马对吧,注入在这种图片的一个空白区,然后二次渲染的话,他就会把呃。
不是属于图像数据的这种空白的一些地方,里面的一些数据,它都会把它给隔离掉,所以的话我们这里注入的这种代码的话,它是不能够啊,它是无法去使用的,然后呃对于这个攻击的话。
就需要对我们的一个就是加载文件的一个,加载器进行攻击,当然这样的话只是介绍一下,因为呃,实际的能够去利用这样子的一个漏洞的话,是比较难的,就对他一个文件加载器,如果说它存在这样子的一个漏洞。
你要去进行一个攻击,去进行一个呃,溢出攻击,然后的话执行我们的想要的一个代码,这这种方式的话是嗯比较难去实现的,而且啊不一定也能不一定能碰得到,然后前面的话就是啊我们详细的介绍了,就是文件。
就是我们在上传文件的时候啊,如何去绕过服务端,还有客户端对我们上传文件的一些检测,里面是呃比较详细的介绍了,就是一些绕过的一些方法,还有的话就是它检测的一个基本的原理,我们如何利用它的。
就是它的一个检测的一个原理,来构造我们自己的一个绕过的一个方法,然后下面的话就是一个web解析漏洞,呃这里的话,主要的话就是常见的一些web服务器,就我们常见的比如说阿帕奇,还有i s啊啊两个版本的。
以及ngx的一个解析漏洞,对他的一个介绍,当然的话呃其实在现阶段的话,这种解析漏洞的话是比较少见的,当然的话如果说你有碰到的话,那你就能够直接去进行一个利用,而且它的一个利用的话。
其实就其实是比较简单的,首先第一个的话就是一个阿帕奇,阿帕奇解析的话,我们前面也有说了,就是说他在解析的时候,他会碰到就是这种不认识的一个后缀的话,他就不会去呃解析,然后的话它会一直往左去进行判断。
他判断的话,判断到它能够去解析的这种文件的话,它就会把这个文件,把它给识别成一个菲律宾的一个文件,而不是在这里的话,例子的话就是识别成一个菲律宾,然后第二个的话就是is六点的一个解析漏洞,这个的话嗯。
它有两种解析方式,就是第一种的话就是一个目录的一个解析,它的一个就是原理的话,就是呃服务器它默认它会把,就是把以以一个顶asp啊,后缀结尾的一个目录下面的一个文件,它都会解析成asp的一个文件。
这什么意思呢,就是我我们可以就是创建,如果说我们的一个我这里创建一个,文件夹对吧,它的一个文件名是sd f。sp对吧,这样子的一个文文件夹哦,当然这里的话它,不能在命名啊,在windows里面。
然后的话就是说在这样子的一个,asp的一个文件目录,这个目录下面的所有的一个文件,它都会把它当成为一个sp的一个文件,去进行一个解析,就是说我们随便创建一个随便上传,创建这样子的一个文件。
比如说a这样子的一个文件,它里面的话是写的一个sp的一个一句话,木马对吧,我们这样子的一个文件,它同样的会把它当成一个菲律宾文件,去进行一个解析,这是一个目录解析好,第二个的话就是一个文件解析。
文件解析的话就是呃这个is六点的服务器,它默认不会解析分号后面的一个内容,这样的话就了解一下吧,其实现在的话比较少见了,这样的话我很有必要去了解一下,还有的话就是is七点的。
这个的话就是我们呃就对任意的一个文件名,后面的话接上一个字符串,就比如说我们在这里啊,不管前面的一个文件名,还有嗯文件名它是什么样子的,我们在后面接一个顶菲律宾的一个后缀。
它就会把它把我们的这样的一个文件内容,把我们的这样的一个文件,按照一个菲律宾的方式去解析,还有的话就是nginx ngx 2,跟前面的这里的话类似的,当然的话它其实不是呃,就是利用方法的话是类似的。
同样的就是任意的一个文件名,后面接我们的一个呃可解析的一个后缀,就能够去进行一个攻击,比如说这样子的一个这样子,还有的话就是呃任意文件名后面接,就接一个00%,然后点p h p。
它同样的能够去把它解析成一个,菲律宾的一个文件,这是一个解析漏洞,就这样的话就大概介绍一下,大家了解一下就ok了,然后最后的话我们对我们进行一个课程内容,做一个基本的一个总结,就文件上传漏洞的一个总结。
我们其实啊今天课程内容的话,都在这里的这个图里面,我们大概的一起啊,我们一起来过一遍吧,就把我们今天的一个课程内容给捋一遍,首先我们就是介绍了文件上传对吧,文件上传的话就是我们客户端啊。
通过我们的一个网络协议,通过htp把我们的一个文件内容封装,然后发送给我们的一个服务端对吧,发送给服务端,然后的话中间的话呃,啊就是服务端,还有客户端,它会对我们的一个上传文件做一个检测。
就检测我们上传的文件是否是允许上传的,判断啊,然后检测的一个方法的话,就有就是前端的一个js的一个检测,然后的话前端那个js检测的话,我们绕过的话,就是可以通过禁用它的一个js代码对吧。
还有的话就是我们先上传一个,就是它允许上传的一个文件类型,然后的话通过抓包就抓取,在客户端发送到服务端的一个请求包,因为它是只是前端做一个检测对吧,它从前端对我们的一个文件内容检测完,检测通过之后。
他就会把我们的一个数据发往服务端,放服务端的过程当中呢,我们通过bp来抓取这样的一个请求包,好的话,修改成我们想要的一个恶意的一个文件名,比如说一个顶配h p的一个文件后缀,然后的话上传到服务端就好。
成功上传了这样子的一个啊,菲律宾的一个web share啊,我们绕过之后的话,还有的话有文件内容的一个检测,还有对路径扩展名的一些检测,然后对于文件内容的一个检测的话。
我们可以通过代码注入来进行一个logo,就通过呃做一个啊,就是做一个图片嘛啊如何做图片码的话。
就在windows里面我们可以通过一个命令,就是一个copy的一个命令,我们可以打开一个命令行啊,windows里面的话它自带有这样的一个copy命令,然后这个copy命令的话。
就是能够把我们的一个文件,把它给就是合成成一个文件,我们这里要用的话,就是把我们的一个这样子的一个,ph p的一个码木马文件,把里面的一个内容,然后把它给啊copy,把它给复制到。
或者说插入到我们的这样的一个图片文件里面,然后他的一个我这样的话就不演示了吧,啊它的一个方法的话就是我在这里的话,我这里写的一个,而教程里面的话有有有有介绍,就是通过这样子的一个命令来生成。
这样子的一个,包,含有这样子的一个一点菲律宾木马的一个文件,然后的话这一个呃图片文件的话,它是能够正常的去打开的,啊对啊,文件内容检测的话,还有就是入境扩展面的一个检测,如果说检测绕过之后的话。
警车绕过之后的话,我们就能够直接去进行一个解析对吧,然后如果检测没有绕过的话,我们就可以通过说,如果说存在这种解析漏洞的话,我们就能够通过解析漏洞去进行一个上传,然后或者是说通过解析漏洞来解析。
我们的一个啊web shell的一个文件,来达到一个呃上传啊,web share的一个目的,然后中间的话就有包括啊说这种啊,对于黑名单的一个检测,一个绕过的一个方法,还有白名单的一个检测绕过。
以及就是通过这种特殊的文件,这种呃呃目录的一个文件,配置的一个文件来去进行一个解析,还有的话就是文件包含,就下节课会去讲讲到的,还有就是解析漏洞,这个图的话就是我们本节课的一个文件。
上传的一个所有的一个内容了,好的话,我们本节课的一个内容的话就到这里就结束了,然后最后的话有一个课后作业,课后作业的话就是完成我们呃,就是我发给大家的这个app load。
这个靶场里面的就是啊一到17关啊,就我建议的话,大家啊,因为我这里的话还没有讲怎么去进行一个logo,他的一些方法对吧,但是的话我在这里课程内容里面的话,其实呃大部分都涉及到了。
就是啊在我课程内容里面讲到的,这样的一些绕过的一些知识的话,能够直接去使用到这样子的一个靶场里面,就我建议的话,大家先自己呃去进行一个尝试,就呃通过我在课上讲到的这样的一些知识,去进一个尝试。
然后尝试之后的话,把你做的这样子的一个比较详细的一个过程,对吧,你是通过什么样的一个方法去进行一个绕过的,然后的话你绕过他的一个就是截图啊,什么的对吧,把它给列出来,就像我这里的,比如说对吧。
你前端检测你怎么去进行一个绕过对吧,绕过的一个方法就是上传一个一句话木马对吧,然后抓抓包修改我们的一个文件名,为这种顶菲律宾的一个后缀,然后发包就能够继续进行一个绕过,然后这里的话就是呃一个课后作业。
就大家在课后的话去进行一个完成吧,然后的话在下一节课的话,我会给大家去做一个。
详细的一个讲解就是,对这个靶场里面,它所涉及到的一些知识做一个讲解啊,当然的话其中可能会涉及到一些ph的一个代码,就是关于菲律宾代码,这一方面就是大家觉得就是嗯能够去接受吗,哦也是可以的呀。
你可以去试一下。
呃就是大家对菲律宾代码的话,如果我讲菲律宾代码的话,大家能不能去接受呢,就是大家呃我讲你们就听啊。
就我讲了,但是我我们的一个目的,就是要让大家能够能听懂啊,就是要能懂,如果说如果说我讲了的话,我就是讲的话,因为中间的话可能会涉及到一些代码,就是啊通过代码,通过他的一个代码的一个。
就是它的一个书写对吧,它的一些呃代码的一个书写来理解服务端,它是怎么去对我们的一个上传的一个文件,做一个检测的,然后针对这样子的一些检测方法,我们怎么去进行一个绕过,学过。
那我明天再给大家详细的讲解一下吧,就可能会涉及到一些代码,但是的话呃就考虑到大家如果说接受不了的话,我就哦点到为止,因为讲太多了,可能大家也不会听得太懂了,对啊,就相关的,我觉得大家能够去听懂的话。
我肯定会也会去讲的,如果说有些,不是一时半会能接受的话,我可能就会跳过,哦那好的,然后那我们本节课的内容的话就到这里了,然后大家没有什么问题的话,那我们呃下课大家记得就是把这个靶场做一下。
然后呃尽量不要去看,尽量自己做吧,然后还有里面的话有一些就是啊,我这里有搭建的一些3m s,大家也可以去尝试去做一下,就包括了前面就特意给大家搭的吧,包括前面有有去用到的,像这种cms。
因为之前不是也有挺多人搭环境,一直搭不了,然后我顺便的话就呃就是搞这个环境的话,顺便就是把这一些4m s把那个放进去了,就方便大家在本地区进行一个测试嘛,因为这个up pro的话,这个环境的话啊。
我之前是本来想搭在那个靶机上面的,但是有一些在linux里面的话,它是实现不了的,它是需要windows的一些特性,所以的话我就把它放到windows里面发给大家了啊。
其他的也不多说了,呃大家早点休息啊。
P18:第16天:文件上传漏洞靶场实操 - 网络安全就业推荐 - BV1Zu411s79i
就是对于我们在进行一个文件上传的时候,好针对他的一些检测方法,我们啊给大家介绍了一些啊,就是如何去针对他的这种检测方法,来进行一个绕过来,来上传我们的一个web shell木马,然后这节课的话。
我我们把上节课就是没有给大家,就是讲完的这样这样的一些内容,就是说通过我们上节课讲的一些内容的话,我们在这节课呃,在更加深入的,通过实际的一些操作来给大家做一个啊,更生物的一个理解,然后大家应该也嗯。
大家应该有做这个我发给大家的一个靶场吧,就是这个,然后的话呃我看大家都在全年的话,是有一些问题,就是说有一些关卡完成不了,对吧,就嗯,所以说我特意就是发了一个。
我自己已经配置好的这样的一个菲律宾study,呃呃因为它里面的一些关卡的话,它需要呃对配置文件做一些配置,因为它需要有这样子的一个条件来,才能够去进行一个利用,所以的话嗯我这里的话是用。
就是已经帮你们改好了,你们直接用这个就可以了,呃但是可能就会有一些问题啊,我这里的话就大概。
针对大家提的一些问题做一个解答吧,然后大家看我这样这里的一个文档,其实我这个文档的话已经呃写得很详细了吧,就首先的话环境的话就是呃大家看一下,这里的话需要有两个组件,这两个组件的话需要开启。
开启这两个组件的话,呃,我们在这里这里的菲律宾study,这里有一个菲律宾扩展,我们选择这里把这两一个两个勾勾选上,这个还有这个勾选勾选上好的话,还有就是一个阿帕奇,它需要以这个mod方式去进行一个连。
接,好的话,我们需要修改它的一个配置文件,就是把这里的一个重写的一个模块给他,给呃前面的一个注释去掉,也就是把它给开起来,然后嗯,好配置文件的话,我们在这里直接右键。
然后这里不是有一个hdp d干空乘b,然的话我们用编辑器打开,然后找到这一行,然后把前面的一个注释给进行一个去掉,就是这里啊这里的一个注释,前面原原来的话是有一个注释的,就是有一个减号。
这样的话我们把它给去掉,然后去除他的一个注释,还有的话就是呃有一个这里有一个这个,roy override,这个的话其实默认的话它也它是word的,然后我们找到所有的里面有这个的,把它改成一个or。
其实这个的话关系不大,然后还有的话还有一个就是大家在做那一个,就是修改成那个就是绕过那个黑名,黑名单的时候,我们啊比如说其他的一些。
就是啊可以解析的一些菲律宾后缀。
比如说嗯,比如说kh比啊三,还有kh p是啊,还有五等等的,这种,就是都是呃,可以去当做一个p h p的一个文件去解析的。
当时的话它的一个前提条件,就是我们在配置文件里面,这里需要有一个这样的一个a type,这一行,就是把我们的这里的这种文件,后缀的一个啊类型,就是我们可以把这种啊扩展名,把它当成一个啊。
菲律宾的一个文件去进行一个解析,这样的话我们需要添加一下,大概的话就是这里这里的一些问题,大家有碰到的,然后我发给大家的,这个的话是我已经有配置好了。
呃然后的话我们回归我们的一个内容,就是呃刚刚的话我有看大家,就是呃有发的一些作业,就是一个文档,就我看看大家做的做的一些,我发现的话大家其实应该都完成的比较好,就是呃有发呃,发了文档的话。
就步骤的话也很详细,然后然后这里的话我问一下大家应该都有做吧,然后大家就是对这个大家做的这些,有没有什么疑问,就是呃是就是两种方案,就是大家针对,就是大家在做的时候碰到的一个问题。
然后的话需要我去给大家做一个解释,然后的话我就一一的给大家做一个解释,如果说大家需要我全都就是把这里的,这里的呃作业的17个关卡都要讲一遍的话。
我也可以给大家一个做一个解答。
大家有没有什么问题,就是呃大家选哪一种方案,就我看大家就是有做了的话是呃都做得挺好的,都,有步骤什么的。
还有操作。
有问有人有问题吗,就现在有问题的话,直接提吧,都都没人,有问题吗,前面两题不用其他的都讲。
行吧,那就,呃其实这些的话嗯,大家如果看了我这个文档的话,其实应该做的话应该是没有什么问题的,就可能的话就是有,就是在靶场的时候会有一个问题,是因为你们你们没有就是做这样的一个配置,就没有用。
我已经配置好的那个靶场,然后的话呃前面两个的话,第一个的话我已经在上节课已经给大家讲过了,对吧,这是一个前端的一个js检测,绕过我们怎么去对它做一个判断,它是一个前端的一个js检测,也有给大家说了。
好logo方法的话就是两种嘛对吧,禁用网站的一个js,然后的话我们就是啊一般的话用第二种就是啊,上传一个包含一句话嘛,一句话的一个图片嘛对吧,然后的话我们在因为它是在前端,对我们的一个文件后缀啊。
文件类型做一个检测,我们只需要绕过,就是说啊在我们上传文件的时候,选择一个图片的一个文件,就可以绕过它前端的一个检测,然后的话我们再把好发送到服务端的一个数据。
用bp抓包把它修改为一个点p p的一个后缀,就能够进行一个绕过,然后这里的一个代码的话呃,大家主要的话看这里,就它这里的话定义了我们上传文件的一个类型,它这里的话是一个js的一个代码哦。
这里的一个js代码的话,我们可以看到它这里是定义了,这样子的一个函数,就check file这个函数。
然后的话这个函数的话,它会在我们上传文件的时候,对我们的上传文件做一个检测。
直接看源代码,就是在这里我们这里上传文件的时候,这里有一个on submit,就在我们提交我们上传文件的时候,它就会对我们的一个上传文件,就是跳转到这里的一个函数,对我们啊好上传了一个文件做一个检测。
然后的话与我们这里定义的一个文件类型,做一个匹配,如果匹配到了这里是呃它允许上传的一个文件,它就会啊允许我们上传,如果不允许的话,它就会输出一个呃,抽就输出,这里的就是说这个文件它是不允许上传的。
这就是一个前端的一个js检测的一个绕过,而第二个的话,第二个的话就更加简单了,就是一个mmo类型的一个检测啊,我们只跟上面的一个方法是一样的,然后这里的话需要就是啊一个图片呃,就是啊对,还有就是啊。
我看群里有人问这个图片码怎么生成,就只需要用这样的一个一句话就可以了,然后打具具体的一个步骤的话,俱乐部一个步骤的话。
我这里啊你先准备两个文件,就是这里的一个呃psp的一句话码的一个文件。
以及一个呃正常的一个文件,里面的话是呃没有依旧诶,这个有啊,我换一个。
我这样的话就随便嗯。
搞一找一个这样的一个文件,然后的话我们在当前目录,注意是要在当前目录下面啊,打开一个这样的一个cmd,然后我们使用这个copy命令接啊,我们的一个图片就是二点jpg,然后的话注意要加一个这里的一个参数。
一个斜杠,然后加一个啊b参数,这里的一个这里的两个参数就是一个杠b,还有一个杠a的一个参数,我们可以通过看他的一个帮助信息啊,大家要注意的话,在windows里面它的一个参数的话是啊一个斜杠。
斜杠后面啊接接一个参数,然后在linux里面的话是一个横杠,而这里的一个查看帮助线的话是打一个问号,就斜杠问号,然后就能够看到这个命令的一些,相关的一些信息,主要的话就是前面两个杠杆以及杠b。
就干a的话就是表示啊一个20个,一个文本文件,就说我们,我先讲吧,第二个杠b的话,就是表示一个二进制的一个文件啊,这里的一个代码的一个意思的话就是我们copy,二点jpg,它是一个二进制的一个形式。
然后加我们的一个一句话吧,cs。p h b,然后我们需要保存,需要保留这一个ph文件里面的一个内容对吧,所以的话我们需要把它保存成,就是以一个文本文件的一个形式呃,文本文件的话就是一个a杠a。
然后的话保存为什么样的一个文件,我们这里的话啊a。jpg好,我们回撤回撤之后的话,他可以看到就复制了一个文件,它这里的话会生成一个这样的一个三点jpg。
我们直接用一个文本编辑器打开的话,就能够在这里看到有这样子的一个一句话,码对吧,这就然后的话它这个图片的话,是能够正常的打开的对吧,这就是一个图片码的一个制作的一个步骤,然后这里的一个mmo类型的话。
就是我们啊,只需要上传一个图片文件的一个后缀,它就会呃把它就是它的一个content type,content type的一个类型的话,就是一个图片的一个类型,然后的话就能绕过它的一个检测。
然后代码的话,主要的话就是这一段的一个代码哦,我们看这里,我们可以看到这里的话,它会对我们获它会获取我们的上传文件,然后获取的上传文件的一个属性的话,就是获取到我们上传文件的一个类型,这个类型的话。
然后的话与他自己啊,与他这里定义的这几个类型做一个啊比对,如果说呃是这样子的一个image jpg,还有pg,还有一个gf的话,我们就执行下面的一个上传文件的一个操作。
这样的话它是会获取我们上传文件的一个名字,然后的话它会上传到这样的一个路径,下面这个路径的话是在呃,其他的一个文件有做一个定义啊,一般的话就会上传到当前的一个目录下面,然后的话呃它的一个文件名的话。
就是我们这里上传的一个文件的一个名字,然后体现在我们bp里面的话。
就是一个呃有一个fire name得这样的一个。
呃参数这里。
我这里上传一个这样的一个图片文件,然后的话它的一个体系的话,就是它获取的一个文件的一个名字,就是从我们这里获取到的,然后这里的话我们再发送到服务器,服务端的时候,我们这里把它更改成为一个p h p的话。
服务端它在获取我们的一个文件名的时候,他就会获取我们这里发送给他的一个值,然后的话它会保存到服务器啊磁盘上面,然后它保存了一个文件的一个名字的话,就是一个s。p h p。
可以看到就是在这样子就是目录的话。
就是在这个upload的一个目录,这就是第二关,然后第三关的话,我们就其实呃我们在呃再去做一个文件上传,那个绕过的时候,我们首先我们要做的事情是什么呢,就是说我们首先要去对它做一个判断。
就是说判断他而服务端或者说客户端,它对我们上传的一个文件,有做什么样子的一个过滤,以及它以及一个检测,那么我们怎么去啊获取到这样的一些信息呢,就是说我们可以,因为它这里是有一个上传文件的一个功能对吧。
好的话,我们先选择这样子的一个文件,选择这样子的,我们先随意上传一个,比如说我们上传一个a s0 ,p h p的一个文件对吧,那我们上传上传之后的话,那这里的话呃有这样子的一个提示啊。
他可能是会提示在这里对吧,也有可能是会弹一个框,弹给你,就说啊他会提啊,他有告诉你,就是说不允许上传这样子后缀的一个文件,那么那么我们通过这样子的话可以啊,有一个基本的一个判断。
就是啊他有一个黑名单对吧,它会获取我们这样子的一个嗯,当然的话我们现在这里的话是无法做一个判断,应该是说就是说它有很多的一种类型啊,很多的一个检测方式对吧,我们这里的话我们再上传一个s点啊。
就是上传一个图片文件对吧,看它是否允许我们上传。
我们上传一个图片文件的话,可以看到它是允许我们上传的。
然后他上传的一个路径的话,就是在这里对吧,然后呃我们如何去查看,就是说它的一个信息。
我们通过bp的一个他的一个请求包,就是说通过我们他的一个就是向服务端发送的,一个请求,以及服务端它返回给我们的一个呃响应,来去做一个判断,我们可以看到,就是说我们这里的话上传这样子的一个。
菲律宾的一个呃不是一个偏激的一个图片文件,上传之后的话,它的一个响应的话可以看到他在这里会啊,有这样子的一个路径对吧,就是说他这里的话是一个保存的一个路径,然后这里的话它的一个文件名,它这里是啊。
不是我们这里上传了一个文件名了对吧,那我们可以知道它是有做一个,就是随机的一个文件名啊,其实我们从文件名也能够看到,它其实就是一个当前的一个日期对吧,2020041720。
然后后面的话是有一个随机的一个字符串,这就是我们需要去获取到的一个信息,然的话我们怎么去绕过啊,就是这里的话就会用到,我们就是上节课讲到的一些,就是说啊文件上传绕过的一些知识。
我们可以去进行一个尝试,就是说啊通过一些嗯绕过黑名单对吧,就是说大小写还有一些空格点,这样子的一个方法去进行一个尝试,好的话,判断服务端它是否对我们的这样的一个呃。
比如说一个空格对吧,我们在这里输入一个空格,我们在上传文件的时候,我们在这里上传文件的时候,我们在后面加一个空格对吧,然后的话我们去进行一个上传,上传之后的话可能会能够允许你上传。
然后的话发现他这样的话是不允许的对吧,那我们是不是能够有一个判断,就是说他啊对我们的这个空格做了一个过滤呢,对吧,然后我们再用一个点跟一个方式,然后上传,然后可以看到他这里的话是也做了一个。
就是也是不允许我们这样子的一个后缀上传的,然后的话还有就是呃,我们通过这个,它可有可能是检测文件的一个内容对吧,那么我们用这样子的一个呃形式,那这样子的一个就是加一个文件幻数的一个形。
式来去进行一个测试。
对吧,哦还有的话呃就是说通过上传一个图片嘛。
上传一个这样的一个图片嘛。
然后的话呃也有可能能够进行一个绕过好。
这里的话是呃我就是呃讲了一下,就说利用这样子的一个啊靶场,就是给大家介绍,就是说我们怎么去啊,绕过去寻找这样子的一个文件,上传漏洞,漏洞的一些思路。
然后这里的话我们回归这个题目,这个题目的话我们其实从前面的话。
我们也能够基本的有一个判断对吧,我们呃上传一个p h p的这种文件。
这种好可执行的一个脚本文件的话,它会在这里有提示,就是说啊不允许上传这样的一个文件,那么我们能够有一个判断,就是它有一个黑名单对吧,然后这里的话也是一个黑名单的一个检测,一个logo。
然后这里的话它的一个代码呃,其实啊在这里的话,因为是可以去查看源码的对吧,查看源码的话就能够知道这样子的一些信息,但是的话实际的一个场景,它是不会有这样的一个源码给你直接去看的。
除非的话是你啊已经就是获得了他的一个源码,然后的话针对这个源码做一个代码审计,代码审计,查看它啊做了哪些过滤对吧,做了哪些性质,然后的话我们针对他这一个性质,来进行一个绕过,那这里的话我们呃。
主要的话是通过这一个靶场来去学习,他的一个嗯它的一个绕过。
然后这里的话这个题目的话,它主要限制了这样的一个四点啊,我这样的话写的应该挺详细的,主要的话就是对我们常见的一个后缀,就包括大小写,就呃大家可能就是在之前尝试的时候对吧,也尝试有大小写。
但是的话发现不能够去见个上传的话就好,他应该是对我们的一个后缀,做了一个大小写的一个过滤对吧,然后的话呃还有第二个的话,就是他删除了文件名末尾的一个点,就是说还有的话有空格对吧,我们之前都有尝试。
是无法去进行一个呃绕过的,然后这里的话还有一个,就是这样的一个特殊字符串,上节课也有讲到,那针对这样的一个logo的话,我们就可以通过这样子的一个呃,其他的上传,特殊的一个可解析的一个后缀的一个文件名。
去进行一个绕过,我这里的话有列举了这样的一些,然后直观的话我们从代码去进行一个查看,就是说这里的话,我们可以看到他对我们获取的一个,我们上传的一个文件名,它呃这的话新定义了这样子的一个黑名单。
就说里面的话是这些后缀对吧,就说这些后缀的话,它是不允许我们去进行一个上传的,我们然后的话它会在这里啊啊。
这样的话其实有注释都已经有了,我这里的话一个代码也是。
就是扩到他这里的一个源码,我们就用它这个源码来说吧,好这样的话他用这样的一个delete dot,这样的一个函数,就是说大家在嗯再去做这种ph p的时候,就比如说你做代码审计的时候,其实啊。
你不一定说要把所有的一个pp代码都能够看懂,而且你不一定说你要能精通一个ph的代码,我们只需要就是能够大概能看懂对吧,因为你要精通的话,你得从头学学一个学门语言,其实花的一个时间的话还是比较多的。
我们这里的话,我们就呃大概了解它的一个结构就可以了,就是它的一个变量的一个定义对吧,这样的话其实你大有一个有一点的一个语言的,一个基础的话都能够看懂,像这种衣服判断的一个结呃,呃结构。
还有的话其实主要的话菲律宾你去做这种的话,你要了解的就是它的这样的一些函数,它的一个使用,比如说我们这里的一个excel这样的一个函数。
我们不知道它是什么意思,我们啊去查可以大家去查那一个手册,k hp的一个手册,官方手册,然后的话通过它的一个官方手册,对它的一个函数做一个理解,就是理解它这个函数它是干嘛的。
我这里的话呃手册的话就是这个菲律宾donut啊,他这里的话是支持啊简体中文的,就是说不会说存在看不懂,然后的话我们可以直接看到它的一个,就说这个函数,它的一个意思就是检测变量是否已经设置。
也就是说检测我们啊传给我们,传递给这一个呃,服务端的一个这样的一个,它限制的一个变量是否已经啊存在,或者说是否有这样子的一个变量,而这里的话它判断的就是这里的一个啊,我们的一个submit这样的传啊。
用post的方式接收到这样的一个summit,它是否存在,就这个summit就是我们这里请求包当中,我们这里的一个啊就是上传的一个动作,它的一个值,然后它检测到我们这里上传之后的话。
它就会获取我们的一个上传的一个路径,就是它会判断我们上传的路径对吧,这里的话也是一个函数,我这里的话就不一一的去啊,去查手册给大家看了,我就大概讲一下意思好吧,还检测我们上传的一个路径,它是否存在。
就说这个路径的话,它是在代码里面已经定义了,然后的话后面的话就是啊啊,几个变量定义了一个黑名单,然后的话还有就是呃这个可,这里的一个train,这个函数就是我们需要去了解的,如果不知道的话对吧。
它的一个意思就是去除字符串首尾的一个,空白的一个字符,就是说它会啊,把我们上传的这样的一个文件的一个名字,它会去除首尾的一个呃空白的一个字符,就去控了对吧,就这里的话也是一样的一个意思。
就是说会把我们的一个文件名的一个空,格给去除掉,然后第二个的话就是这个第二dot,就是删除文件名末尾的一个点啊,以及这里的话转换一个小写,就是这样的一个函数,就是它的一个意思的话。
就是呃理解这个p h p代码的话,就是理解它的一个函数的意思就好ok了,然后这里的意思的话就是呃他会把我们的获,它会获取我们的一个文件名的一个后缀对吧,获取到这样的一个后缀的话。
他会用这个函数对它做一个处理,处理的话,就是把啊文件后缀里面的。
所有的一个字符都转化为小写,如果它转化为小写的话对吧,就是说它是过滤了我们的这种大小写的一个,混合对吧,比如说我这里上传一个这样的一个大写的,一个p hp,它会把我们这里所有的一个字符。
都转化为一个小写对吧,就是一个菲律宾转化成这样,然后的话转化成这样子的话,他就能够他就好。
因为它这里的话嗯哪去了。
唉他这里的话,因为他这里的话原来的话就已经有定义了,这样子的一个原不原啊,就是拒绝的一个后缀对吧,他会把这里获取到的一个转化为小写的,与前面的这里做一个匹配,匹配之后的话。
他会把呃就是如果它转化为小写的话,自然的话就过滤了啊,这种大小写混合的这种文件后缀,然后的话就是不会允许你上传,然后这里的话这个的话就是这个函数是joy,in repair,这个函数的一个意思的话。
就是把我们这里的啊获取到的这个字符,获取到的,这里具体一点的话就是我们获取到的一个后缀,我觉得这个这个号哦,这里的话还要注意点的话,就是这个这里这里我老越过了,就说这里的话。
就是把我们的一个获取到的一个文件名对吧,就是说这里删除了一个文件名,空格的一个文件名,然后把它的一点做了一个分隔。
就是说我们的一个后缀都是一个文件名对吧,嗯比如说s。p h p,他都是这样子的一个文件名,然后他以这里的一个点。
你做了一个风格,然后获取到我们点后面的一个后缀,也就是我们的一个文件扩展名,然后的话付给了这一个值,然后的话再对我们这里获取到的一个扩展名,做一个判断,这里的话就是过滤了这一个呃。
在windows里面的这种这个特殊的一个字符串,然后呃还有的话就是一个首尾的一个触控,就是这个函数的一个意思好下面的话就是呃,下面的话就是一个判断就判断啊,前面这里经过了这样的一些操作之后。
他得到的这样的一个后缀对吧,这里比如说我们的一个写的是一个大写的,一个这样子的,大写的一个我们的一个上传了一个文件名,是这样子的,然后的话它就会嗯,在后面的话再加一个空格以及加一个点是吧。
他这里的下来的话,他就获取到我们整个的一个文件名对吧,它首先会删除我们文件名末尾的一个点诶,他会把这个过滤掉对吧,过滤掉之后的话,它会以我们这里的一个点做一个分格,获取到我们的一个后后缀。
还有一个后缀的话就是像这样子对吧,后面接一个空格的好的话,他会把这里的一个字符串,它全都转化为小写对吧,就是说它会去除掉,他把我们的一个大写的一个p,把它给转化为小写,就啊得到了一个后缀的话。
就是这样子,然后的话在下一步的话,就是如果后面有接这样的一个字符字符串的话,他就会把这个字符串同样的给替换掉,给呃替换掉,就是过滤掉就替换的话,它这里的话替换为空,然后的话再再到最后的话。
就是它会把我们的一个首尾的一个空格,就前面的一个空格,还有后后面的一个空格给攻击下过滤之后的话,最后剩的一个字符串就是这一个,而这一个的话就是最终过滤之后的一个后缀,一个呃上传文件的一个扩展名。
然后的话他在与获取到的这个扩展名之后的话,再与他这里定义的这一个数组里面的呃,不允许上传的一个一些后缀做一个匹配判断,就是说如果是不是存在这里的一些后缀的话,它才执行我们的一个文件上传的一个操作。
这里的话呃就是文件上传的一个操作,主要的就是看一下,再理解一下,这里这样的话就是呃上传文件的一个路径,他这里一个路径的话,它我们前面有看到,就是说它对我们的一个上传了一个文件名。
做了一个随机的一个处理对吧,这里的一个其实也不是随机,它的一个代码,意思的话就是获取当前的一个日期,就我这里的一个日期对吧,202000417就是4月17号,然后后面的话再接了一个随机数。
这个render的话就是随机的,一个是就是随机生成的,已在,百99之间的一个随机数,然后的话在后面接我们的一个呃,这里经过过滤之后的这样的一个后缀,然后组成了这样子的一个文件名。
这就是呃这一个代码的一个意思,大家有明白吗,应该能听得明白吧,能听明白是吧,好的好的,能听明,能听明白的话好,我这里的话就是特意的把这里第一个做了一个,比较详细的一个讲解。
因为后面的话其实就是一个类似的,它的一个代码其实都是类似的,主要的话就是说他在进行一个过滤的时候,它呃有一些没有做一个过滤,就是说这种呃,还有的话就是像这种黑名单的一个形式的话,它的一个过滤的话。
它是呃不严格的,它的一个就是服务端它的一个,而在对文件上传的一个检测的话,它的一个过滤的一个措施,它是有缺陷的,好的话我们利用这个缺陷来进行一个绕过,然后这里的话我们通过代码的话,其实就能够明白了。
主要的话呃大家可能不太理解的一个点,就是这里就这里的话,我们可以通过这种呃特殊的,可以解析的一个后缀去进行一个logo,因为它这里的话它是一个黑名单的一个形式,它是没有包括我们这里的这种特殊的一个。
啊后缀的对吧,然后这里的话呃,我们就可以通过这样的一个方式来进行,一个绕过,然后大家这里今天有同学问我这样的一个问题,就是你通过这样的一个方式上传的话,他解析不了你,你会看到就是说啊。
上传了这样的这样的一个文件,你访问的话,你浏览器访问的话,它显示的是一个文件的一个内容,为什么呢,就是说而服务端没有对你的这,你这里的一个代码里面的内容做一个解析,也就是说他没有执行我们的一个。
菲律宾的一个脚本代码,所以的话你只是看到了一个,它里面的一个文件内容,然后这里的话就是啊你需要给他啊,就是我前面讲的需要做这样子的一个配置,这样的话哦好我就不演示了吧,就其实就改改一下。
改一下这样子的一个后缀就ok了,然后第四个的话,第四个的话,我就直接讲代码,直接啊就是讲方法吧,因为前面的话开头的话我已经有,我已经给大家介绍了,就是说呃文件上传,我们怎么去进行一个测试对吧。
来判断服务端对我们上传的一个文件,他是做了什么样子的一个性质以及过滤对吧,好的话,我们再针对这样的一个呃方在,利用我们的这样的一些绕过的一个方法,进行一个绕过,这样的话哦。
大家应该在操作的时候应该是没有什么问题的,我通过看大家的一个文档的话,大家呃这样的一些操作,包括使用dp发包啊,还有抓包这些什么都没有问题的,主要的话就是要理解呃,呃它里面的一个代码的一个意思。
以及我们为什么要用这样的一个方法去进行,一个绕过对吧,然后第四个的话就是呃文件后缀的一个,黑名单的一个绕过,跟上面的话其实啊类似的,它的一个限制的话,我们通过测试的话能够有发现就是这样的啊。
一些性质就跟上面的话其实是啊一样的,然后这里的一个不同点的话,就是它这里的一个啊文,对于文件后缀的一个性质的话,它是比较严格的一个性质,我们可以从代码能够看得到,我们如果还是使用上面的一个绕过方法。
比如说我们用这样子的一个菲律宾五的这种特,殊的一个后缀去进行一个绕过的话,你会发现是不行的,因为它这里的一个黑名单的话,它的一个限制的话是比较多的,它限制了我们这里啊,常见的一些可以解析的一些后缀对吧。
偶尔ph 223,还有这种大小写的对吧,还有一些常见的呃一些解析的,一些可解析的一些文件后缀,然后然后后面的话代码的话跟上面其实类似的,就呃过滤了文件名的一个末尾的点,还有转化为小写。
还有去除的这种特殊字符,然后这里的一个呃知识点的话,就是说我们这里这个在上节课有讲到的,这样的一个分布式的一个配置文件,这个点h ta c c e s这样的一个文件,然后我们可以看到它这里的一个啊哈。
黑名单的一个后缀里面的话,它是没有对我们的这种呃文件做一个过滤的,对吧,那么我们就可以通过这样的一个呃后缀,这样的一个文件名来进行一个上传,然后上传的话就是啊,里面的一个代码的一个意思嗯。
这里的话我操作一下吧,好吧。
这样的话代码的一个内容的话,就是这样子的一个内容,我们首先新建一个,新建一个这样子的一个呃,文件里面的一个内容的话,就是这样子呃,呃代码的一个意思的话应该都明白吧,上节课也讲到,这样的话。
我这里呃写一个s。jpg,这里的话我们大我们可以自己去定义的,你你不可你可以不写成这样,你可以啊,就写成一个s也是可以的,然后的话我们上传文件的时候,我们直接上传一个as的一个文件。
你后面不接后缀什么的都是可以的,然后的话你上传上传成功之后的话,我们在直接去访问这样子的一个s的一个文件,里面的话,就是我们的一个啊p h p的一个一句话码,它同样的能够去解析我们这里的一个呃代码。
我来操作一下,我这里的话就呃s。pg吧,然后我保存保存为一个点这个h ta c c s保存。
然后大家一定要注意的话,就是他的一个文件名,大家别写错了。
哪去了,在这里,还有一个文件名的话是呃别写错了,就是你少一个字母的话,他就是在服务,你上传到服务端,他也不认识这样子的一个文件,它就不会去啊,读取这一个配置文件里面的一个内容,就hta。
然后cc 1 s要注意。
好的话,我们再用这一个我们上传上传这样的一个点,这样的一个配置文件。
然后我们上传上传之后的话,可以看到他这里的话是上传成功了对吧。
它里面的内容呢内容的话就是这样子,这个内容好的话,我们再上传一个,cs点偏激,那我这里的一个,这个文件。
我们啊我这里的一个s。pg的一个内容的话。
就是一个一句话对吧。
好的话,我再直接去上传,上传之后的话,可以看到这里的话已经上传成功了对吧,然后的话。
哦这里有个问题啊。
没事好的话,我们上传之后的话,我们啊直接去,用我们我们连接我们的一个一句话码的一个方,式来去进行一个访问。
嗯这样的话有个问题。
我这里的一个代码。
因为呃我们这里上传之后的一个文件名的话,就是像这样子的一个文件名,然后的话我这里的一个代码的话,它是匹配的是一个s点偏激,所以说的话他匹配不到会好,这样的话我们需要修改一下这一个文件。
修改的话我直接就匹配一个png,好的话,我再重新上传一下。
没看到上传成功了,上传成功之后的话,我们再去访问一下这一个啊,偏激。
没有解析吗,看一下,呃我这里原来上传的东西有点多,哦这里,我这里原来的一个内容是这样子的一个内容,就没有替换掉了,我这里的话直接在这里改一下吧,我的话直接改成一个pg,搞错了哟。
我这里是关卡搞错了呀。
咳咳咳,这里是第四关,我用的第三关的一个。
因为第三关的话,他对那个呃我们上传了一个文件名,做了一个从随机的一个命名,所以的话我刚刚那里上传了这样的一个点。
htc s的一个文件的话,它啊随机了一个生成的一个文件名,我们可以看到应该是会有一个这个对,就这个,所以说的话他是就说诶,所以说的话内容的话就是这样子嘛,但是的话他这种就正正确的一个文件源的话。
应该是这样子的,所以的话他这里的话会有一个问题,就是我这样的话就不去进行一个上传了,我这里的话直接改一下吧,呃就把这里的一个内容改一下,就步骤的话还是一样的一个步骤。
内容的话就是这样的一个偏激的一个内容,然后的话我在这里在重新试一下。
我们执行执行之后的话,可以看到之前的话它是一个png对吧,只是一个啊,我们是啊一个偏激的就不能够解析的一个后缀,然后的话我们通过就是说上传这样子的一个啊,这样子的一个特殊的一个文件分布式配置文件。
然后的话我们能够把我们的一个,就是说这种在这种不可解析的一个后缀,里面的一个psp代码,能够把它当成一个菲律宾的一个一个文件,做一个解析,这就是啊这一个文件的一个作用,以及这一关的一个绕过的一个方法啊。
就说这里面涉及到的一个知识点,就是这这样的一个文件,而这里的一个呃代码的话,就是像这样子的,其它的一个意思就是匹配这里的一个字符串,就是说啊在当前它只针对当前目录下面。
就说在当前目录下面的一个啊,我以这一个文件对吧,当前目录下面的这样的所有的一些文件,如果他呃这个文件名里面,它包含有这样子的一个png的话,他都能够啊,作为一个p h p的一个文件去进行一个解析。
就包括这样的其他的一些文件里面,如果说就是说我们上传的一个一句话啊。
这种图片码的话都能够去进行一个解析,然后的话呃第五个第五个的话呃,代码其实跟上面的话是一样的,然后呢我们经过测试的话,我们能够就是呃,有就是知道他的一些限制的一个条件。
然后这里的话跟上面的不一样的一个地方的话,就是它过滤了这样的一个顶,ht a c c e s的一个文件,就是说我们在做第五关的时候,我们上传这个文件,它是不会允许你上传了。
所以说我们上面的一个绕过法宝的话就失效了,好的话,在这里的话呃,我们就利用它的这样子的一个,就是它的一个过滤的它的一个性质,它的一个过滤的一个条件,我们从这里来看一下,就是说我们通过测试的话。
能够知道它是删除了文件名末尾的一个点,还有就是呃我们的一个末尾的一个空格对吧,那么我们可以通过构造这样子的一个啊点空格,就说这种多重的一个点空格的一个组合,这样子的一个文件名,我们来理一下。
就是说我们要上传这样子的一个文件对吧,然后的话经过这样子的一个服务端的一个,代码的一个过滤之后对吧,他首先会删除文件名末尾的一个点,它删除完这一个点对吧,删除完之后的话,它再放到下面转化为小写字母是吧。
这里本来就是小写的,好的话,它会以啊一个点的一个后缀做一个分隔,它会获取到这里的一个内容,然后的话他会去除我们的一个,啊一个空格对去除我们的一个空格,它去除完这一个空格之后的话。
我们后面的我们这里的一个文件名的话,就是成了一个这样子的一个文件名,就点啊,就是一个p h p后面接一个点的,然后的话因为他没他只是做了一个就代码的话,它是从上到下嘛对吧,从上到下一一层一层的作业了。
一个这样子的一个过滤,然后他最后到获取到的一个啊文件名的话,就是像这样子的,一个菲律宾点的一个文件名对吧,然后的话因为他这里的话是一个白名单啊,不是一个黑名单啊。
好我们可以它会把我们这里获取到一个文件名,与这里的一个啊黑名单的一个文件名,做一个匹配,然后可以看到它这里的是一点p h p,这样子的对吧,然后我们这里的一个后缀的话,它是不存在这样一个黑名单的。
所以的话我们就能够进行一个logo,然后的话我们再利用在windows上面的一个特性,就是说我们这样子的一个文件后缀的话,它在windows里面,它是会自动把后面的一个点给去除掉的。
然后实际保存到服务器的服务器的话,就是一个菲律宾后缀的一个文件,这这就是呃我们这样子的一个绕过的一个,方法的一个原理,好啊。
我们来看一下,操作看一下第五关,同样的我们先啊,随便上传一个文件。
好我先上传一个s点,偏激对吧。
我们上传一个正常的一个图片文件,然后我们上传上传之后的话,我们主要是看这里他的一个包,嗯我们呃把这里的他的一个上传文件的一个包,把它放到这里,我们发送一下,然后可以看到它的一个路径,它是这样子保存的。
保存在这个目录下面,文件名是这样子的对吧,那我们好再利用前面的一些方法做一个测试,我们首先输入一个空格对吧,让我们发送发送之后的话,可以看到就是说它这里保存的一个文件名的话,可以发现它是一个s点偏激。
但是他把我们末尾的这样的,一个多的一个空格给去除掉了对吧,那么我们从这里就能够判断它,对我们的一个末尾的一个空格,就是首尾的一个空格做了一个啊过滤,可以看到我们在前面加一个空格也是被过滤了。
然后我们在这里的话在加一个点对吧,再加一个点,然后我们再上传,上传之后的话,可以看到他把我们的一个点给过滤了,但是可以看到这里的话它是有一个空格的,这个空格它没有过滤掉,那么我们在这里。
我们这里它保存到服务器端的一个文件名啊,我这里重新换一个文件名,然后然后我我还有,这样的一个文件名,然后的话我再进行一个上传啊,我直接在这里服务端,我把这些都删了吧,我这里进行一个上传。
上传之后的话可以看到,保存在服务器端的话,它就是这样子的一个文件名对吧,然后这里的话因为是使用的一个png后缀,那么我们在这里改成一个菲律宾,我们再进行一个上传的,然后可以看诶。
好这里的话它就不允许了啊,为什么不允许呢,就是说他这里的话嗯,我们从代码里面刚刚也看,刚刚也理解了,就是说他最后他获取到的一个其实是它会,如果说你在这里呃,我们在这里再多加一个点,再来看一下好吧。
我们再发送一下,发送之后的话可以看到啊,我在这里再多加一个点的话,他把我们的这里的一个呃,其实这里这样子也可以的,我们在这里再多加一个点,然后上传之后的话,可以看到在服务端它保存了一个文件。
就是一个菲律宾后缀的一个文件,那么我们就顺利的进行了一个绕过对吧,我们其实也可以再你再多加几个也是可以的,然后他这里获取到了一个文件名,其实在服务端他获取到一个文件名,就是这样子的,所以所以说他跟。
因为黑名单里面没有这样子的一个后缀嘛,所以的话我们就能够绕过,然后的话windows上面的话,它后面它会自动把我们的这种点顶,还有空格,这种都会给自动的去除,所以它实际保存到服务端的话。
它是这样子的一个啊p h p的一个后缀文件,我们这里的话就呃,成功的上传了这样的一个一句话嘛,绕过了它的一个过滤,然后第六关的话就是一个后缀名的一个大小写,其实跟上面的话也是类似的,然后这里的话是呃。
嗯主要的话就是一个,它同样是严格限制的一个文件后缀,然后这里的一个文件后缀的话,就是啊这个例子的话就能够充分的说明,就是说你的一个黑名单的这种策略的话,去啊进行一个过滤限制的话,它是啊有缺陷的。
就说他无法去把我们所有的这种呃这种,就是不允许上传的这种后缀,都给它列到一块对吧,你总会有就是说没有去没有,就是列到这里面的,那么我们就可以利用啊,这样子的就是没在这个黑名单的这种后缀啊。
来进行一个绕过,这句话就是一个文件后缀名的一个大小写,为什么人到过的话,就是在这里的话,可以看到它是没有像这种类型的一个后缀的,对吧,就自然而然的就能够去进行一个绕过,这个的话呃代码什么的话。
跟上面都是类似的,这个话应该没有什么太大的问题啊,好这一题是哪一题,第三题吗,第三题啊,就是说这个这个是吧,这个是因为你没有你没有配置这一个环境,也也就是说你没。
你如果是用用我配置好的这个文件的话,是没有问题的,我这里给你试一下吧,好,嗯我这里的话就直接用这个,ph view,然后可以看到我这里直接访问对吧,直接访问的话,他如果说你没有。
就是说有有同学给我就是截的图的话,就是他这里的话,它是会显示的是里面的一个代码对吧,就说这这样子的一个内容对吧,那是因为你没有就是做一个就是服务端,它没有对你的这样子的一个文件做一个解析。
我这里的话可以看到,它显示了这样子的一个内容,然后的话他把我的一个菲律宾代码做了一个,顺利的一个解析对吧,然后在这里,我直接做一个实验,然后执行一下,可以看到它是能够顺利地执行的。
然后用需要管理工具的话,如果说你在web端能够去执行这种命令的话,这个需要工具也是可以的,可以看到对吧,我这句话直接就呃得到了这样子的一个呃,就是连接成功了对吧,就是说你的一个问题的话,就是你没有啊。
就是,没有配置好,就所以说我建议你们使用,我发给你们的那个靶场,有那个的话是我已经配置好了的,在这里好,现在的话应该没有什么问题吧,能够正常的做一个连接的,就大家在测试,再就是说再去连接之前的话。
先用web用浏览器去访问一下,如果说没有说有这种报错什么的对吧,那说明的话你的这个码是能够正常的解析的,就自然而然的就能够用这样子的一个,这种需要管理工具去进行一个连接,好那么我们继续。
呃前面的话我们讲讲到了这个后缀名的一个,大小写的一个logo,就是说啊利用他的一个黑名单的一个缺陷啊,第七个的话就是嗯后缀名空格的一个绕过啊,其实这个的话跟上面的这一个是也是类似的,就是说这里的话。
就是他没有对我们的这样的一个空格,做一个过滤,他没有对这样的一个空格作为一个过滤,但是他对我们的这种呃,就是末尾的一个点做了一个过滤,然后它过滤了这这里的一个点缀的话,它获取到的一个后缀的话。
就是这样的一个p h p加一个空格的后缀,然后的话就自然的能够,绕过这样子的一个黑名单,然后保存到服务端的话,它实际存储的一个后缀的话就是一个菲律宾,这样的话应该哦跟前面的话是类似的,应该很好理解对吧。
好第九个第九个的话就是他没有对啊,我们的这样的一个特殊的这种字符串,做一个绕过,然后他把我们上面的像这种dht,还有大小写啊点啊,还有前面前面的一些空格都过滤了,但是的话在呃这种方法。
其实呃再去做这种windows上面的一个环境的话,就在c t f题题目里面也是啊比较常见的,就是说如果你啊发现像这种前上面的这种,没有做一个,就是说不能够去绕过的话,你可以尝试用这样子的一个方法。
就只看,我们来测试一下。
第九关,这样的话我同样的先上传一个天机,先呃得到它的一个这样的一个请求包,主要的就是这个包,然后把它发送到我们的repeat模块,然后的话我们啊就前面的这种测试,就是说点空格的这种。
我们去判断它的一个服务端的这种检测的话,我们就不一一的去做了,这样的话直接改成一个菲律宾,我们用这种方式去进行一个尝试,date这样子的一个方式,就实际它的一个后缀的话,就是像这样子的一个后缀对吧。
然后的话我们再进行一个上传,我们看一下这里的一个目录,我们上传上传之后的话,可以看到它实际保存到服务端的话,就是一个p h p的这样子的一个文件,我们可以从它的一个响应包当中去看到。
可以看到它是这样子的一个啊,就是保存到服务端的话,它是这样子的一个样子对吧,但是在windows上面的话,它会把后面的这样的一个特殊字符把它给啊,就是就保存到服务端的话,他看到这样子的一个文件名的话。
他会把它保存为这样子的一个呃,就是把后面的一个去掉,这里的话就是一个windows上面的一个特性,然后的话就是第十个,第十个的话呃,同样的就是啊跟前面的话类似的,这样的话就是呃这种顶空格就是多重的。
这种顶空格的一个绕过,最主要的话就是代码,它代码的话是呃,一个差别的话就是,呃跟前面的话其实没有什么太大的一个差别,就同样的是去除了顶,还有空格,当然这里的话是嗯我们的一个po的话,就是像这样子。
我们把它改成这样子的一个文件名,就我们啊在做一个测试的时候对吧,我们可以直接在这里去进行一个改版,然后通过查看观察它的一个响应包,它它的就是说它存储到服务端,它的一个啊文件名是怎样子的。
然后的话再一的做一个调整嘛对吧,你可以再多加几个,就直到啊找到能够正常正确的绕过它的,一个检测的一个方法,这样的话我应该没有什么问题吧,应该跟前面的话是类似的啊,第四,诶第11个也是啊。
第11个的话跟上面的logo方法的话是一样的,就这里的话是它是代码的一个实现方式,可能不一样呃,这句话同样的,它是定义了这样子的一个黑名单对吧,然后的话它是过滤了这种呃htc的这种字符对吧。
然后的话它这里的话是有一个诶,看一下这里我好像我应该是搞错了哦,这里的话是我写错了呀,这里实际上的话应该是一个,他把我们的一个文件名对吧,然后的话他会把我们的这样子的。
就是他这里拒绝的就是黑名单的一个文件名,把它给替换为空,主要的就是这个函数,就是说看到就是说他有这种替换操作的话。
那么我们就可以使用双斜的,就是啊,就是后缀名的话唉怎么回事,后缀名的话我们可以使用这样,像这样,比如说一个s。ktp,然后的话我在这里在中间再加一个hp。
这个的话就是一个双写,然后他这里的话在服务端,它对我们的这种后缀做一个检测的时候,它会获取我们这里的一个后缀对吧,然后的话获取到的一个后缀的话,它会与我们这里的一个黑名单的一个内容,做一个啊匹配。
就是说它会把我们这里获取到的一个后缀,里面的存在黑名单里面的这种后缀,这种字符做一个替换,他替换的话就是哎这个就替换为空,然后他,这里的话我们可以看到,这里的话是有这样的一个pp对吧,它的一个代码的话。
它就会把这里替换为空,替换为空,但是它替换为空之后的话,我们最后的一个呃后缀通,啊不好意思啊啊咳嗽有点有点难受啊,搞得我了,而这里他实际的获取到的就是,他最后获取到的一个后缀。
其实还是一个菲律宾的一个后缀对吧,然后他存储的话,后面还是存储的一个菲律宾的一个文件,这样的话我这里是搞错了,就是说写错了,我这样的话应该是直接复制了上面的,所以啊忘记改了。
第12个那就是啊一个年龄阶段呃,关于您明年几段的话,我们上一节课也讲,如果说还没有就说不是很明白的话,大家可以去看一下这里的这个文章,这篇文章的话对这个年龄阶阶段,它的一个根源,就是。
我们为什么能够利用这样子的一个年龄阶段,做了一个比较详细的一个解释,这样的话呃,我们把这两个跟就这一个跟这一个做一个比,较,它这两个的一个区别的话,就在于我们的这里的一个。
呃就是这里这里它获取的一个保存的一个路径,它的一个方式它是啊不一样的,这里第一个的话它是以个体的方式,就是说我们在这里的一个保存路径,它是呃放在我们的一个u r l当当中,好,这里第二个的话。
它是以pos的方式去进行一个接收,所以我们传我们客户端的,我们传递和服务端的这个保存的一个路径,的一个值的话,它是放在我们的一个post的请求当中,然后这里的一个这里的梁啊,大家要了解的一个知识点的话。
就是这里的一个年龄阶段,它在一个get方式以及post的方式,它的一个不同之处,就其实上节课的话呃,也给大家就是有说到这样的话。
我以这两个题目做一个。
演示。
首先的话我们嗯是哪一个,第12个,第12个的话,我们首先同样的就是前面的一个测试的一个方。
式对吧,我先上传一个呃偏激。
然后的话我们观察它的一个请求包。
上上船看完之后的话,可以看到它是允许我们上传的,然后的话从,哇嗯嗯嗯,然后的话我们观察它的一个请求包,以及它的一个响应,我们这里的话把它放到这里,呃发送一下,我们可以看到就是我们的请求包当中。
它是一个post请求对吧,然后的话主要的话是观察它这里的一个u r i,它的啊有一个点就是这里,这里的话就是有一个save path,save pace的话,它的一个啊就这一个参数。
它的一个值的话就是顶顶杠的一个payload啊,不upload这样子的一个目录对吧,然后的话我们再从它的一个响应包当中,来进行一个查看,查看之后的话,其实可以看到。
在这里的一个就是保存到服务端的一个路径,它是这样子的对吧,顶顶干upload,然后这里还有多了一个对,然后其实它的一个它这里的一个代码的话,意思的话我们可以判断,就是说它是从这里的一个我们这里的一个呃。
保存的一个路径,然后的话与我们它这里啊,同样的做了一个随机对吧啊文件名的一个随机,然后的话做了一个拼接,就拼接之后的话,这个路径就是它的一个保存路径对吧,所以说这里的话它的一个问题的话。
就是说在于我们的这里的一个目录,这里的一个保存的路径其实是我们可以控制的,就是我们可以控制它这里的一个保存路径啊,发送到服务端是什么样子的,然后这里的话就是涉及到了这样的一个,年龄阶段的一个知识点。
我们来去进行一个绕过,就是说我们知道这里的话,我们通过前面的一个测试,知道它是这里的一个app的字串字符串,然后的话跟我们的这里的后面获取到的一个,文件名做了一个拼接对吧,好的话。
我们想要让服务端保存我们的一个pp后缀的话,我们就利用这样的一个年龄阶段,在这里写一个00%呃,前面的话我们随便写一个,比如说一个sd f。p h p,然后的话后面的话接一个00%。
然后这里的话就是一个00%的一个特性,它会把我们呃在这里的一个00%,后面的这样的一个字符串给忽略掉,然后实际它会存储到服务端的话,它就是前面的这一段,就是有一个a s d f。p h p到这里。
然后它解析了嗯,它解析到这里的话,它会把后面的字串都会给啊去掉,那我们可以来查啊,测试一下,我们进行一个发送,发送之后的话可以看到啊,它是保存的,它实际的一个好文件名,就是它的一个保存的一个路径的话。
就是这样子对吧,然后可以发现他这里是有一个这样子的,一个特殊的一个字符,就是零零阶段做了一个url的一个解码之后,就是这个00%,他在服务端啊,就客户端到服务端做了一个解码,做了一个url的一个解码。
解码成了一个这样的一个特殊字符,好的话,这种特殊字符的话,它在保存到服务端的时候,他会把后面的一个字符给去掉,我们可以看一下,在这里对吧,我们可以发现它是保存的,他服务端返回给我们的一个响应。
就是他保存的一个路径的话,是这样子的对吧,但实际在服务端,它是以一个s d f等于k h p的,一个一句话码的一个,菲律宾的一个web shell,这就是以它的一个问题。
就是在于这里它的一个保存的一个路径,就是说保存到服务端的一个路径,是我们能够去进行一个控制的,然后的话我们再利用这样的一个年龄阶段的,一个特性进行一个绕过。
然后pose的话跟get的话,就其实就是呃我们同样的来进行一个。
测试,按照上传一个这样的一个偏激,我们观察它的一个请求包,然后可以看到跟上面不同的点的话,就是说它不是在一个啊url上面,也就是说不是以get方式去进行一个,数据的一个传递。
然后我们发现它啊观察这个请求包的话,可以看到它的一个请求内容,在这里有一个参数,有一个same page对吧,然后的话这里它的一个值的话就是一个顶啊,顶顶干upload对吧,那我们可以看到啊。
我们先发送一下,发送之后的话,我们观察它的一个响应,观察响应之后的话,发现它跟前面其实是一样的,它同样的是把我们的这里的一个值,与我们保存的一个文件做了一个拼接,然后的话拼接保存到服务端。
所以说这里的话我们同样的使用一个年龄阶段,来进行一个绕过,我这样的话呃,随便写一个文件名,然后的话这里要注意的点的话,就是在post的请求的话,我们pos的这个数据的话,它传递到服务端的话。
他不会对我们的这样子的一个00%,做一个url的一个解码,解码成那个特殊字符,所以说的话我们需要在这里直接就是啊,更改为我们的那个特殊字符,这样的话我们就需要用到这个hex的一个编码。
我们需要找到这一行,我这样的话加了一个空格,就是为了呃就是把我们的一个诶没了,就找到这里,就是我们要在这里加一个那个零啊,零零阶段的一个字符,我们找到这个部分就是说在这里对吧。
然后在这里的话我们啊要知道的话,就是空格它的一个呃,16进制的一个字符的话是一个二零,就是二零,然后的话我们需要把这里改成一个零,零,改成零零之后的话,我们在这里可以看到它这里多了一个对吧。
多了一个这样的一个特殊字符,然后的话我们再发送到服务端的话,它就会从这里的一个呃内容,与我们上传的一个文件做一个拼接,我们可以看一下,可以看到它保存的一个路径就是这里对吧,文件名是这一串。
然后的话它同样的能够,就是说它会把我们这里的一个特殊字符,后面的内容给忽略掉,然后保存到服务端的话,是这样子的一个文件名,这里的两个例子的话就是呃让大家明白,让大家理解,就是这里的一个年龄阶段。
他在get以及post方式的话,它的一个好操作以及它的一个区别,啊这里的话大家应该没有什么问题吧,应该没有问题吧,有问题吗,啊没问题,那我们我们继续,就大家在听我讲的时候呃。
可以在自己的一个靶场上面跟着我一起做,这样子的话呃,可能大家理解的一个效果会更好一点,然后呃第14个的话就是啊,文件内容的一个检测了,前面的话都是啊,对我们的一个文件后缀的一个检测对吧。
这样的话就是啊对服务端,对我们的一个文件内容做了一个检测,logo的话,就是呃就其实就是我们它的一个检测的话,主要的话就是文件头的一个检测吗,还有的话就是后面的一个文件内容的一个检测。
就是他通过这样子的一个函数,通过这个函数来获取,我们上传文件里面的一些信息,好的话,通过里面的一个信息来判断,我们上传的一个文件它是什么样的一个类型,哦这里的一个文件头的一个检测的话。
应该没有什么问题的吧,就嗯跟我们上节课讲的一个内容,就通过图片码的一个方式对吧,加还有的话就是加这种呃文件幻数,常见的一个gf 89 a就是这样子的一个方式,能够进行一个绕过啊。
源码的话嗯主要的话就是这里吧,这里他首先的话它会获取我们上传那个文件,它这里的一个函数的话,就是获取你上传文件里面的一个内容,就是这里上传了一个文件内容的前两个字节,然后通过前两个字节来判断。
来判断你上传的一个文件类型,是不是这像他这里列的这三个类型,还有还有的话是不是就说不知道,就是说不是上面的这三种类型,然后的话这里会有一个判断就判断啊,如果说是这样子的一个呃类型的话。
它就允许你去进行一个上传,如果是unknow的话,它就会好给一个报错,就是啊上传出错,这里的话应该没有太多的一个问题哦,这个的话就是主要的话就是这个函数的一个理,解,我们啊这样的话大家看一下吧。
就获取图像文件的一个大小,然后返回它的一个尺寸,还有文件的一些类型的一个信息啊,这样的话主要的话就是呃通过图片嘛,还有就是这种图片的一个标识字段,加一句话码去进行一个绕过,就是从代码里面的话。
我们可以看到它就是啊,同样的是一个黑名单对吧,就是它的一个文件类型是限定了这三种,然后的话嗯,它会通过这个函数对我们的一个文件提取,里面的一个信息,它提取了一个信息的话,主要就是这一个好二二的一个信息。
我们看一下这个,这个页面就这篇文章的话,对这个函数做了一个比较详细的一个解释,好就是这里的话它的一个二的一个信息的话,就是索引二,啊这里索引二就给出的话就是一个图像的类型,就是然后它通过获取到图像的。
这个索引二的一个值,就它的一个值的话,就是像这里有列了一些获取到这样的一个值,来去判断它的一个文件的一个类型,是什么样的一个文件类型,再比如说一的话就是gf 2的话就是jpg。
好的话来判断它的一个我们上传的一个文件,是什么样的,一个是不是允许上传的一个文件类型,第16个的话,就是同样的就是这个函数的一个logo,就嗯理解这个函数就ok了,然后的话这样子的一个logo的话。
同样的就是图片嘛,就就我们常常常用的一个方式,就能够去进行一个logo,然后就是最后一个,文件内容的一个渲染的一个logo,上节课的话我们有提到就是通过代码注入啊,这里的一个呃渲染logo的话。
主要的话就是理解它的一个这几个函数,首先的话这里的话啊我们先从明代码来看吧,就是嗯嗯这里有注释就获取到它的一个文件名,还有它的一个类型,以及临时文件的一个路径和文件名什么的,一些信息。
然后的话主要的话就是这三个函数呃,这三个函数imagistrate from jpg,这个函数的话就是啊把我们就说这里的话,它首先会对我们上传的一个文件做一个判断嘛。
他判断是不是一个j p e g的一个文件,如果是的话啊,是的话,他就会交给我们的这一个p h p函数,让它把我们文件里面的一个内容做一个好渲染,渲染之后的话,他会把里面的一个内容做一个就是好。
简单点来说的话,就是把里面的内容做一个改变,改变之后的话,如果说我们使用这样子的一个图片码,就是说正常的这种图片码的话,他会把我们里面的这种图片码的一个内容,做一个打乱就去除。
它会去除掉里面的过滤掉里面的一个图片啊,过滤掉里面的一个一句话木马,所以的话就是我们上面的使用的一个图片码的,一个方式去进行一个logo的话,它就会失效,然后的话就是呃分别啊下面的话还有两个函数。
就是分别是png,还有gf的这种图片类型,如果你上传的话,它就会而做这样子的一个渲染的一个啊测试,做这样的一个渲染,然后这里的话对于他的一个绕过的话,就是我们通过这种图像处理软件。
然后的话在不破坏它文件本身的,一个渲染情况下,找一个空白的一个区域,进行一个代码的一个填充,就一般的话是这种图片注释区,前提呢是要保证它文件的一个结构的,一个完整性,就对于这种啊渲染的一个测试的话。
它基本上是能够绕过的,就是说呃可能通过在这一句话不是很好理解,它的一个意思的话,就是嗯我们因为我们通过前面的一个原理的话,理解到就说我们上传的一个图片码的话,他要把里面的一个内容做一个打乱对吧,好的话。
我们需要找到这样的一个图片,里面的一个空白区,这个区域的话我们就是说他在做渲染的时候,它其实是不会对里面的一个内容做一个改变的,就是说需要这样子的一个区域,我们把这样的一个一句话码插入进去的话。
就能够成功的上传一个这样子的一个图片嘛。
vx可以可以的。
然后这里的话,但是的话呃就是说这里你去进行一个填充的话,你如果说你直接去使用一个wx的话,你没有找到他一个空白区的话,你是你直接去进行一个填充的话,它是会破坏它的一个文件的一个结构性的。
如果说你破坏了它的一个文件结构性的话,你就是在这里的获取到它的一个文件的,一些信息的时候,因为这里的话它是只允许这三种,就是说jpg电机,还有gf这种图片文件去进行一个上传的。
如果说它不符合这样子的一个图片,文件的一个类型的话,它是直接就不会让你去进行一个上传的,然后这里的话呃,我这里的话呃,已经有生成的几个,能够绕过的一个文件,就说是特特特就说特意生成的一个文件。
我们首先的话先用正常的一个方法,正常的方法进行一个测试,17吧,我这话先使用这里的一个图片嘛对吧,同学们,这里的一个图片码的话,它里面的话其实就是跟我们前面上传的一个,是一样的,这样的话我是好用的。
其他的你自己去建一个生成也是可以的,就他的一个代码的话。
就是这里对吧,好的话,我们再把这个文件上传,上传这个文件对吧。
上传上传之后的话,它是这样子的一个呃内容对吧。
然后我们把在复制把它再做一个保存。
把就是我们上传到啊服务器的这一个文件,把它给下载下来。
就到,下载下来的话就是这样子的一个文件对吧,然后的话我们通过这样子的一个,就是说这个编辑器把它打开,然后我们来对比一下这两个文件的一个内容啊,其实可以看到我们圆心,这里的话是有一个一一句话码的对吧。
然后实际上传到服务器的一个文件的话,它里面是已经没有了这样子的一个啊,菲律宾的一个代码,就是说我们可以通过这样的一个方式,来对它一个做一个判断,对它做一个判断,就是服务端。
它对我们上传的个这种图片文件做了一个渲染,他把我我们里面的一个内容做了一个打乱。
就说我们呃平常使用的这种图片码的话,它是不能够去进行一个绕过了,也就是说不能够去进行一个解析。
然后的话我们这里的话使用啊,我这里已经有的,这里的呃,比如说这个偏激的,这里的一个码,我们可以来看一下,里面的一个内容,它的一个内容的话其实就是这样,你这样子的一个内容,它我们可以看一下。
它是这样子的一个图片对吧。
那它里面的内容的话就是这样子的好,我们同样的把这个码做一个上传。
我们上传这样的一个码,上传上传之后的话,它是这样子的一个文件对吧,我们把它给下载下来。
下载下载之后的话就是这样的一个文件对吧,然后我们打开来与云星,我们上传的一个文件做一个对比,我们之前上传那个文件内容是这样子的对吧,我们可以看到在这里的话,有一个psp的一个一句话码,好的话,在这里。
这个的话就是我们上传到我们的一个服务器,上面的一个文件内容,然后可以看到与之前不同的一个地方的话,就是它上传到服务器的这样的一个文件的话,它同样是保留了我们的一个菲律宾的一个,一句话码的一个内容。
就是说我们可以通过这样子的一个文件来进行。
一个或得到服务器的一个web share。
然后这里的话嗯,这里的话就是还有一个点点的话,就是因为我们这里的话,只是能够去上传这样子的一个图片文件,好的话,就算你上传了这样的一个图片文件。
但是你在服务端,我们它是不能够去解析里面的一句话,码的一个内容的,然后的话我们需要结合其他的一个内。
其他的一个漏洞,就是这样的话就是一个文件包含的一个漏洞。
就在下节课会有讲到。
这里的一个文件包含的一个漏洞的话哦,这样的话他已经有提供了。
就说我们需要通过这样的一个文件包含漏洞,才能够得到,需要就是说才能够去解析里面的一个啊,这个图片文件里面的一个代码,这样的话我就给大家演示一下,具体的一个原理的话,我就先不说啊,这里的话给了一个代码。
其实代码的话也很好理解,主要的就是这里通过get方式获取我们这一个file,好参数等里面的一个字符串的一个内容对吧,然后的话再教给我们的这一个include,这个include的一个函数。
这个函数的话就是一个文件包含漏洞,经常会碰到的一个和函数,就是说通过这个函数来包含里面的一个文件啊,就包含我们这里用get方式发送的这一个字符串,然后的话它包含之后的话,他就会哦。
它会获取到我们这里的一个包含的一个文件,的一个内容,然后的话再输出来,我们这里首先来做一个测试,首先的话我们需要通过这个fire函数啊,不fire参数啊,搞错了,来传递我们的一个啊字符串。
这样的话我们想要去读取的一个文件内容,文件的话就我们就用这一个对吧,我们的这里的一个内容,啊或者说这个我还有点偏激吧,我们想要这里要想要读取它的一个文件,哪哪一个文件内容的话,我们可以通过一个就是路径。
这样的话是一个相对路径,就是说我们这,绝对路径以及相对路径大家要分清,就是我这样的话就提一下,就说我们当前所在的这样的一个文件对吧,它所在的一个目录是在这一个app roads,也就是这个目录下面对吧。
然后的话我们想要呃,就是说,绝对路径我们先来说绝对路径嘛,就这一个就是它存储在我们的一个磁盘上的,这样的一个路径,这个路径的话就是绝对路径,然后的话我们想要嗯,我们以这个文件为例子。
就说这一个文件它存储在我们的硬盘上的话,它的一个绝对路径就是这样子,然后的话呃加一个l u。j嗯,pg这个这个的话就是它的一个绝对路径对吧,我们可以直接这样子来去访问,然后的话相对路径的话。
就是我们通过这样子的app,后面接我们的一个就是这个l o l点,pg这样的一个内容好,我们回撤回车之后的话,可以干他这里的话啊,显示我们这里的一个内容,我们前面我们看一下它的一个文件的问题。
是这样子的对吧,然可以我们很熟悉的发现,他把我们里面的一个ph p代码做了一个解析,然后这里的话就是使用的一个相对路径,就是说这里的这个路径,它是相对于你当前的一个路径。
我们可以看到就你当前的这个文件的话,是这个嘛对吧,include。k hp,然后的话他当前目录下面有一个upload目录,ut upload目录对吧,然后后面接我们的一个文件名,然后这里文件包含的话。
他就会去查找,你单纯的就是它会包含你当前的这样的,这里给的一个路径的这样的一个文件,里面的一个内容,然后它包含用那个include函数包含之后的话,他会把里面的一个内容做一个ph啊。
当成一个p h p的一个啊文件做一个解析,也就是会解析里面的一个菲律宾的一个一句话,码的一个内容,我们可以来测试一下,pass等于嗯该去inf,我们执行一下,可以看到他这里。
我这里的话是接的一个图片文件,它同样的能够去进行一个解析对吧,然后的话呃,我们再结合前面的,我们这里上传的这样的一个图片对吧。
就是说我们通过绕过这样这里的一个渲染,测试的这样的一个上传的一句话码的一个图片,来进行一个测试,然后可以看到这里的话,它显示的就是呃那个图片文件里面多余的内容,我们来测试一下哦,这里的话这样的话。
因为里面的一个码的话是不一样的,是这一个,你是这个哦,是这一个文件,是这一个文件,上传的话是,骑牛杀四,点png,然后这里的话是这样子的一个码,这个码的话就是呃,其实就是啊跟我们正常那个码是一样的。
它的一个意思的话,就是通过post的方式来获取,我们传递给这个一参数的一个字符,然后的话这里的话就是一个get方法,来获取我们的一个零参数的一个值啊,其实它的一个意思的话。
就是我们可以来构造这样子的一个函数,好不好,构造这样子的一个一句话,马就我们可以来观察一下,就是,我们这里的这种正常的一个一句话嘛对吧,就说这样的话,前面的话它是一个hour,一个执行的一个函数。
后面的话接括号,然后这里的话是我们啊以什么样的方式来获取,我们啊来接受我们传递的一个参数,然后这里的话就我们可以通过呃,像我们的这一个零参数,呃它是以get方式来进行一个传递的,像一个零参数。
我们构造一个呃aa函数,然后的话他在以post的方式,我们在以post的方式来向他传传,我们想要它执行了一个命令啊,就是一等于ph p for,好我们执行,好这里的话搞错了,零等于,cover。
刚刚的话是呃不是这一个文件,我们,诶好,平民four,没有直接,没写错,诶嘿,有个问题,737634是这个合适的,这里不应该呀,嗯稍等一下。
那也等于,嗯可以的呀,这哪里出了问题呢,一定不喊我看一下,可能我哪里搞错了,没出一,能等于power,嘿,这就奇怪了啦,这个马的话是没有问题的,我之前是也是都是可以连的呀。
我忘了是可能我这里零的时候有问题,这个码的话是没有问题的,而且它的一个内容的话其实解析了,当然他这里的话有报了一个错,你copath路径,呃这个的话我课后我再看一下吧,啊其实这个码的话是没有问题的。
我测试可以看到在这里的话,我这里写的这样的一个ph码的话对吧,是可以这样子去进行一个,直接去进行一个连接的解析的对吧,它的一个意思的话,就是这里我们传递这样子的一个,可执行的一个参数。
然后它其实就会呃把它放到这里来,它会放到这里来,然后构造一个像这样子的一个a s s压t对吧,然后这里的话我们可以看到,就跟我们前面的一个一句话码的话是类似的。
而我们只需要在这里就传递,我们这里执行的一个命令就ok了,这个马的话是没有问题的。
然后这里的话呃呃时间关系。
这个我呃我下课之后的话,我再看一下吧,我咨询室的话是没有问题的,好吧,然后的话今天的课程的话大概就到这里了。
今天的话讲的比较多,因为它的一个内容的话比较多啊,我讲了十多个,这个内容的话有点多,然后大家应该都能够听懂吧,呃,大家都能够听懂吧,再去弄一次对啊,我建议大家大建议大家的话再去弄一次啊,对啊。
我看大家这里的话呃,我这里有的这个这些啊,同学的话他给的呃不是很全的,就说大家在呃这节课课后的话。
再去自己再去尝试一下好吧,就是因为你可能你看我操作的话,还感觉感觉很简单对吧,然后你看着看着就懂了,但是你实际你在在你自己去进行一个操作的时,候,你看别人操作的时候其实很容易忘对,确实有点多。
其实呃就我之前也不是很不是太想讲,全都讲了,因为其实有些的话其实是比较,就是一些报过的一些知识嘛,其实我们上节课也讲了,然后主要的就是代码,这些代码的话呃,它的一个意思就理解它的一个意思。
他是怎么去进行一个绕过滤的对吧,然后我们针对这种过滤,我们通过啊观观察他的一个请求包,就是我们发送这样的一个上传文件的一个数据,然后观察他的一个响应对吧,观察了一个响应,它对我们的一个网上传的一个文件。
做了什么样子的一个过滤,好的话我们在猜测就是推测他做了哪些过滤,我们在针对这些过滤,来进行一个上传的一个绕过,然后就是测试的话,就是我们上节课讲的那些知识吧,其实这个啊大家用熟了的话就会就会很简单了。
就是你直接上手,就直接用那些知识去进行一个测试,然后再做一个判断嘛对吧,啊wtx这种工具的一个使用的话,大家百度1下吧,好吧,就是这种工具的一个使用的话,呃我相信大家就是呃百度1下。
然后自己玩一下应该就会了,然后其实其实我看了一下大家的一个评论,我觉得这位同学说的很对啊,啊应该就就是就是你吧,就是其实外表的话其实简单其实也简单吧,就是呃一些工具的一个使用,你熟悉的话。
就其实工具的话使用的话是很简单的,然后主要的话你是就是我们要教给大家的,让大家明白的,其实也是就是这些漏洞,它的一个原理,好的,我们怎么去,寻找这样子的一个漏洞,在什么地方寻找漏洞。
我们怎么去进行一个测试对吧,这些是要大家还有就是这些啊测试的一些知识,这些才是大家要去学习的。
去啊去搞明白的一些东西对吧,然后今天的话哇讲的有点久啊,就希望大家呃课后再去做一下吧,然后呃其他的闲话也不多说了,大家有问题的话私聊我吧,好吧呃但是啊我建议大家还是早点休息啊。
真的我建议大家还是早点休息吧,昨天晚上有位同学,有位同学,有位老哥晚上一点多钟问我问题,正好还被我看到了,我这我这你们这么晚还搞学习,我这想不回答问题都难啊,然后说着说着就一两点钟了。
就我建议大家还是你啊学习啊永无止境,但是还是晚上该休息还是要休息是吧,好问问题,欢迎大家来问,然后尽量还是呃白天吧好吧。
然后其他的也不多说了吧。
呃最后的话就是呃下周的话还有一节课,就是一个文件上传的一个实战考核,然后考核的话考核的一个内容的话,就是这里我在啊那一个靶机上面的话,又搭建了几个环境,就是一些cm。
啊然后的话包括之前的之前一个circl注入啊,对一个靶场的话,就是大家通过sql注入,得到了他的一个账号密码对吧,登录到后台之后,他其实是啊存在一些文件上传的一些功能顶的,然后的话这个cm s的话。
它其实就存在一个文件上传的一个漏洞的,而这里的几个考核都是呃,存在这样的相关的一些漏洞的,有些的话在网上也能找到,就我啊要求啊,就大家的话,花点时间去做一下,就实际的去做一下。
然后的话在下周一的话有一节课的话,就是针对大家的一个就做这些,实际去做这些这些测试的时候碰到的一些问题,给大家做一个讲解好吧,然后的话到时有问题的话,在课堂上面我们在一起讨论。
然后呃这节课的话内容的话就到这里结束了,然后嗯其他的哦,其他的话也不多说了吧,我们就今天的快乐的话就到这里结束,我们下课下课,大家早点休息啊。
P19:第17天:文件上传漏洞挖掘思路 - 网络安全就业推荐 - BV1Zu411s79i
然后的话我应该都,同学们应该都过来了吧,好,那么我们的话就正式开始我们今天的课程内容,然后首先的话对这节课的话,是对我们上周的一个课程的一个考核,然后的话呃我在课前的话,在群里发了这样的几个文件。
首先第一个的话就是呃一个夫子的,夫子的一个字典里面的话呃,里面的话是包括了一些呃,我这边收集的一些字典,里面的话有这样的三个字点,其实大家大家去github上面去搜的话,有很多的这种这种字典。
然后这里的话我就只下了这三个,大家可以去看一下,去研究一下这个怎么用,就是你再去做一些爆破的时候。
你就会需要用到这样的一些字典,比如说你看circle circle的这种语句对吧,这种语句如果说你不知道你怎么去测对吧。
你可以直接用bp的那个模块,去把这把我们的这样的一个字典。
一个一个的去跑,好的还有就是呃有文件上传的一个字典,这个的话就是呃就是我上周和周六,周六的时候发给大家的那个那篇文章,那篇文章的话,我建议大家去看一下,就是他啊几乎介绍全了。
就是我们在课堂上面讲的一个文件。
上传的一些点,好的话,他根据这些点,然后他自己啊用python写的这样子的一个啊,文件上传漏洞的一个,夫子的一个字典的一个生成脚本。
就这一个。
就这篇文章这篇文章大家可以看一下,如果代码看不懂的话,没关系,你就看他的列的这样的一些,就是说在文件上传当中,存在着这样子的一些漏洞,我们怎么去利用,比如说这种大小写混合的这种绕过方法。
它结合这样子的各个的呃,文件上传的一些漏洞的一个绕过方法,然后冰雪相对应的一个字典。
然后的话呃。
这一个的话就是他分享在那个github上面的,一个项目,大家可以去使用一下。
使用的话也是十分简单的啊,他这里的话已经有现成的。
它生成了这样的一些字典,可以看到。
这个的话是可以常见的一个菲律宾,你常见的这种p h p,就我们可以看到有像这种00%的对吧,然后还有的话就是这种大小写的,还有呃h t m的这种后缀的,kh p5 这种后缀的,它都把它就是做了一个结合。
然后的话大家再去使用的时候,只就呃你一个一个试,就是比较麻烦嘛,你手工去测的话,你可以使用这种字典就去跑它的一个后缀,如果跑出来的话,你从通过通过他的一个响应内容的话。
能够知道你的就说这样的一个logo方法是啊,什么样的,好然后第二个的话是这个upload这个images,这个的话就是我上节课的呃,就是绕过那个渲染的几个嗯,payload就几张图片。
就是啊已经生成了几个图片,我们可以直接使用这样子的一个,利用的一个图片,来去达到绕过我们文件上传渲染的一个目的。
然后这里面的话呃,其实看一下它里面的话,就是已经写好了这样子的一个一句话,就是这里这个的话是我根据呃一个项目,就是别人的一个项目改的,这个项目是哪一个,我在github上面根据别人的一个项目改的。
但是他那个他在里面写的这样的一个,一句话的话,我试了之后,他是就是绕不过那个渲染的,它里面的这个里面的这个代码,它会被也会被打乱,就是后面的这一节会没有,所以的话他是会失败的。
然后的话我就根据他那个做了一个,根据他那个改了。
重新改了一个这样的一个一句话,这个是一个g i f后缀的,还有的话就是一个偏激,偏激的话,就是昨天的一个呃,呃不是是上周的一个留的一个坑哦。
就是我上周不是啊。
因为那个时间比较紧,我就没去西没去仔细的去那个了,所以的话其实上次那个的话,其实是已经绕过了的,然后我没出新啊。
我们可以来看一下嗯,我这句话上传这里的线程的一个文件。
然后的话我们看一下它的一个文件名。
是这个26700。
就这一个文件,然后的话我们打开之后的话,可以看到它是这样子的一个一句话对吧。
是没有问题的,然后我昨天哦不,我上次上周的一个问题是出在哪呢。
是好没有没有认真了没有认真去检查啊,十哦对了,还有就是呃上周课后的话。
有人问我说,就是你上传的这样子的一个图片码,怎么去进行一个利用,因为这里的话他那个代码是写的,就是说啊无法去就我们无法通过logo。
然后的话在服务器上面生成一个p,h p的一个后缀的一个web shell,就像这种,就这里的话我还需要啊,我需要再强调一下,就是说从那位同学他的一个提问的话来看的话,呃,我就是发现大家可能不是很理解。
还是没有太理解这样的一个啊web share,然后呢然后的话我们去怎么去进行一个连接,就是说我们的一个web share,首先我们回顾一下之前的一个内容,就是说它是一个啊菲律宾。
或者是说sp j s p的这样的一个,可以动态执行成一个啊脚本对吧,所以的话你要你你要是一个脚本的话,它的一个后缀我们直接看的话,就是它是一个这样子的一个后缀,是一个点菲律宾的一个文件对吧。
这个的话这样子的话才是一个web share,然后的话如果说像这样子啊,比如说我这里的这里的一个png的一个图片,然后的话里面是一个啊一句话码的一个内容,这个的话叫做图片码。
就是说它是一个它其实我们从后缀的话,而且服务端去进行一个判断的话,如果他没有对内容做一个判断的话,它是会把它当成一个图片的,好大家好,如果是图片的话,服务器他是不会去解析我们的这样的。
这个图片的一个里面的一个菲律宾代码,所以的话你直接去进行一个连接,连接这样子的一个文件的话,它是无法去啊得到需要的,所以说啊我们前面也说了,就是说我们需要绕过服务端的这种检测。
然后的话绕过的方法的话就是啊上节课啊,上节课讲的那些内容,用一些特性以及一些啊特殊的一个字符,然后绕过的话,就是说我们需要在,我们要能够直接得到服务端的一个shell的话。
就需要生成这样子这样子的一个web share对吧,也就是一个点菲律宾后缀的一个菲律宾文件,你才能够去直接的一个连接,如果说就像这里的。
然后的话第二种的话就是说像我们这里的话,它是呃我们无法去绕过。
然后的话在里面生成一个p h p的,一个呃后缀的一个文件的,所以说的话我们只能是啊。
需要去利用其他的一些漏洞,这里的话有一个文件包含的一个漏洞。
文件包含漏洞的话,在明天啊会给大家就是介绍。
然后然后的话我们需要利用这一个这样的一个,文件,包含漏洞,来去,包含,我们的一个包含有一句话码的,这样的一个图片文件,因为文件包含漏洞的话,它的它它的一个作用,就是我们可以包含这样子的。
还有一句话码的一个图片文件,然后的话来执行这个图片码里面的一句话嘛,也就是执行这这个图片文件里面的一个,菲律宾的一个代码,然后上周的一个问题的话就是呃时间关系,就因为时间关系的话。
我就嗯没有仔细的去检查了,就是上周的一个原因的话,是我在这里我去传一个参重仓的时候,是使用的一个问号对吧,这里还有g5 就使用的一个问号诶,不是这个,是哪个文件,是不是,262700这一个图片吗。
2670有编剧,也就是在这一个文件,然后的话我上周的话是呃打的一个问号,问号问号我们就是在第一节课的时候就有讲过,就是说我们一个html的话,它是就是说前面就是问号。
后面的话是接了一些接的我们的一些参数对吧,好的话,我们这里的话需要再另外传递一个参数的话。
因为前面的话嗯。
诶前面是,因为前面是已经有传了一个fire参数对吧,好的话,我们后面是要需要用and的符号,来去连接两个参数的,然后上周的一个问题的话,就是我在这里的话是呃用问号啊,问号的话是不对的,所以的话它解析它。
因为我这里的话就不是一个url了,它就无法访问到那个资源,对我这里的话是要用这一个and符号,来去连接两个参数啊,我要零,我要传递的一个参数,那就是零给他传递一个值的话,就是我们和ph的一个执行函数。
asset,然后的话呃我要传递的一个啊,用post的方式传递的一个参的话,就ph p m for。
那我们执行,然后可以看到这里的话是能够正常执行的。
对吧。
然后使用呃,连接工具也是可以正常的去进行一个连接的,连接工具的话,因为它这里的话是一个文件包含的一个形式,然后然后这里的话我们需要a,同样的复制这样子的一个优啊。
这这里的话才是他王者的他完整的一个url,然后我们复制到这里,然后的话我们需要传递的一个密码,也就是我们要pos的这样的一个参数的话,就是这个一,然后我们脚本类型的话是菲律宾添加,添加之后的话。
访问可以看到的话是能够正常的去连接的,就说他这里的话啊,文它不像我们之前是直接这样子的,一个菲律宾的一个呃web share,这里的话是使用的一个文件包含的一个漏洞,来去包含我们的一个图片码。
然后的话再来啊。
执行我们的一个图片码里面的一个代码来get share,这里的话应该没有没有问题吧,大家有没有问题,啊这里的话是给上周的啊,填了一个坑了,应该没有问题啊,好没有问题的话,那么那么我们继续。
然后的话呃之前呢之前的话说到了,就是,那几个图片文件就是啊能够直接去绕过嗯,在哪直接去绕过,这样的一个渲染的这几个图片文件,大家可以去尝试一下,然后的话大家就是应该有去尝试吧。
就是你用正常的一个图片吧,然后上传上传之后的话,它里面的一个代码它其实就已经被打乱了。
啊然后的话嗯,然后的话呃我还发了这样子的两个链接,这个链接的话就是呃我这里写的这个好,我们上周的一个文件,上传题目的详细的一个解题报告,祝大家哦给大家做一个对照,就是啊。
因为我这边的话只暂时收到了一位同学的。
一个这样的一个解题报告,然后我看了一下,他的话是啊,我觉得是写的挺好的,就是啊该有的点都有,而且都做对了,差不多,这个的话是有一个这个,然后第一个bbc m。
这个的话应该,大家其实应该就是在讲sql注入的时候。
已经有讲过了对吧,但是这一个sm的话,它同样的是有文件上传的一个漏洞,好,这样的话,我们呃就开始我们的一个上节课的一个课程,考核的一个讲解。
首先的话呃,首先的话第一个bb c m s,这个这个的话大家有没有什么问题呢,就是啊大家在做的时候有没有什么问题,第二个点不动啊,我们先来先来讨论一下第一个吧,第二个的话,等讲完这个再再那个吧。
这这一个的话大家有没有什么问题呢,呃有问题的话在讨论区扣个一吧,大家都没有什么问题吗,大家有有问题就直接提吧,不要也不要觉得就是不好意思什么的啊,反正这里的话应该是都这么多天了,大家都应该熟了呀对吧。
有什么问题直接提吗,我没有问题的话,那么呃那我直接讲吧好吧,这句话就是一个这样的一个cm s,然后呃之前的话应该是讲设备注入的时候,应该给给你们讲过了对吧,就这样子的一个,这样子的一个登录界面对吧。
啊这种管理登录界面的话,就是我们可能刚开始,就是说我们,比如说我们找到这样子的一个站对吧,我们找到这样子的一个站,这样子的一个站,我们想要找到他一个后台地址是吧,就给大家一些思路。
就一般的话一些后台地址,他都有一些这样子的一些关键词,就比如说像这种要命对吧,就是你的一个管理用户的一个啊给一个目录,再有一个管理目录,然后下面的话就是一些啊登录的一个页面对吧。
你只需要只只需要输入一个add命,或者说直接就是add命点骗去p,还有的话像这种logo啊,还有admin logan等等的这种,然后的话可能的话就就常见的嘛,就是直接直接尝试一下就可以得到。
但是不常见的话,大家就可以用一些就是一个目录的一个扫描器,直接去扫它的一个目录,然后扫墓的话就也能够去发现它的一个,管理后台,这样的话大家常用的一些扫目录的一些工具,大家一般用的是什么,之前的话有奖吗。
遇见还有还有吗,呃di search的啊,我觉得这个di search还是挺好用的,就主要的话速度也比较快,而且字典的话还是比较大的,区间的话区间的话呃,你用自己的一个字典的话也也是可以的。
而且速度也挺快。
啊我这里的话我也用,就是,当然也还有其他的一些工具,我这样的话就用这一个电压色体,去进行一个测试吧,因为啊之后的话后面也有几个题目是没有给,应该没有给吧,没有给这种登录界面吧。
大家可能的话用手去尝试的话,不一定能尝试得出来对吧,所以的话我们就使用工具嘛,工具的话大家去找一下,而且现在的一些工具的话都是比较强大的。
而且就是别人都已经分享出来了。
好的话,我们只需要扫一下它的一个目录对吧,就能够找得到它的管理后台。
可以看到,还有一些其他的一些页面,说不定的话就能够找到一些漏洞的一些页面,对吧,就总比我们我们这样子去手点点,这样的一些功能点的话,可能要直接方便一些好这样的话我就不多说,主要的话就是介绍和一种思路。
好的话,我们到了这样子的一个登登录后台的话对吧,登录后台的话,大家啊上节课而言讲的是蛇口注入嘛对吧,搜狗注入的话,直接去进行一个注入,然后的话我们直接测试一下,对吧,最常见的就是一个单引号对吧。
然后的话我们看到可以看到有这里,这里有个报错,而且这里报错的话有显示这样的一些字段名,以及啊我们的一个表明等等,那些信息都有已经显示出了,我们能够可以直接做一个判断,它是有一个sl注入的。
然后sql注入的话哦这样的话我就不讲了吧,因为上节课的话已经讲过了,主要的话是呃,我们通过这样子的一个sql注入对吧,然后的话通过爆破获取到它的一个呃,admin的一个账号密码啊。
获取到的话应该是这样子的,一串md 5加密的一个值,然后的话我们可以通过呃cm d5 ,通过cmd 5区域进行一个解密,还有的话像还有其他的一些,md d5 的一些解密工具,因为有samd的话。
它的一个呃就是它的一个库的话是很大的,就很多的一些md 5都能解密出来,但是有些话他可能是要可能是要要收费的,这样的话能够直接解出来,它的面积是三,然后的话你也可以去尝试一下。
其他的一些md 5的一些解密的一个工具,嗯我发群里,这些网站的话大家可以去找一下,有挺多的,国外的也有一些,当然的话啊,一般的话这个cmd 5都能够解得出来,好的话。
我们解密出来的话就是这样子的一个admin的面,一三的一个啊,账号密码对吧,那么我们直接登录登录到后台,d614 ,这样的话就已经到了后台,然后的话我们咳咳,因为我们这里的话已经是一个admin的一个。
管理用户对吧,就说这个网站的一个web web的一个应用的话,我们是已经拿下来了对吧,他所有的一些功能我们都能够去进行一个访问,以及做一个修改,然后的话我们下一步的话。
我们就需要去寻找那种寻找啊一些漏洞,这些漏洞是我们需要去利用它,来得到我们的这样的一个网站,这个web网站,它的一个服务器的一个权限,然后这边的话我们就呃,使用我们上节课学到的一个文件上传。
然后文件上传的话,大家回想一下,就是说我们怎么去查找它的一些漏洞,就说这种漏洞它存在的一些点,它是一般都会在哪里对吧,一般的话我们上节课也讲到,一般的话就是在我们的一种图片的一个,上传对吧。
还有像这种word文档的一些上传等等的一些功能,点,是啊很容易存在这样子的一个漏洞的,然后的话这里我直接点开一个就能够发现是吧,这里就有上传图片的这样子的一些功能呃。
这里的话应该是你们今天你们今天做的吧,这么多p h p,然后这里的话,这里的话就是一个上传图片的一个点对吧,然后我们的话,就是利用我们啊上节课学到的呃,文件上传的一些知识点去对它做一个测试。
我们首先的话先上传一个,这句话先直接尝试上传一个sp,然后上传的话,它显示就是上传图片格式是不正确的,那这样的话嗯,打开app,我们先来啊上传一张图片来测试,来看一下他上传的一些请求包。
以及响应包的一些内容来去啊,对这样的一个呃功能点去做一个测试,我们上传上传之后的话,可以看到已经上传成功了,他这个格式的话是png对吧,好的话,我们在bp里面看一下它的一个请求包,请求包的话就是。
请求包的话可以看到我们啊是这个这个请求包,这就是我们刚刚的一个上传图片的一个,请求包对吧,这里的话就是我们的一个图片的一个呃,上传文件的一个内容,以及我们的一个后缀对吧,然后这里的话就使用我们上节课。
说,讲到的一些知识对吧,比如说我直接上传一个啊,直接进行一个p h p好的话,我们查看它的一个响应,响应的话,响应的话我们可以看到就是我们这里的话,直接就是上传了这样子的一个p h p对吧。
然后可以看到他在他的一个响应里面的话,我们可以看到图片的一个格式,已经变成了一个菲律宾,然后的话这里的一个我们上传之后的一个路径,就是这个,然后可以可以看到我,我这里的话就随意的测试了一下。
就发现这边的话已经上传成功了,那那他为什么上传成功了呢,这个的话就是它的一个呃,上传成功之后的一个路径,那么我们从这里的一个啊,我们发送的一个请求以及响应包的话,能够基本的判断他只是啊对我们的这里对吧。
因为我们刚刚的话上传了一个,就直接上传了一个p h p的一个文件对吧,它是不允许我们的一个上传的,然后这里的话我跟之前的一个区别,就在于这里的一个content type的一个字段。
是一个图片的一个类型对吧,我们就可以判断它是指对我们的一个content type的,一个类型做了一个判断过滤,所以的话我们在直接通过bp进行一个抓包,以及发包的话就直接上传成功了。
这里的话就是我们的一个shell,的,然后的话呃它的一个路径的话,大家要注意,就是它的一个路径的话是在这个upload image对吧,然后的话我们看这里就是说这里的话是他的啊。
那个图片的一个这个应该是一个缩略图,它的一个路径,我们从这里的话,能够知道它是在这个bb c m这个目录下面对吧,我们复制一下bbc m下面有一个upload,这样子的一个目录,好,我们可以这里写错了。
app可以看到这里的话已经解析了对吧,然后啊做一个执行命令的一个测试,然后的话可以看到我们这的话是已经成功的,得到了他的一个shell,然后的话呃下一步的话,我们用这种需要管理工具去进行一个临界。
然还有其他的一些操作,然后呃这样的话我就不做演示了,然后这里的话呃关于这一个的话,大家有没有什么疑问,我这里讲了之后的话,工具,这个工具吗,这个工具的话就是对他就是把我们的一些目录。
就说这一个网站它的一些目录,因为它里面也是有字典的,通过它的一个字典,把这些目录以及它的一些常见的一些文件,把它给枚举出来,就说就等于就是说我们直接去进行一个,哎正常的一个访问对吧。
如果说我们我们正常去访问它,这个页面存在的话,它就会返回这样子的,比如说一个200的一个状态值对吧。
或者说这种302跳转的一个状态值,就说就说明我们的这里的好这个页面,它是能够去访问到的,也就是说它是存在这样子的一个页面的对吧,还有的话像这种可以看到它这里不是也有啊,403这种的话它是使用的呃。
尝试使用这样子的一个文件去进行一个访问,对吧,就说明他返回了一个403的一个状态值的话。
就说明它是不存在这样子的一个文件的,然后大家对这一个题目的话有没有什么疑问呢,没有对吧啊,大家应该都做出来了对吧。
因为这里的话就是比较简单的。
然后图片的话可以看到就是这样子的一个,这个的话是它的一个缩略图啊,应该是我们组我们其实,确定我们其实就是选择这个图片的话,它的一个路径其实是这样子的一个路径,就其实是我们的一个ph p的一个文件。
然后之前的就是这个,你说下载之后打不开对吧,是,我这里的话下载一下好吧,去听了,诶,是上面,哦这里的话,因为这里的话因为你这一个菲律宾的一个文件,它是解析了的,就是说它里面的一个代码是已经解析了。
然后我这里的话下载的话,只是这里的这一个页面。
这个页面的话,其实就是你查看源代码的这样的一个页面。
没有吧,然后的话你你这你这样子去下载的话,是下载不下来的一个ph p文件的话,因为它会对我们的这样的一个页面做一个解析,而且而且你可以看到就是说那种菲律宾页面,你去查看它的一个源码的话,你是查看不到的。
因为因为在这个页面,它是把我们的一个菲律宾代码解析之后,返回的一个结果,才呈现给我们的这里的一个页面,所以说你是不能够直接下载到它的一个。
菲律宾的一个源代码的,然后图片文件的话,你这像这种图片文件的话。
你是肯定可以直接直接下载的,然后下载的话,你这样的话,不能够读。
不能够读的话,这个呃你换一个其他的一个,你不用vscode打开,你用一个像这种sublime才有呃,像这种呃,notepad这种可以直接打开这种二进制文件的这种,编辑器你试一下,不然啊。
然后的话也有可能是,你这里下载的话是有问题的,这里没有下载,下载对,好的话还有疑问吗,应该没有问题了吧,好没有问题的话,那么我们继续啊,第二个,这句话啊,我这句话其实写的很详细了,还有图片。
然后第二个的话哦哦对了,还有就是这个的话其实还有其他的一些哦,还有其他的好几处文件上传的一些点,它都是一样的,就其实呃其实它都是在这样的一个页面,其他都是呃在呃他的这样的一个图片,上传那个这个功能。
然后的话上传之后的话,他这个图片的话它会在这里嘛对吧,然后其他的一些功能点也是一样的一个意思,然后第二个的话就是这个fc马。
这句话直接打开的话,就是这样子的一个页面对吧,同样的是一个登录页面啊,拿到多少可以坐一起烧烤猪,做一些sql注入了一个尝试对吧,在这里的话,你测试之后的话,其实呃。
没有这样子的一个cil注入的一个漏洞啊。
这样的话哦你尝试之后的话,其实他没有这样子的一个吃口注入漏洞,好的话,像我们碰到这样子的一种登录框的话,我们有什么样的一些思路呢对吧,第一个的话就是我们呃之前学过的这种,登录框的一个注入对吧。
我们用常用的一些pao的去进行一个测试对吧,如果有报错什么的,我们能够做一个基本的一个判断,然后第二种的话就是我们可以发现这里的话,他是没有这种什么图片的一个验证码的,还有没有其他的一些验证的一些条件。
它只是只有一个这个用户名以及密码,这样子的一个登录的一个页面,所以说这里的话我们可以,我们可以去尝试进行一个爆破,就是说通过啊我们的这样的一个bp的。
这里的一个爆破模块,来对我们的这样的一个用户名及密码,做一个爆破,然后爆破的话就需要使用到这个bp的这个,instrua的一个模块。
然后这个模块的话大家看一下这篇文章吧,就这篇文章的话,他写的很详细了,然后这里的话主要的话就是我们怎么去进行,一个使用,我以这一个例子做一个啊,我以这一个好页面做一个演示,啊前面有有讲到这一个吗。
good pad可以是吧,对就是一个用户名的一个枚举,用户名密码的一个枚举,就是用这个爆破,啊啊这里的话就是说这个bp的一个模块的话。
大家之前有有使用过吗。
大家之前有使用过吗,这个模块,这个暴风模块,使用过的在讨论区扣个一吧,没没使用过的,没使用过的,在讨论区扣个二,都使用过的吧,就他之前有讲过是吧,有使用过的话,那那就好,那那这里的话我还需要呃讲一下吗。
要。
就是说这里的啊进行一个爆破,我还需要去讲一下吗,呃没人回吗,没人回,需要讲一下是吧。
那我这里的话呃介绍一下吧,然后这个模块怎么去使用的话呃,首先我这里的话,我先随便输了一个账号密码对吧,那这样的话我们主要的话是,看他的这样的一个诶,看他的这样的一个请求包。
这个的话就是他登录的一个请求包对吧,然后的话我们,可以看到,就我这里只好把它放到这个从发包的一个模块,我直接发发送这样子的一个包,可以看到的话,他这里的话又给了一个响应对吧,我们主要看这里还有个响应体。
全体的话我们看这里的一个内容,它是一个呃就是说报错对吧,hero就是错误,就是我们的一个用户名密码的话是错误的,可以看到这里有这样子的一个提示,然后的话,我们把它放到一个我们的这一个intro这个模块。
然后的话呃我们需要对啊,这一个admin,我们的一个用户名以及密码做一个爆破对吧,然后这里的话嗯主要的话就是这几个啊,攻击类型的这四个的一个使用,这样的话大家看那篇文章吧,我这样的话大概说一下。
第一个的话它就是一个呃,就比如说我这里标记两个呃,标记两个爆破的一个点对吧,标记之后的话,他我这里的话需要加一个pad,他这样的话是只有一个po的对吧,我这边的话随便加一个hero的。
然后的话我进行一个,开始进行一个爆破,然后它爆破的话,我们其实可以看它的一个啊内容,能够知道它其实是呃首先对我们的第一个点,可以看到,因为我这里的话默认的话它是一个admi in对吧,就初始的一个指示。
也就是第一个和第二个的话,就是他把我们的一个user设置为了,我们这里的一个payload的,这里的第一个值对吧,然后然后的话第二个的这个pass的话,它是没有变的,然后的话就是说我们第二个第三个。
第四个它都是一样的,就是我们只是对我们这里的定义的这一个,第一个位置的一个值,使用了这一个payload,然后的话这里的一个password,是我们啊初始的这个值,进行了一个这样子的一个枚举。
然后的话第一个参数枚举完之后的话,它就会在我们的第二个位置,啊他这里还没没举完啊,啊这里的一个字典的话比较大,然后第一个参数的就是把这里我们的这个po的,也就是这一个字典里面。
所有的值都给编辑完之后的话,它才会编辑这样的第二个字段,第二个自动的字的话,它同样是使用的同一个payload,这就是这一个第一个模块,这个的话也就叫狙击手模块,然后这样的话啊我时间关系的话。
我只遍历这一个值啊,因为我已经知道他是一个用户名的话是命,我这样的话只爆破这一个这一个值,也就是我们的一个密码,然后的话这里啊选择一个po的好pao的话,我使用的是啊,我发给大家的这个。
这个夫子的字典里面的。
这个这个爆破的一个就是week password,一个password的话就是呃弱密码嘛,这个支点的话有7000多个,我这样的话我就只做演示,只做演示的话,我就只取前200个。
然后其实那个就是我就是那个因为是只做演示,就其实那个真实的一个密码,其实是已经在我的这一个字典里面了,这样的话把它粘贴进去,这句话只只有200个,200个值,可以看到200个配乐的。
然后我这里呃进行一个包括,爆破的话我们如何去进行一个内容的一个查看,这样的话我们需要去啊,就是我们如何去查看我们爆破出来的一个内容,它是不是正确的,我们查看这里的一个length。
这个length的话就是我们的这一个,请求它的一个响应,咳咳请求它的一个响应的一个长度,也就是我们的一个响应包的一个长度,好的话,这里的话他有我们可以在这里做做一个排序好,我们首先看一下这个。
就这一个447的这个请求,它的一个响应,可以看到他这里的话,它的一个内容的话是这个对吧,就是说呃用户名密码它是错误的,也就是说没有爆破成功,下面的话这些话都是一样的,就说像这种都是447长度的话。
它在这里的一个内容其实都是一样的,好的我们再好看一下其他的一个长度的,你看到这里的话也是一个错误,然后这里的话我们看一下这个451,45451的话,可以看到这里。
它的一个内容的话是一个login success,也就是登录成功了,登录成功,那么那么就可以说明我们的这里的一个啊payload,也就是我们的这里的一个请求的一个,用户名以及密码,它是正确的。
然后的话呃,因为这里的话是,因为呃它的一个环境的一个问题,就是说我们这里,呃我们这里登录成功了,登录成功了之后的话,他后面的所有的这种请求,所有的这种请求他都会显示登录成功。
然后这里的话其实它也有这样子的一个漏洞,就是说我们爆破如果爆破成功了之后的话。
我们在这里啊,服务端它会啊。
我们前面的话有就是有解释过cookie这种东西对吧,它会记录我们的一个登录状态。
是这样的话,我们通过bp爆破爆破之后的话,好正确的一个用户名密码,他在服务端做了一个验证,验证成功之后的话,它会生成一个cookie,甚至枯萎的话,我们可以。
生成cookie之后,它就会保存我们的这样子的一个登录状态,然后的话我们后面的一个请求,它都是都是,就是说我们后面的这种登录的一个请求的话。
它都是会返回这样子的一个登录成功,哦不是这个这里我们可以在这里刷新一下。
刷新之后的话,其实可以看到我没有输入密码对吧,它同样的能够进行一个登录,而且登录成功了啊。
我们的一个账号密码的话,就是这个admin 888,我们可以也可以啊,直接去进行一个登录的一个测试也是可以的,好这里,我的命没命好吧,然后这里的话和这里的话是一个cm,s的一个漏洞,就这个cm的话。
其实大家百度1下都能也能够找到它的一个,漏洞的一个点,好我们我这样的话就呃先就说一下思路吧,就我们碰到这个点了对吧,然后我们通过爆破,通过爆破我们的一个登登录,然后登录成功的登录到了它的一个后台。
而且是一个管理后台,登录到后台之后的话,我们同样的就是查看它的一些功能点对吧,然后的话我们的一个目的就是要gushell,也就是得到我们服务器的一个权限,那么要跟写好的话,我们啊就想到好文件上传。
还有其他的一些,就是说能够直接得到服务器需要的,这样的一些方法,然后的话我们可能就看到这样子的一个界面,我们也不知道如何如何去入手对吧,我们没有什么思路,那么我们其实可以看一下。
就大概看一下它的一些信息,一些给我提供给我们的一些信息,其实在这里的话我们就能够看到它的一个版本,歪曲的话是二点点六对吧,那么我们直接百度1下吧,对吧,你直接百度1下的话,他就有这样子的一些文章对吧。
就说这个版本的一个漏洞,然后的话我们再查看,查看它的这样的一些信息嘛对吧,然后呢我们可以直接去进行一个,就是在我们的这样的一个cm上面,去进行一个利用对吧。
如果说是能正好是能够去进行一个get shell,的一些漏洞的话,那就更好了,然后这里的话哦,是那个,200,牛,然后的话可以看到的话,我们去进行一个紧锁,紧锁它的一个漏洞。
就是说这个版本的一些漏洞信息对吧,我们其实有一些现成的这种啊,漏洞利用的一些啊思路,一些脚本什么的,你可以直接去进行一个使用的对吧,然后这里的话呃,这里的话其实就是在一个cm s的一个漏洞。
它的一个漏洞顶的话在嗯看一下这个,多种点的话是在这里,在这个csm,在这个themes的这个default,然后的话这里有一个fs,这里的一个fire的话,我们可以看到它。
这里的话有显示这样的一些文件对吧,形成这样的一些文件,我们呃就是正常的就是正常的去访问一下,然后这句话,观察我们的这样的bp的一些请求包,诶,其实我们的一些这样的,如果我们手工去测试这样的一些漏洞的话。
主要的话去查看他的一些请求包,里面的一些参数什么的,还有的话他的一些请求哦,ul等等的一些,它里面的话包含着一些信息,然后的话,我们主要的话就是去发现这样的一些信息,然后去进行一个利用。
这样的话我们先啊访问一下这一个,然后的话嗯,看这里,啊是这个请求吗,对,我们首先我们刚刚的话是访问了那样的一个index,等菲律宾的一个文件,这样的话应该是呃它的一个就是说这个sims。
这个呃主题的一个文件,那我们反问之后的话,我们发现有这样子的一个请求包对吧,请求包的话我们看看到的话它是get请求,主要的是看这里有一个s r c,s r c的话。
就是啊在htm的话就是一个路径的一个意思嘛,对吧,就资源路径,然后面的话有一个name,就是呃我们刚刚请求的一个呃文件文件名好,我们先发送一下这样的一个请求包,可以看到这样的话他返回了这样的一些信息。
在信息的话,其实跟我们的这里页面的一些信息,做一个对比的话,就能够发现它其实啊返回到这样的一个index 0,菲律宾的一个内容,然后这里的话,我们看到有这样子的一个文件对吧,然后有这样子的一个路径。
而且这里的一个路径以及文件名,是我们可控的对吧,那么我们可以尝试一下去做一个修改对吧,把它修改修改其他的一些路径是吧,说不定有就是呃文件读取,因为这里的话它的一个功能就是读取,我们这里只建了一个文件名。
而且是这个路径下面的这个文件名的一个啊,内容对吧,这样的话我们可以做一个修改,尝试修改它的,我们这里可以去进行一个控制的一些内容,然后的话查看它的一个响应,看是否能够看是否能够读取它的一个啊。
你指定的一个文件的一个内容,然后这样的话呃,这样的话我做一个呃修改,比如说我要查看这个function in js,它是在一个这一个就是这个index顶配区域,这个目录也就是在这一个js目录下面对吧。
文件名的话就是这个functions,点,js,嗯可以看到的话,这里的内容的话是呃跟这样的话是一样的对吧,function,然后的话document,好在这里在这里显示了一个内容。
在这里function document,还有这个forge什么的对吧,这里的话显示了这样的一个文件的一个内容,当然当然,这里的话是我们能够查看到的一个文件,那么我们尝试一下其他的。
就是我们在这里页面无法去查看到的一些内容,比如说呃,比如说我在这里的话,和我新建一个这样的一个文件,一点菲律宾这样的一个文件,它是在这个,sims在一个目录下面,好的话。
我要访问的一个文件名的话是一点p p p对吧。
然后的话我进行一个发送,发包装的话可以看到他阵营的话呃,显示我刚刚输入的那一个内容,然后这里的话就说明它是存在这样子的一个,任意文件的读取漏洞的,然后的话我们其实也可以啊访问像这种。
就像这种常见的这种config。
点p h p,也就是一些配置文件,还有像这种robots的这种文件,就是说啊一些常见的一些文件,然后这里的话我这里,你这个config,有pp这个文件为例,可以看到这里的话。
它显示了返回了这样的一个config,也就是在那个根目录下面,这个网站根目录下面的一个config。
点p hp的一个内容显示的啊,数据库的一个用户名以及密码的一些信息对吧。
这里的话就有一个这样的一个文件读取,然后这里的话其实不是我们这一个,这一个get shell的一个方法,这样的话我只是只是呃就是说一下思路,就我们再去进行这样子的一些嗯,漏洞的一些寻找的时候。
我们通过这这样的一些请求包,然后的话对这些就是我们可以看到啊,这请求包里面的这样的一些内容,这些特殊的一些参数对它做一个测试,然后的话你就会发现一些,啊不同寻常的一些点。
然后的话就可能会存在这样子的一些漏洞,然后这样的话我其他的我也不多说了,这句话它的一个漏洞点,就是我们可以去进行一个任意的一个,文件的一个写入,然后它的一个功能的话就是这个save在我们。
因为这里的话我们可以去进行一个编辑对吧,就编辑这样的一个内容,就是说这一个主题文件的一个内容,好的话,我们看一下它的一个请求包,他的一个请求包的话,问题就是出在嗯。
问题就出在他的这样的一个请求包里面对吧,我们可以来查看一下,如果说你刚开始看到这样的一个请求包对吧,其实你也会发现他的这样的一个请求包,就跟我们之前提到的那个请求包类似,挺类似的对吧。
他同样的有这样子的一个s r c的,这样的一个敏感的一个参数,就是指定我们的一个文件的路径对吧,你看到他这里的话是指定的这个index,点p h p的一个路径,然后的话它这里的一个参数。
其实是我们可以去做一个修改的对吧,然后这里的一个content的话,从字面意思的话,我们就知道他是一个内容嘛对吧,就其实这里的一个内容,这里的一个content的话就是我们在这里的啊。
一个index 0 p h p的一个内容,因为我们这里有个save的话,就是把我们这里更改的一个内容,把它保存到这个文件里面对吧,然后的话这里的话,这里的一些内容,都是我们可以去进行一个操控的。
可以去进行一个操作的对吧,那么我们是不是啊可以尝试去写一点东西对吧,比如说我这里的话改一个需要点菲律宾,然后我这里学的一个内容的话是一个,hp info,好我尝试一下发包发包。
这的话可以看到它这里的话是返回了一个200,就说明我们的这个请求的是成功了,成功了之后的话,我们在这里来看一下,我们刷新一下看一下,然后可以看到他这样的话,这里的一个需要点p h p。
而且是p h p后缀的一个文件,已经呃,它的一个内容是我们的写入的一个ph p four,那我们怎么去进行一个访问呢,访问的话它的一个目录是在这个呃,诶seems default对吧。
然后的话是在呃有一个shell点这一个,这里的话就是一个index。p h p嘛,有一个需要点p h p我们去进行一个访问,可以看到是能够正常的访问到我们写入的,这样的一个需要点pp的一个文件。
然后的话这里的话,那么我们就可以把它改成一个一句话对吧,它保存到我们的服务端之后的话就是一个web shell,这里的话就是这个啊sm的一个点,然后的话呃之前的话是呃,我记得是有位同学说顶不动。
你说的这个顶不动是指哪里呢,就大家对这个有没有什么疑问啊,这个的话其实就是一个就是一个cm,现成的一个漏洞吧,然后的话主要的话是介绍了这样子的一些呃,思路,就说大家再去查找这种后台的这样的一些呃。
漏洞的时候,这里是吧,这个image吧,这里的话没有没有上传的一些点啊,对啊,你说这个upload是吧,这个确实点不动,这个是点不动啊,嗯嗯嗯啊,其实这个按理来说的话,其实也不能算是文件上传。
应该算是一个啊文件写入,就是任意文件写入的一个漏洞,因为它其实不是一个上传的一个功能点,而是一个啊,就是这种文件的一个写入的一个功能点,但是的话他服务端没有对我们写入的,这样的一个啊这种文件内容。
还有的话就是它的一个路径,就主要的话就是这里的这一个路径,它是我们可控的对吧,我们其实可以写到其他的一个目录下面,也是可以的,就我们可以直接写到它的根目录下面,我们只需要把前面这一节删掉就ok了。
然后这这里的话应该没有什么问题啊,行进目录,你说啊这里的一个sim什么,在这里新建目录吗,还是说哪里,这里的话没有新建目录的一个功能吧,然后的话这个应该没有什么其他的问题啊,新进目录哦,可以试一下。
呃我觉得应该不行吧,可以吗,看一下就应该可以啊,他这里请发送的请求乱是成功了,啊可以看到他新建了这样子的一个东西啊,但这个应该不是目录吧,是目录吗,写个文件,按一下,咳咳,你看到他这里的话是啊。
不是目录啊,就是写不进去,他在他这里的一个功能点的话是,写文件就是说把我把这里的一个内容,把它写到你指定的这个路径,下面的一个文件里面,好这里的话应该没有什么问题啊,主要的话就是观察他的一个请求包,就。
好,然后第三个的话就是一个ph pk,这个其实也是一个,现在现成的一个漏洞,大家去搜索的话,其实也能够找得到它的一个呃利用方法,这里的话呃,我这句话是给了一个用户名密码的,这样的话呃打开之后的话。
同样的是这样子的一个呃首页对吧,鼠标的话我们呃想要它的一个管理页面,管理页面的话,同样的就使用一个add me,这种常见的这种去进行一个测试,去进行一个尝试,好的话,如果你直接去这样子去进行一个城市。
不行的话,就通过这样子的一些呃,目录的一些扫描工具去进行一个枚举,那这样的话是一个登录的一个页面,然后这里的话因为它是存在一个印证码的,而且而且他这里的话是有一个登录次数的,一个性质。
就是说你多少次失败之后的话,它就会啊,就是你这一个账户的话就被锁定两个小时,所以的话他这里不存在一个这种啊,爆破的就是用户名密码爆破的一个漏洞,就他的一个呃那种呃,这个性质的话是做的比较严格的。
就性质了你的一个呃呃错误的一个次数,还有的话有一个验证码,这样的话我是给了啊,给了大家一个用户名以及密码的,然后访问之后的话就是到了这样子的后台啊,同样的就是我们去要去寻找。
我们的一个能够进行一个文件上传的,一个一些功能点,这样的话我们就需要去进行一个查找对吧,这样的话它的一个内容的话是比较多的,然后我们它的一个一些我们通过查找之后的话,能够在这一个内容管理这里。
这句话有很有好几个的这种呃,上传文件的一些功能点,我们比如说第一个资讯中心,你怎么防备我来,是不是你们都在扫啊,怎么突然变卡了,怎么访问这么慢呢,可以了,你们你们先先别扫,不没有练手的话,呃。
等会下课之后再再去练吧,再去操作吧,那这样的话好有这样子的,就是一些发布资讯的一些功能点对吧,我们呃可以看一下这里的话有个加号对吧,我们可以去进行一个内容的一些发布,内容发布的话。
这种发布的话我们可以在这里有看到,就是有上传文件的一些功能点对吧,那么我们去进行一个啊文件上传的一个测试,然后测试的话我们点开的话,发现这里的话是啊有这样子的一些格式,就是允许去上传附件的一些格式对吧。
然后这样的话,我们先选择本地文件去进行一个测试,看是否测试一下它的一些绕过的一些规则,看是否能够去进行一个啊绕过同样的,我们呃先随意上传一个p h e对吧,然后发现的话他这里的话是不允许上传。
然后我们上传一个,png好看一下刚刚的那个请求包,请求包的话就是这个,刚刚的话附件的话是已经上传成功了对吧,就是这个这个文件,然后这里的话可以看到它的一个文件名,是这个这样这样的一个文件名。
是一个png的一个文件名,那我们看一下这一个请求包,我们分析一下,然后可以看到这里的话,就是我们的一个上传文件的一个内容对吧,然后主要的话在这里的一个u r l里面,它是一个post的请求。
然后这里那个ui里面的话,它有很多的一些参数对吧,我们可以啊能够直接的看到的话,就是有啊,这个比如说菲律宾session对吧,筛选的话其实它就是这里的一个筛选值。
然后的话还有就是name这里的一个name值,就是我们的一个上传文件的一个文件名啊,还有的话就是一个type type的话,就是我们这里的上传文件的一个那个文件类型,对吧。
就是说content type的一个词,然后其实这里的话啊,我们可以看到它这里是呃把这样的一些呃,我们上传文件的一些这样的一些信息,把它放到了我们那个url里面。
其实也就是一个啊像啊一个get方式的这样子的,一个船舱的一个方式去向服务器传传递,我们啊我们上传文件的一些信息,然后还有就是呃上传文件的一个时间等等,然后这样的话。
其实我们主要的话就是对我们的一个文件名,对吧,我们这里上传了一个文件名,我们可以去进行一个修改,去进行一个测试对吧,我们这里直接先好更改一下,我们的一个更改一下我们那个psp文件,我们尝试一下。
尝试的话,我发现他这里的话是返回了这样子的一个内容,这里的一个内容的话要提一点的话,它是一个unit code的一个冰嘛,unico的一个兵马的话,我们想要哦,我们想要去查看到它的一个内容的话。
它其实呃我们需要做一个解码,我们使用一个就编码工具,你也可以用线上在线的那种也是可以的,我们把它把一个unit code,把它给转化成中文的话,就可以发现它的一个内容其实是一个附件类型,不符合要求。
也就是说我们这里上传的这个p h p后缀的话,我们,我们这里上传的这种ph标志的话,它是不允许我们去进行一个上传的,然后的话我们同样的可以测试其他的一些,测试其他的一些logo的一些方法啊。
比如说我们之前说过的一些点空格对吧,点空格点这种这这样的一些方式,然后发现他是会报错的,还有其他的一些,然后的话嗯如果手工测试不那个的话,你也可以使用一个夫子对吧,用那个字典。
用那个字典去跑它的一个这样子的一个文件名,使用那个呃,可以使用那个我发给大家的那个工具。
就这个就这个脚本,这个脚本你可以自己去进行一个生成,但是它里面啊它生成的话其实内容还是挺多的。
那这样的话是psl,我们可以用杠h参数来查看他的一些呃,一些使用的一些信息,然后的话这里的话是要生产,常见的一些ph p后缀的啊,我们使用杠a参数指定一个菲律宾对吧。
看看参数的话是指定我们上传的一个文件名,我这边的话就a s d。
然后还有就是嗯杠m参数的话。
指定我们的一个中间件,中间件的话,这里的话应该就是一个阿帕奇吧,啊啊是一个阿帕奇,如果如果查看它的一个中间件的话。
我们可以通过就是看我们的一个请求。
它的一个响应包嘛对吧,这样的话有一个阿帕奇,它是一个生透s系统上面的,所以我们这里的一个中间件的话,是一个阿帕奇是吧,他的话啊和5s看看,r s的话就是一个linux吧,然后的话我们刚刚输出一个嗯。
pasta电影,然后的话它就自动生成了呃,符合我们的这样的一些要求的呃。
一些呃可以解析的一些后缀,保存到了这一个text。txt里面,然后这里的话就是它里面的一些内容,然后的话我们可以用bp发包,把我们的这样的一些好这个字典,把它呃发包嘛对吧。
就是在我们的这里的这个文件名这里,我们把它把它发到这个intro的模块,然后的话我们指定这一个参数是一个文件名,然后的话我们去进行一个好像爆破一样的,去进行一个发包,一直发,把我们的一个置顶。
就说这里生成了这样的一些后缀,把它进行一个测试,然后的话通过查看它的一个响应包,来进行一个判断,然后其实呃我看就是这位同学,他这位同学他就有这样子去进行一个尝试对吧,我觉得这样这样子挺好的。
就大家多去进行一个在这种尝试,我看我看你之前是哪一个,有这样子去进行一个夫子对吧,就我觉得这样子的话,这样子去进行一个尝试,可以的,就如果说没有这样子的一些失误的时候的话,都你你都是负腿的啊。
这就像常见的一些,你还是可以先手工新手工测试一下嘛,就你负责的话,你这样子其实那一个你这样子一直去发包的话,那你那工作量还是比较大的,我啊我这里的话,这些这些其实都是比较简单的,就不是很很难的。
如果说比较严格的一些过滤的话,你夫子其实也不一定能够出得来,呃然后的话我们呃回归我们的,我们的一些一个课程内容吧,讲到哪了好,就是我们做做一个测试之后的话,发现他其实都有进行一个。
就是不允许我们去进行一个上传,都有一个过滤,然后的话我们没有其他办法,我们需要去寻找其他的一些功能点,然后在查找之后的话,其实查找之后的话,在这里有一个啊附近的一个分类管理,其实我们在这里的话。
其实选择图片的时候,我们可以看到它这里有这样子的一些,就是选择附近的一个分类对吧,他这里的话已经写定就已经写死了,只能上传这样的一些文件类型,然后这里的话我们能够查找到有这样子的一个。
附近分类的一个功能啊,这这个功能的话,我们可以看到它其实这里的一个类型对吧,跟我们前面的这里的一个好,允许上传附件的一个类型,它其实是对应的对啊,其实这里的一个分类附近的一个分类管理的话。
就是啊设置了我们这里啊上传文件的一些类型,它是什么样子的,然后的话我们可以尝试去进行一个修改,就是说修改我们这里啊,能够支持去进行一个上传的一个附件类型,我们把它修改成一个菲律宾,提交提交之后。
我们在这边来看一下,我们选择图片看一下,我们在这里选择图片看一下,可以看到的话,这里的一个图片上传,就是上传的一个附近分类的话,后面的话是成了一个啊,有了一个点菲律宾的一个后缀。
我们来尝试一下上传一个kpl的文件,看它是否允许我们去建一个上传,然后我们直接上场之后的话,可以发现它是能够直接的上传成功的,也就是这个好,我们预览一下,预览之后的话,可以看到看到他的一个文件名是这个。
然后呃就点那个点击下载,然后我们可以看,我们可以直接跳转到我们的这样的一个文件名,因为它是一个p h p文件,它是会啊做一个解析的,解析之后的话它就是这样子,然后我们进行一个尝试。
去进行一个执行命令对吧,验证一下我们的一个贴,我们的一个web share,它是否上传成功,是否能够执行命令,可以看到这样的话是能够执行的,这个的话就是呃就是,就是这一个的一个,cm的一个漏洞。
就是一个文件上传的一个漏洞,然后其实像这种像这种去修改这种附件,后缀的这样的一些功能的话,其实啊大家之后的话,其实也很有可能会去碰到的,就是说如果说你得到了一个这样子的一个,网站的一个管理后台对吧。
如果你得到他一个后台,因为其实我们已经得到了他的一个网站的,这个网站的一个一些这种操作的一个权限对吧,好的话,我们就要利用他的这种操作权限,来去进行一个啊获得服务器的一个权限,好,这个时候的话。
咳咳我们想要去上传这种文件对吧,它不支持这种文件的一个上传,那么我们是否能够去找到这种它的这样子的一,个就是说附近分类的一个管理,就是说允许去修改,允许去啊,允许管理员去设置啊。
他上传的一个文件类型是什么样子的对吧,那么我们就可以利用他的这样子的一个功能,来修改它的,允许我们上传的一个菲律宾的一个后缀,然后的话来好上传我们的一个web share。
从而达到一个get shell的一个目的,当然的话哦这里的话是这一个cm s,它的这样子的一个呃操作,在其他的一些cm s里面,也有可能存在这样子的一些功能,而大家对这个题目的话有有疑问吗。
然后其实这个的话还有其他的一些呃,这种就是说上传文件的一这样的一些功能点,像比如说呃对吧,下载中心你可以啊,上传这样子的选择压缩软件对吧,这个的话那就是只能支持这种格式对吧,当然我们也可以选这种。
然后其实我们也可以,就是把这里的一个附近扩展,全都后面都加一个p h p嘛对吧,就他的这各种的一些构功能,都能够去上传我们的一个菲律宾的一个后缀,还有其他的呃,一些功能点,嗯没有了吗,对啊。
比如说像在这里,那我们,我们要去寻找的也是像类似的,像这样子的一些功能点,然后的话对它做一个测试,但是否能够去进行一个get share,大家应该都没有问题啊,没问题的话,那呃我们继续后面的最后的一个。
这一个的话,这个的话哦我们看一下打开它的一个网址的话,你会发现它是一个这样子的一个,学生会简历系统对吧,是一个这样子的一个登录界面,然后的话呃看到这种登录界面的话,我就我我也不多说了,就前面也介绍了。
就是相应的一些思路对吧,就进行一个注入啊,还要进行一个爆破,这样的话都是可以的,就是说我们首先的话进行一个注入的,一个测试对吧,然后注入测试的话,这里就是介绍,我们直接。
其实直接使用一个万能密码去进行一个登录,这样的话密码的话随意输入啊,这样的话我们使用这样子的一个形式,去进行一个登录,然后可以看到是能够正常的登录成功的,就是说它其实是存在一个sql注入的一个漏洞的。
然后的话我们可以直接通过这样的一个,万能密码进行一个登录,这里的话应该假设个注册的时候有讲过,然后这里的话我们去进行一个文件的一个上传,当然的话,当然的话我们也可以通过就是呃用second map好。
不用那个去进行一个密码的一个爆破,同样的使用那个in instrua的那个模块,去进行一个密码的一个爆破,也是同样的能够去进行一个成功的一个爆破的,爆破之后的一个密码的话就是admin 445。
然后的话第三种方法,那就是用呃一个second map,去跑他的一个登录的账号密码,因为他像这种的话是存在一个柱漏洞的对吧,这里的话就是一个登录框的一个啊注入,然后他进行一个登录框的一个注入的话。
应啊讲sql注入的时候应该也讲了吧,我们他的一个就是一个方法的话,主要就是呃抓取他的一个登录的,一个一个就是post请求,就是他的一个登录的话,就是一个那个pose的请求。
其实就是这样的一个post请求对吧,然后的话这句话是一个用户名以及密码,传递给服务端,然后的话就去进行一个判断,然后我们用去进行一个circle circmp,去进行一个跑的话。
我们只需要复制这样的一个请求包,然后的话把它丢到sql map里面去跑就可以了。
诶我扫个码服了。
所以说首先的话你把这个请求包。
把它保存到一个文件里面,然后的话用那个circmp的一个干拉参数。
嗯我这段话不演示了吧,大家看这个图吧,用那个circmp的gr参数就指定这个请求包,然后的话后面接我们常见的一些参数,d d b d b m s的话,就指定我们的一个数据库类型。
然后刚刚d b s就是报我们的一个数据库对吧,然后的话就去进行一个跑跑的话,好的话可以看到,就是说它这里有一个info信息对吧,这个info信息的话,可以看到它这里就是说这个username的这个参数。
它是存在一个啊,就是基于时间的一个盲注对吧,就是说它是可以去进行一个注入的应用的,然后的话我们接下来继续跑的话,就能够跑出呃他的一些他的一些数据库,然后的话呃就是就一步一步来嘛。
跑出数据库的话就跑跑跑表吗,跑出表的话跑跑字段,跑出字段的话就跑字段值,就跑里面的一个数据,导出数据的话,就是得到的这样的一个这样的一个呃,md 5加密对吧,我们用那个md 5去进行一个解就可以了。
这个的话我试了一下,用这个的话是收费的,然后这个时候就可以尝试一下其他的吧,尝试其他的话去进行一个解密,诶好解密之后的话就是这一个的面试四五,在这里的话就是啊三种三种去突破。
这种登录到后台的啊测试的一个方法,诶哪去了,我这的话也就是列举了这样的三种方法,然后跑获得到他的一个登录啊名之后的话,我们就去进行一个啊后台的一个测试对吧,后台测试的话,其实这里的话。
它的一个功能点的话是十分简单的,四四我们登录登录之后的话,他这个后台的话就这样,就这样子的一个页页面对吧,然后主要的话就是看这里有一个呃,上传文件的一个功能,我们可以看一下这里它其实好。
这里就是你们之前谁传了一个是吧,这里是你们之前谁传的一个,然后的话我换一个用户吧,再一个你们应该没有,没用过吧,he,都一样的吗,行吧,就这里的话本来是一张图片的。
然后的话我们可以去进行一个文件的一个上传。
首先的话啊其实这样的话就更加的简单吧。
同样的我们先随随意的上传一张啊,上方一个菲律宾来尝试一下,然后注意看他的一个请求包,上传之后才发现是error,就是说不允许我们去进行一个上传对吧,然后我们主要的话是分析一下,它的这一个请求包。
请求包的话,这里的话是一个上传的一个功能对吧,然后这里的话是我们上传的一个内容,这里是文件名,然后我们可以使用其他的一些,就是之前一直都说的一些方法,对我这种话就不是不再啰嗦了。
然后这里的话它的一个应用的话,就是通过这个大小写去可以去进行一个绕过,据说他没有对我们的一个后缀的一个大小写,做一个严格的一个检测,就我们可以通过这样的一个方法去进行一个logo。
然后可以看到直接上传之后的话,你看到它是successful,就是说我们已经成功上传了,成功上传之后的话,我们在这里,在这里能够通过f 12,能够查看到当前的这个照片的一个路径,也就是这个对吧。
然后的话我们就能够直接去进行一个访问,cr load目录下面有一个这样子的一个pp文件,对吧,然后测试区进行一个,它的一个可行性,可以看到是能够成功的执行命令,然后的话我们也就成功的得到了他的一个需要。
呃然后的话我们这次的一个考核内容的话,就到就是这样的一些内容,就大家有大家,我看大家没有什么,没有人没有多少人提问啊,大家都是都自己做过了,然后都会嘛,我还是希望大家多提点提点问题啊,就。
就只有就是你去解决了这些问题的时候,你才能够去就是有深刻的一个理解吧,然后大家自己多去动下手吧,就可以照着我这里的这个文档是吧对吧,就是这样的各种方法,然后的话就是我在课上讲的。
我们怎么去进行一个这样子的一个啊测试,然后的话我们找这些功能点,测试的一些思路对吧,然后的话就是登就是啊,通过我们就是如何去进行啊,就利用一些方法如何去啊,绕过这种登录对吧,绕过这种登录。
然后到后台去进行这样子的一个好查找,文件上传的这样的一些点来get shell呃,这节课的话其主要的还是思路吧,就这样的一些点就通过这几个啊,c m s的一些漏洞。
就大家就是注意的话就呃注意的几点就是对吧,找这种功能点,然后的话就是一定要去就是去查看,去观察他的这种请求包,所以说这个bp bp的这个工具的话是呃,相当的好用,就是说去观察他这种请求包。
然后这请求包的这些内容的话,就是说它的一个意思啊什么的,大家要去理解是吧,就菲律宾的这种呃请求的一些数据啊,一些内容它什么意思对吧,还有一些一些请求头的一个意思,明天再过一遍,可以的。
我觉得然后大家也都没有什么问题啊是吧,如果没有问题的话,今天时间不早了,又又加了半个小时的班呢,那我们今天的一个课程内容,内容的话就到这里了,希望大家和,然后明天的话是讲文件上传文件包含的话。
那好吧哦不是,明天的话是讲文件包含,文件上传内容的话就到这里了。
希望大家都学会了。
标签:网络安全,这里,一个,笔记,的话,然后,合天,上传,我们 From: https://www.cnblogs.com/apachecn/p/18439479