小迪安全课程笔记-2024-十六-
小迪安全课程笔记 2024(十六)
P46:第46天:注入工具&SQLMAP&Tamper编写&指纹修改&高权限操作&目录架构 - 逆风微笑的代码狗 - BV1Mx4y1q7Ny
今天呢讲这个pp这个里面那个租工具啊,这个pp应用这个注入的最后讲呃,像后面呢再讲SQL组呢,就可能是一些这个其他数据库和,一些人们数据库的一些讲解了啊,呃这个SL组呢已经讲了一部分了。
嗯今天呢就是有这个工具呢给大家讲一下啊,这个sk map的一个使用,就只讲这个工具,这工具你用好之后呢,其实呢很多SL猪呢,你也不需要额外的再去学的很深入了啊,直接用工具那就好了啊,在工具里面呢。
这是我们今天讲的一个点啊,然后呢你网上你可以看到很多讲这个map的,不管是文章也好,是类工具也好啊,他讲的都是一些很传很多的知识,但是呢他没有一个条形,就是不会说你在什么情况下面用到这些东西。
他只会说把东西都列出来啊,没有给你说到这个哪些东西,该重点掌握哪些东西呢,该简单的看一下,我说该怎么查,没有这样想,就像网上呢这里有个思维导图这么多,我们有必要这样去学吗,没有必要啊。
就是你按照自己对猪的一个理解之后呢,再通过这个资料呢选择性的去学一下,然后不懂的了,可以自己下去啊,查一下就完事了,那这里呢我们就大概分了这个五个点去讲,这四个map的一个工具的使用。
包括它的架构组成原理啊,活学活用,用这个工具的针对SQL注入的一个使用和解释,那学完这课呢,江景啊,你这个四个map呢呃就会灵活的去用它了啊,就不会出现什么意外了,以后呢碰上猪点呢,手工不了的话。
用工具帮你搞啊,都是OK的,好那么现在呢给大家看一下啊,这个SCHEMP的一个解释,然后这里呢有一个参考文章,就是这个工具的一个看文章有这么多,然后这里有很多啊,我们呢也没必要呢说一个看啊。
首先呢我先给大家看一下啊,首先我们来初次来认识一下这个SMAP,关于他的介绍呢,我们就呃给大家简单的看一下吧,我忘记把那个西格玛和那个东西的介绍呢,给他那个写上去了啊,简单把介绍一下啊。
介绍完之后呢说一下啊,但他说sk map呢是这个测试工的一个注入工具,那么在注入方面呢有一个SKEMP的就足够用了,他也是秒杀了很多其他工具,然后这个工具呢这是他的一个介绍,除了知识官呢。
呃他是基本上啊是支持这个大概这个mysql or a post,CIRCL是个server啊,access啊,dB two啊,cil lives啊,呃s y base啊,还MXDB啊。
基本这是十一二总这个数据库的一个注入,然后呢他也支持五种类型的注入啊,对注入我们讲的堆叠联合是吧,包括时间和布尔也是我们讲的这五个嘛,前面的UIO就是联合后面讲的堆叠SD课的是吧。
还有那个盲组上面方面报数是时间,不对不对,嗯好这个是他这个大概介绍啊,就说是一个专门来针对SQL注入利用的一款工具,通过这个租点呢,用这个工具呢可以实现很多类的一些工具方法。
那么接下来我们就来给大家演示一下,它的受邀的测试,我们会从可以在这个真实站点上面呢,去测试一下,比如说这里呢有个真实的这个什么打点好的,这个什么几个单例呃,SP加四个server点。
net加四个server,MYSQL加pp这个i pi的这个rs st的这个加MYSQL,然后还有一个这个Python的,加这个cos dB的一个这个五个这个网站啊。
其实呢这里就涉及到了MYSQL数据库啊,是个server呀,呃MYSQL啊和cont v这几个数据库,那都是可以在SMAP上去测试的,而且呢涉及到三四个语言啊,Python的web。
匹皮的SP的SP点net和这个API的一个写法啊,pp写的API的REST的这个接口放五个啊,呃我们呢等下呢可以在这个上面呢,做一个简单的上面那个测试啊,嗯这个是一个测试站点啊。
你们呢在上面搭建了这个是吧,不同的这个网站,然后呢便于我们对它进行这个测试哈,我们这里等下再用它吧,那么现在呢我们就来现在测第一个最简单的,从这个点,大家不要再说一些关键字了啊。
我们从这个上面那去呃,说简单的测试点啊。
那比如说这里呢呃前期呢我们这里有个租点啊,啊看一下啊,这是我们的一个驻点啊,这个是个SP加RXS。
我们来看一下这个数据库的一个注入,前期我们在SP的时候呢讲过啊。
先从他呢来简单开胃呃,使用SNMAP呢提前准备好Python环境,三版本,二版本都支持,从它的官网上面去下载这个sk map的这个什么,去下他的这个地址啊,他的最新的压缩包好。
我们在那提前给他瞎了,那在这里,它的目前最新版本呢是一个1。7点几的,一个版本,我们来打开,好如何使用它来进行注入啊,前提啊前提背景文交代了,已知这里是个驻点,那如何已知它是个主入点呢。
这不是我们现在要操心的事情呃,判断这个漏洞是否为猪漏洞,这里呢后期在漏洞发现和漏洞扫描工具上面,那个判定呢是能够支持到的,同时呢你在学完之后呢,也能简易的去判断好,这里呢我们打开这个Python啊。
然后运行这个sk Buff,前期呢自己在本地环境呢装一个Python,并且安置到环境变量,我这里要采用的是python3。8的一个版本啊,运行的啊,当然你用其他版本也是OK的啊。
来这里呢使用杠U参数来指向,你要租的一个地址,那这里呢我把这个,哎这个怎么把他的那个字体变大呀,再看到好这个字体呢给大家搞大一点啊,然后这样子啊。
好杠U呢,冒号里面呢加上这个租地址啊。
加上这个主体地址。
好首先呢这里呢把它放进去,这是我们的网址地址啊,然后大家看一下啊,这里要注意一点啊,直接回车啊,他是呢会对这个点呢进行检测,然后在检测同时,它会在你的这一个目录下面生成一个目录。
就是在你的四个map的一个孤立目录里面,那比如说在这里啊,他这个连接给搜一下呢,他在这里呢自己创建了一个目录,这个目录是干嘛的呢,就是用来存储注入的一个保存的一个结果,就是你在上面后面测试的很多东西呢。
它都会保存那个目录,防止你下次查看,比如说里面保存猪肉的日志,保存注入的数据,保存注入的这个地址,他都帮你写上去啊,就会在这里呢创建一个啊,这个目录呢不是固定的啊,它会自动帮你创建。
一般都会在这个盘符下面啊,你可以直接搜索这个网站域名来实现查找好,那现在呢就进行注入回车啊,啊他这里呢一般会有一些会询问,这个询问呢如果你看不懂啊,你就直接回车,如果看得懂就可以简单看一下好。
他就开始尝试书,那么一般看到这种黑色字体里面呢,如果在后面写成个叫might be injection啊,inject就是说可能存在注入,然后后面一个叫post apple dbms。
就是可能性的数据库为matt soft access数据库,然后呢他会询问你说这看着像access,Do you want to skype test payload,是吧啊。
是否问你这个要跳过这些测试,PLODER呢来来自其他数据库呢,对不对啊,这里呢根据自己需要啊,我们就选择回车,就是默认是es s啊,就是说是否跳过,我们直接跳了吧,节省时间啊。
然后他又问你说这个其他的啊,这个什么鬼,有个叫什么NF和risk,这个就是我们说的等级和风险的东西,哎这里那就无所谓的啦,对不对,直接回车呀,好等下会讲的啊,然后他就开始搞了啊,他就开始租了。
好一般呢他这里直接看到说什么,得到这个参数呢,移植什么一个注入点啊,又得到,而如果你发现最后的结果是这么一个结果的话,那么基本上就表示存在注入啊,并且判断出这个当前的中间件和操作系统。
还有这个数据库类型是吧,已经出来了,那么已经得到存在这点之后,我们就可以直接怎么样呢,杠杠tables gtables的意思是啥呢,就是获取它的表,然后这里呢有很多东西我们要讲究。
什么东西要讲究呢,就是啊,我们都知道在之前的数据库注入的时候呢,它通常有几个地方叫做库名,数据库名表明这种东西啊,那具体呢我给大家给看一下哈,就我们在MYSQL注入中,或者说其他数据库后面还没讲啊。
只讲了MYSQL,就在数据库注入时注册里呢,还先拆这个数据库名字吗,然猜到进去才是个表明嘛,哈但是现在你这里呢它是一个access斯。
所以你的第一步那是拆表明啊,所以他是刚刚tables回车,然后你会看到啊,他继续问你,我们就直接回车啊,他这里说了一句什么,问你是否用什么默认的什么这个这个什么table啊。
这个拓展去检测yes s和L而回车好,然后他问你呢,这个table的一个用到哪一个,一个是默认的,在这个second map的安装目录下面,data test这个table里面还有一个呢是自定义的。
啥意思啊,我们来观察一下sk map的这个目录啊。
关注一下这里,那就引出了这个什么这个支点这个概念啊,那在这个data txt这个目录,然后呢下面有这个文件,其中呢他说的指向的是这个什么table,是点TIT,那么就是这个嘛哈啊这个是干嘛的呢。
哎回想一下我们之前讲access的时候说过一句话,这个access注入呢,它不像这个MYSQL5。0以上版本的注入,可以通过查询information s t h e m a那个数据库表。
来获取这个表明和联名和一些字段信息,大家还有没有印象access数据库的注入呢,它是通过这个知识点拆解,所以他在这里那就必须要用字典,那么他刚才询问你,就是说用到的是默认字典还是你自定义字典。
我们就采用默认字典对吧,然后呢我给大家看一下啊。
首先呢我打到这个网站这里啊,再看一下,然后啊现在呢我把这两个库都给他拿出来。
好这是他两个库两个数据库啊,这两个数据库呢大家看一下啊,其中呢他现在用到的是上面那个。
因为下面这个呢你看的这是之前那个啦,这个是艾德米表对,里面有这个联名和表名,然后这个呢。
你看这个啊,看下面这个下面的这个呢。
打开下面这个,啊下面这个就变成什么艾米小迪了,啥情况,那这里有两个啊,来打开这个看一下。
那他变成admin小离了,然后原来的是艾德米,啥情况呢。
我就是说给大家演示一个差异啊,就这里呢有两个啊,一个是我没有修改的,一个是我修改后的,这个是我需要hold的啊,我先将这里呢把它改成这个移好看这个一啊,那这个网站现在是打不开的,我们可以看一下啊。
为什么打不开呢,因为数据库名改了啊,它指向就错了,你看网这里报错了是吧,然后我就把这个上面这个这个下划线,这个呢把它去掉,下划线恢复它原样好。
那么现在呢我们再看这个网站哈,他又打开了是吧。
就这是把回来了好,那现在我去租他来,你看啊,从这里呢去当注入,然后呢他问你多少线程,默认最高线程十线程存个十好,这里呢就有31亿个这个表的去猜,你看就猜到了艾德米是吧,猜到60,看到没对吧。
他拆了还拆了布克啊,好猜了,阿米达。
阿德米德是我们关键好,我先把暂停,那么现在再来看啊,我再把这个哭了,把它换掉,换成这个宜的好,就把这一呢就把替换掉,那这个呢就是刚才我看到的。
他的表明的是什么,是艾德米是什么,看一下哦,就是艾德米小迪表明变成了艾米小迪,那么我们现在再来去猜测一下,先把这个缓存给它删掉,就这个猪的缓存啊,不然的话它可能会出问题,好好了啊,我们继续来猜来。
还是一样的道理啊,就是把数据库里面的表明了,尝试着修改,然后呢我们现在装它呢,去猜那个表是不是能够猜出来啊,啊好十个线程好,他就开始拆了,你看那么他这里是31一个,三千四百四一十一个呃。
我们可以看到他怎么猜出来的呢,他猜到个六四,但是没有把刚才那个enemy猜出来。
因为什么呀,他猜的用这个表吗,我们给大家看一下啊,来3000多格嘛,其实就是这里的这个排列组合呢,从撕开的这个user对对,就是他猜的那个来源就在这里嘛,就是TT的问题对。
那截止到应该是截止到这个哪里啊,截止到这里,3000多个,应该截止到这里啊,前面有几个换行吗,来截止到这里来。
是吧,嗯那他猜不出来了啊,哼。
所以说你如果要后期尝试添加这个支点的话,就是来到这里啊去添加,比如说我们就把刚才它存在的把它填进去,写到这来,写到ADD me小一,因为那个表呢是艾米小迪嘛。
对不对,我把它写进去,那保存到这里啊,那么接下来我们再重新再注入看一下,看着啊,那多了一个是吧,多了一个,你看A的米小题才出来了,对不对,能理解吗,这是他的第一个啊。
这个S个map目录的一个支点里面的一个操作啊,那么它是针对于这种支点呢,是靠这个啊,这针对这个猪,那是靠暴力的一个支点拆解,那么呢如果说支点猜不到的话,你如何呢。
通过修改这个工具的支点呢来实现自己的添加。
注意一下啊,这就不说了啊,大家明白了好。
这个access呢在一个告一段落了啊,然后如何去猜它下面的数据给大家演示一下。
你如说像现在我们猜到了,猜到了他这个下面有个2米的一个东西是吧,那然后拆了2米小迪之后,接下来该怎么拆它的,第接下来数据呢再来啊,刚刚tables是获取他的这个表的所有东西,然后刚刚COMUNS。
就是代表获取它的字段或者列名的意思,然后杠T大写加上刚才猜到的这个名字写上去,那么这个意思呢就是说拆捏拆什么捏呢,来源于这个表下面的捏,猜艾德米下面小迪,艾德米,小迪下面的列米,那我再猜。
然后呢他一次也是采用质检参,所以那我们选择第一个,那换那个啊,变成了CONCOLUNTST,就是另外一个联名字典去猜它,回车啊,选择一,然后实现程去猜,你看现在就是联系logo。
然后猜到id和username啊,紧紧接着呢就等待password这种类似的东西出现,好啊,那我们看一下啊,那么现在可以看到已经出现了username和password,我就直接暂停了。
那么接下来知道这个之后呢,继续拆他的数据,数据该怎么拆呢,然后user name chusim和pass w b啊,这个意思是啥呢,就是dump就是获取里面的数据,然后呢杠C的意思就是什么。
这个好理解吧,杠C的意思是什么,钢铁是杠tables表杠,谁是杠列,就是获取把列username和password,从表里面的艾米效力给它当出来,好理解吧,然后刚有人说刚当奥奥钢就是钢欧。
把他所有东西拆,那个没必要啊,我是只关心账号密码来猜好,回车啊,回车,哎什么情况,刚才那个没有那个啊,就那个联名表明要把他等他拆完,那可能是要获取所有,我们大家猜一下吧,刚当不死是吧,对。
哪来个杠本SS,查下他那个语法啊,我都忘记这个这个写的语法了。
我看一下,因为他如果用重新拆的话,那个东西就比较麻烦一些,杠杠哦,杠T杠T杠D杠C嗯,杠杠二,所有东西刚T就表明联名杠C嘛。
还是C啊,没有问题啊,可能是刚才那个,不是没拆完,写到后面去是吧,然后呢这个就他说拆了去了啊,然后这里说有这个账号密码呢,什么这个有这个暴力破解的东西啊,问你是不是要采用默认的这个MD5呢。
对它进行这个知识点的拆解呃,什么东西我们就无所谓的啦,还有呢就是帮你去暴力破解那个密文啊,他有个那个MD5嘛啊,猜猜得出来就给你抛出来,猜不出来就停了,然然后这里呢他就把所有数据猜出来。
你看所以这个enemy把这个密码对是吧,他其实刚才询问操作呢,就是把那个问,你是不是要把那个密码来进行剖剖解啊,还有采用字典呢去帮你匹配那个MD5的碰撞,这个呢不是很重要啊。
因为你这个密码呢你自己拿去去解一样的啊,你看现在就猜出来了啊,这个就是我们说的那个AXSS的一个S格,map的一个使用方式啊,已经给大家说清楚了啊,好接下来呢我们再看这个MYSQL啊。
我们可以呢在网上呢再去给大家找这么一个呃。
案例呢去演示一下啊,你比如说像现在呢,我们就找一个这个这个测试站点,等下呢我们再用本地车啊,你比如说这个呢这个pp的这个测试的地方啊,这个珠加点,那我们在这里随便找一个这个测试的地方啊。
好这里呢就是来一个注入点啊。
好我们设置这里啊,一样的道理啊,Python smap杠PY,然后杠U加上目标地址进注入,先来看一下有没有出入,让他跑好,这里说直接跑出来有入点啊,那防止这个东西呢,我先把这个缓存给他删掉。
重新找它跑一下两个目录啊,他跑完之后他有个缓存在里好,他说呢一直看到他像这个MYSQL的,问你是不是也跳过啊,直接回车回车啊,基本大部分都是回车回车啊,除了一些意外的知识后呢,要自己设置一下哦。
他就帮你去测他的一些这个是哪个模式,下面的猪他在测啊,测完之后呢,他会给这个结果,然后呢我们再继续跑下面的一个东西,在MYSQL中呢,就和刚才那个access呢会有一些小微的差异。
这里呢就引入到不同数据库,在这个SMAP中的一个使用方式,他这里呢用到那个什么鬼,这个5。0那个什么时间上面那个忙租,还问你这个是否需要啊,用那个类似的忙租的这种东西呢,其实忙不忙租都无所谓啊。
然后你看啊我们之前的就是杠杠tables嘛是吧,Access gtables,你看他这里用GTABLES啊,来他又得到数据,你看这个数据有点莫名其妙了,什么莫名其妙。
information的ICUART是啥情况,这哪个是哪个是这样的啊,我们都知道在这个买SOHO猪中呢,它有不同的这个数据权限,用户普通权限,那就是自带一个information和自己管理的这个数据库。
如果是root的话,就有全部,所以他在租的时候呢,如果你直接杠个tables,他就是获取当前所有数据库下面的所有标明,就包括你自己管理的这个,似乎同时呢还有这个附带的一个微信,这个能理解吧。
所以一般在RMYSQL和其他数据库非access的话,都会有一部叫做杠杠CORENT杠dB,这句话啥意思呢,就是获取当前数据库名,看一下是什么,他说是ACTURT。
然后呢再到这里去杠杠table是杠D杠低什么database,告诉他我要获取这个库下面的表,所以他是这么个流程,它和access呢,因为它高了一等级,它里面呢还分数据库名字,access呢就是只拆表。
只有一那么一个东西,那MYSQL可能不一样,它可能有多个,所以我们先要获取当前的库名,然后呢去让他去猜下面的表名好,你看他就猜到了,是只显示这个,然后再从这个表里面选取你要猜的数据。
比如说我要猜users比较关键,那么接下来就是刚刚什么刚刚CUMN,然后S是吧,然后杠T指向表,为什么users对不对,回车以及指定好,你看是不是就猜到下面有雷姆和这个什么pass。
还your name这几个东西啊,好那接下来就是CHA数据,那么就是什么呢,然后比如说name和ax两个东西维持到哎,这里就出来了,那雷姆斯join me in,密码是test,这不就猜出来了。
并且在猜出来之后呢,它会保存到这个当前的这个注入目录里面。
这个dump文件会有一个这个啦,表明和你猜的这个对应的这个什么啊,数据库名和表明对应的一个表格。
然后呢将你猜的结果呢保存到这里。
啊如果说你要全部拆的话,那就是怎么样直接杠杠什么杠,dump杠欧啊,对不对,那这个呢就是属于把他所有东西呢,都给它剖下来,这个呢我们就不演示了啊,好这个就是买Sol那个那个猪,然后你看啊。
这个是MYSQL租,我们这里的演示的是一个普通权限,为什么叫普通权限呢,有一个参数叫做杠杠is e d a。
你是GBA啥意思啊,我们可以看一下这个上面的这个文章,他这里有一些列举常见的啊,当然以DBA呢就是获取是否为数据库管理员,当然呢你也可以看杠杠PRVITEGER,但是我更建议大家用用杠杠is dba。
为什么呢,因为你用这个权限呢不一定就说准确,他这个呢就是获取他的是这个数据库的名字,你比如说呢就是数据库用户嘛。
你看看我加上这个数据,他要获取这个租点他的一个权限,他说权限是什么,这个叫user you get,那就这个用户啊,他的权限是USAG1啊,这个你也看不懂,你也不知道是不是数据管理。
所以呢我建议大家用用这个好一点啊,已知DBA就看他是不是数据库管理员,这个是最好的,就是看他是不是高权限,意思就是说因为我们在做的时候呢,也跟他说过,你看他说了当前用户的is dba为force。
就是不是数据管理员,那么那就是告诉你,这是个普通用户权限,为什么这样说呢,因为我们知道我们前期在讲MYSQL租的时候呢,是区分是root性驻点还是非root性驻点,就是高权限和普通权限驻点的区别。
原因就是,因为高产型和普通注点呢,是能够有一些不同的差异的,普通用户呢只只能输入数据,而高产线呢是能够进行文件的读写,包括文件的写入等等一系列操作的,大家不知道还有没有印象啊,那么这个杠杆is dba。
那就是判断这个驻点是不是高强线,能理解吧。
那由于这个粘连呢,它不是高权限,所以我们高产线呢,就用我本地给他搭建了这个什么这个站点呢,给他演示,就是前几个呢上的,就拿这个来对它是个高权限的啊。
然后呢我们用它来给大家做一个测试啊,看着继续来输入我们当前本地的高权限的驻点,来给大家看一下,好先让他跑出租点来啊,我们就按照正常逻辑啊,先判断它有驻点,然后呢以此才是好进行下去。
其实呢就是说其实非这个ACACCESS斯的数据库,其他数据库那是流程的,是先判断权限在后面再做操作的,因为流程是权限越高,我们选择性就多,如果权限不高呢,才是拆解数据,最后一步的拆解数据。
如果说能做其他的操作的话,那就直接用其他操作了,我不知道大家理不理解啊,哎哦哦这里差点忘记了啊,我把它加了过滤。
这是为讲那个模块的时候啊,我先把它还原出来,好还原成以前的啊啊他没跑输入点,因为我加了过滤啊,过滤是会讲后面那个tm tm a pr模块。
现在还要回归正常。
好这里呢就已经跑出来了,就这个结果,那你可以对比下来,正是有入点的啊,刚才我跑的呢这种呢报错了,但是没有入点就检测不出来,那这个是有驻点,然后呢你看啊,我们刚刚就是DBA,你看他是什么情况啊。
D b a,你这他妈的怎么你也显示为force啊啊什么鬼啊,你妹的。
来换一下那个那个东西,再查一下。
把这个权限查一下啊,你看这个这个呢显示权限呢里面有几个用户,如果是low host的呢,里面有所有权限的,这是权限的信息,你看呃我们这里呢看一下啊,直接看什么啊。
刚刚user也不是不是刚刚user是刚刚那个cu啊,这里呢有这个参数呢,就是看见当前用户啊,就看一下当前用户呢,刚刚这个刚db3是数据库名,当前用户是谁,看是root to cost。
啊root log host,那他的刚刚的意思,DBA呢他说我不是数据管理员,这也不知道啥情况,所有的呢这些上面包的东西呢也不一定可信啊,其实他私的啊,它显示个force,这我真是没办法好无所谓了啊。
那么接下来呢我们知道这个是root了,并且呢刚才通过权限查看呢,root呢它的这个权限是非常高的,那就有这么多权限,那全新的对应的,这是要比如说删除删除什么这个file文件的,什么鬼。
京城的重新载入的什么snack的修man,各种各样数据库的权限都有啊,那现在呢我就用由于有这个高权限之后呢,我们就可以进行一些文件的读写和命令的执行。
等等一些操作,那具体有哪些呢,我们就给他演示一下啊,那你可以看一下上面的东西啊,比如说像在哪呢,我们就可以用到什么呃,这个刚刚什么,刚刚这个circle circle就是执行SQL命令的。
那我们就给演示一下啊,来杠杠circle,杠circle,当SQL搞下就回显示的,那你看啊,我现在呢就可以在这里那执行SQL命令啊,比如说我执行一个base哎,5。7。6是吧,我还可以进行一个查询。
比如说我查询幸福enemy啊,你们就先先先看下啊,我查询修database有哪些啊,打错了,哦他这里执行之后呢,没有结果啊,没有结果不要紧啊,我们继续来修TLES,看一下还有没有也没有结果。
这个结果呢他说没有显示,那不一定代表没有结果,我们看一下,观察一下他这个什么里面东西的,你们这里有没有保存,来看看这里啊,哎不不是这个站,是这个呃,194的这个呢好这里也没有保存,没有保存就算了啊。
那就可能是要查询其他命令啊,比如说这个能不能查在修里面知道有几个表呢,你看一下我能不能直接查到艾米呀,哎查你看是不是能直接死传命令,你看查询到snack for admin,把里面的数据是不是查出来了。
是在线执行SQL命令呀,那还用等同于你在上面去注入,干嘛呢,直接用SL命令帮你查你想要的东西,不就完了吗,是吧好,这个是它的一种功能啊,我们把它推出一下,然后呢这是SQL命令的一个在线功能。
同时呢还有什么文件读取和写入操作。
我们前期在高权限里面是不是也有这个功能呢,这文件读取note file i note file比nod file比作来读取,读取呢,当前电脑盘符的D盘,下面的这个是B1点T2T1。
读取一下fight rider去读取,然后呢回车好,他说读取了,保存到这个下面来了,我们来看一下里面有没有来保存files。
那D点点击打开诶,这不就是读取的文件吗,内容帮我这展出来。
把它读取的保存到这里来了,诶,文件读取,那么还能进行文件的写入呢,也是可以的好吧,那文件写入是怎么操作的呢,这里呢就是fright那写入的文件写进去,比如说我要把D盘。
当前电脑的D盘一点TT写入到felt,带什么迪斯科,截到堆方盘附的C盘123点点一,这句话意思呢在这里呢有显示啊。
写入本地文件,将本地文件的test文件写到目标目录的这个什么,这个目录,我这边由于两个东西都呃。
都是在同一个电脑上面啊,就是模拟这个攻击者和客户端,就说一个D盘呢是我本地的文件,然后呢写到目标服务器的C盘文件,那其实都是我这台电脑嘛。
所以这个大家看一下就可以啊,你比如说在C盘呢,现在是吧,没有123点TXT,那我这里呢随着这个操作一下,是不是就把D盘的疑点天就写到这来了,并且内容呢保持一致,我们呢在这个D盘一的限制啊,先改一下内容。
内容呢我们就改成123保存,然后呢,我们看一下,是不是将这个一点线线段会写到深海区啊,通过这个组点我们来观察一下回车,大家看到没,123写进去了是吧,来打开一看。
是不是就是其中就有这个诶,写的内容呢有点差异啊,变成什么31331东西啊,这个可能是他写的那个精子的问题啊。
精子精子发生更改,但是无所谓的啊,你换一下那个金子就行呐。
这个就写了啊啊这个就是写入这个文件啊。
写入文件还有呢执行命令还能执行命令吗,我们来试验一下是不是可以执行命令啊,这是高权限就能做的事情就很多了。
那比如说这个刚刚OS刚什么SV啊,一种呢就是子时线条命令。
还有一种呢就是交互式执行,我们来选择交互执行或者子执行命令,我们比如说指定下命令,刚刚semi等于什么VR命令,VR命令呢,就是我们颠倒的这个什么CD来看一下啊。
V1哈,就这个命令嘛是吧,就这个值啊。
你这个东西,或者说我就执行个这个CLOC是吧,等于这个计算器的把弹出来执行一下,看下行不行啊,他就问你说这个是哪个语言,默认是pp,我们就选择回车就是pp,然后他是一个路径。
就是执行命令呢它需要有一个路径啊,有个网站的绝对路径好,这里呢,唉你看计算器弹出来了,这个路径呢是他自己帮我这个搞出来的吧,自己帮我把搞出来的,比如说你搞不出来的话,你就他就会提示你。
让你自己输入一个网格的绝对路径,这里呢需要路径啊,执行命令,那需要路径啊,对不对,那这个计算器弹出来啊,啊这个呢是直接一次,然后如果是交互式的句话,就是勾杠OS杠项来回车交互式啊,然后呢依次选择回车。
就是四默认的pp的脚本路径呢,他把我自己包不出来了,这个路径看,就是他通过在报出页面的搜集到了啊,啊如果说你不知道路径的话,你就找个路径上再把它自定义下载上去也行啊,那你看这里呢。
就是一个像我们看一下我自己名下非二来看,执行了IP场地,可,是吧,IPCONFIER管你,对不对,来是吧,他这个那就是一个就说你用高长线的话,那么就可以做这些事情,能理解吧,好我把它退出一下啊。
好这个呢就是说从他的这个上面呢可以看到啊,高权限呢就能做文件的操作,并且呢后面还有什么这个注册表的读取,但是由于这个也不是很重要啊,因为你执行民警的这个读不注出表,也无所谓了啊。
还有这个什么鬼命令执行啊,文件读写呀,包括这个SQL语句,在线执行这三个功能都能实现是吧,然后这是这个网站,那么呃这个网站是因为它有这个什么高权限,他是个dB dB用户,就是我们说的这个DBA啊。
a root权限注点,你看啊他去租的时候,这个dB啊,刚刚什么DBS就获取他所有的字库的时候啊,他只能把所有用性都列出来,你看这是root姓名的所有驻点,那所有的这个DBS有这么多。
我们刚才哪一个哪一个主点。
那就是这个这个网站注点,对不对,那就不一样了,我们来理一下,这个网站入点呢,你刚DBS你看下就获下所有的库,你看只有两个,为什么,因为他是普通型注入点,就只有一个自带的,还有一个什么当前管理的。
而我这里那本地的就是路径驻点就所有都有,所以在root型驻点的时候呢,你刚刚table是回车,那么就把所有东西都拿出来,你看每一个库都全部帮你猜出来,让每一个库都都都全部猜出来,这就很烦躁。
所以呢你就要注意它的流程呢,就是先进行了之后,刚刚dB获取当前的库名啊,告诉你是多么拟,然后呢就是刚刚什么tables获取它的表,然后告诉他只讲这个数据库名为demo一个不要拆,其他去了。
英文就类似于跨库组的意思,这就差了其他数据不去了,能理解吧,然后呢意思再乘A的幂,那就是接下来就是之前那个模式是一模一样的,啦是吧,让其指向它的表为2米,谁指向USLIM和password,对不对。
那么意思呢就把数据拆出来了啊,这个呢就是有高权限,就有这个文件操作类的,而你如果说像刚才那个驻点,它不是高权限是吧,在这里我们来进行什么,刚刚这个呃OS杠像就是这种命令行模式的,你看啊,你看他。
那他就不行,直接提示弹出来都不让你执行了,告诉note7不行是吧,还有刚刚什么这个fell读取文件的是吧,要读取文件的是吧,我让他读取这个这三目录嘛,我让他读取这个文件目录,那就这个地址,然后进去。
哎他读取了个叉结束了,然后他就说帮我保存到这里来了,那我们打开看一下能不能读到文件,这个网站的是吧,else那里面就一个叉,啥都没有。
这他妈哪是哪个文件呢,错的呀,五包啊是吧,所以说为什么刚才那个网站他读不到权限过低。
命令也不能执行,刚才也看了,直接报错,所以说这个SMAP呢,它和我们常规之前讲的那个珠点呢,是一模一样的情况,它是分高权限和低权限的,access斯呢没有这个东西,那你可能说其他数据库和其他数据库。
也和MYSQL一样,也分高权限和低权限啊,大部分都这情况啊,所以大家要知道啊,在高权限和低权限呢是有区分的,所以为什么在这个数据库租的时候呢,我们有的前面几步就是什么,这刚刚一直DBA啊。
刚刚这个权限了是吧,然后再利用这个文件读写。
因为这些文件读写和命令呢,全部是要建立在一个权限允许的情况下面,如果说权限不允许,你就不用去想这个东西了啊,因为这个东西呢可以直截了当的拿到网站权限,就比那个拆数据呢要简单多了。
拆数据呢可能只是有数据上的东西,其他东西呢我们是做不了任何事情的,但这个文件读写呢和mini执行,那就能做很多事情啊,就和服务器相关的,就不单单是网站了啊,好那这个呢是我们这个常规类的注入。
这个常规类注入呢,就是从access斯引入到支点的使用,从MYSQL那引入到他的这个高权限的玩法,文件读写和命令执行的一些相关的参数,对不对好,那么接下来我们再来看我们在租的时候呢,还学习过什么呀。
这个提交方法,post呀这种东西,那这种租入该怎么租呢,很简单的道理,你比如说像现在啊,我们就找一个主点给大家看一下啊,比如说这里啊他有个登录的这个地方,来这里有个登录的地方。
但这里呢有这个账号密码是吧,来进行这个提交,那么这是他的地址,我们给他看一下啊,来这是他登录的这个点是吧,这里呢有驻点,那网址呢是怎么写的,就这个呢叫user info是吧。
我直接把这个用字服务拿到这里注入他行吗,肯定是不行,有些人学完注入连这一点他都不知道,所以说等于白学啊。
有的人就是把这个知识点放进去,执行I也执行是吧,有没有驻点呢,对不对,直接报错,说没有驻点提示,什么low pp什么没有参数,啥意思啊,因为这上面没有参数啊,怎么办呢。
你说这里有入列,那是啥情况呢,因为他是post注入post入参数,它不在这里。
他在哪里呀,通过抓包分析一下,来点击提交抓到这个登录的数据包请求,这里这是在请求的这个地址,我们把请求头呢大家看一下,来请求post user name,请求数据是test和test。
我们可以把这个复制一下,然后怎么办呢,告诉它参数在后面,但是这不是get行为。
get行为,那是在后面这样去写,对不对,那这里是post的数据包,就是刚刚date的告诉他我采用post注入,把参数写进去回车,这里呢就是用post去检测这个入点,这是我们前面商到过的。
等同于在post注入那里去提交注入参数,一样能理解吧,来回车啊,那么这里呢就是告诉这个网站,我采用post进行注入,那他后婚礼是不是采用post进行出入啊,是的,那么继续拆,对不对,那我就等一下啊。
然后如果说你要省时的话,你可以在这个租的时候呢,那已经抛出租点了啊,你跑出出点,看你跑出来了是吧,后面呢我们就不说了啊,这是个LINUX的乌班图系统,MYSQL数据库,这是他的版本和这个中间间啊。
这个信息啊已经跑出来了,我们后面那什么要继续什么杠杠tables啊,这种东西那我们写不写就无所谓了,因为已经拆了一遍了啊,啊这个东西我们就不拆了啊,我们可以看一下结果,就看你看他正在拆了。
那我们就不管他了,暂停了啊,你要拆完。
他不能会显示好,那是这个post注入,那这个post注入呢是这么一个玩法,那么还有什么啊,还有cookie注入,就刚刚data杠cookie,那么如果说其他的呢像文件投注呢。
文件头注入就是要用到gr参数,就是我说请求完整数据包参数,啥意思啊,来我们都知道啊,来我把它先来写一下啊,先把这个数据包拿出来。
这是他整个数据包啊,我们把它先复制出来,哎,复制这个请求标头啊,这是他整个数据包对吧,然后你看啊,呃这里呢我们请求了这个数据海啊,这是他请求那个数据包啊,在这里,那么现在呢大家观察一下啊。
我们刚才呢就是说告诉这个东西杠data,那它就在这里注入是吧,如果说这个里面呢其中呢还有一个点驻点呢,不在这个里面,在这个什么这个里面呐,或这个里面呢这个里面那个怎么办呢。
刚刚cookie呢是在这里注入,刚刚TURDATA,那就是刚在这个post提交数据中点,那还有这么多是吧,这其他人该怎么办呢,所以如果说你要注入其他的地方的话,那我怎么办呢。
就可以把整个数据包把它写下来保存一下,是保存到这个西格玛布的目录下面去,他在当前这个目录下面去,然后随便取个名字,就叫这个get handle,点TIP包存进去,然后呢,接下来怎么租它呢。
你看啊就是Python是吧,这个map杠U杠二啊,就读杠U了,杠U是地址,杠R告诉他hand,就告诉他对hand的进行注入,然后呢如果说你直接这样写的话,他又会有个问题,什么问题呢。
就是他不知道住哪里,所以他就会所有东西都尝试注入,这个呢就时间很慢了,因为他不知道注入哪个地方,就说是在这个上面注入呢。
还是在这个下面输入呢,还是注入这个UV啊,还是注入其他的,比如说我们现在就告诉他在这个下面输入,就可以在这后面呢写上个星号,那么写信号的就是在pass后面注入啊,如果说你要在这个u name上面注入。
就写这里,如果两个都注入都写下来,这意思呢,就是说告诉他,我是要在这个数据包里面的信号啊,告诉他是在这里注入,而且呢你用这个数据包去发送注入,因为我说过啊,它只有这里有驻点,不是说在这里有驻点啊。
所以我测的时候如果说这里有驻点的话啊,他有什么呢,写着来啊,写个信号,那么就告诉这个数据包啊,在这里注入好,这样写之后呢,你看他也是能够注入的是吧,他就会询问你啊,来是否用这个猪在这个新号这里发现。
在post data里面问你是不是要在这里开始啊,啊我们就开始啊,诶他就开始尝试呢,对他进行阻导,对他就在那个地方就输入,你看,这个呢就是采用数据包注入,这个数据包注入,是我推荐给大家使用的一种方式。
这个是为什么呢,因为大家知道啊,我举个很简单的例子,用这个杠杠data或杠杠cookie呢。
不是大家给他推荐的,虽然它简单方便,也不需要保存数据库,直接告诉他在这里,但是有个问题就是数据包的完整性,这个完整性在前期我们基础课程里面。
为什么要讲,或者说这个要之前给他讲,就是为了有一些思路上面要理解啥意思啊,来我们来思考一个问题啊,啥意思呢,来这个数据包是我们访问网站数据包。
这个我数据包是一个什么,我们举个很简单的例子啊,那假如说现在啊这个一个网站啊,智能这个什么手机访问,大家应该也碰到过这类网站,有些网站呢就是手机设备才能访问,电脑还访问不了,看不了,或者说电脑能访问。
手机不能访问,也有是吧,有这种类似网站的呀,那么就很简单,按这个访问,那假如说上面呢有这个什么有个凸点啊,有个驻点,那么很简单的道理啊,如果不是通过这个什么抓包得到的,这个请求的注入点数据包去输入法。
那么这个SMAP呢就会啊采用,就会采用是吧,自己的这个什么访问口去访问读这里,那就会出现一个问题,可能访问不到,那是访问不到了,还怎么输入啊,那句话一说大家就理解了,这是为什么说。
建议大家用数据包这种钢R模式的这种跑法,去租,这种基于这个数据包里面的,各个地方的一个驻点。
那为什么要在这里进行注入,就这个原因,那就是说我刚才呢刚R点开的TT,告诉他在这里注入,也是post注入是吧,也等同于POS入,还有刚才的是吧,这个刚刚,那就是刚刚data这种的解释。
但这两个是有区别的,区别就在于啊,利用这种方式就会采用set up自身的这个文件头,就是在代码中写好的文件的去访问,那么如果说你用刚才我给大家说的,这种钢马R模式呐。
那么就是采用我们这里固定好的文件头去访问。
那这两个有什么区别呢,很简单的道理,这个是你自己访问,确定能够访问到的数据包抓下来的,而如果说他用SYNMAP自己访问的,那就有可能访问不到,为什么呢,就我刚才说的个例子嘛。
有些网站它就是要看这个文件头的,就像我们写开发代码写了个爬虫一样,他必须要那个头才能访问到是吧,不是说哎你访问就能访问到,是这样的啊,它有一些文件头上面的一些识别,它通过一些识别。
再来帮你一些设备来选择性的访问,有些代码它能做成这自作用,所以啊有些注入点的时候啊,尽量大家要用这个数据,就说如果是数据包里面的一些注入点的话,不只是说这个地址上面那些参数注入点的话。
是这个数据包里面的某一个的话,尽量呢用数据包的这个文件去提交注入,这样子呢是确保不会受到这个不能访问的影响,而造成的是吧,说没有驻点,其实是访问不到所造成的,能不能理解啊,能不能理解。
而且呢这个请求头呢还有个好处,就是很简单的道理,那比如说像现在啊,我们这里呢不是还之前呢有一个这个驻点吗。
这个叫四点破,然后这里有个GSN的这个这个点是吧,这里有个这个驻点。
你看啊,如果说我用这个东西呢去租它对吧,我敲出点啊。
我抓个包,啊提交啊,来把这个驻点拿下来,这是他驻点啊,然后请求地址是这个地址,我们把它复制一下,让他去对它进行注入,等下啊,DSN的啊,杠U第一次讲序,什么情况,粘贴的不容粘贴哪。
你妹要写这个提交地址啊,然后刚刚date啊,你看我就按照这种模式呢,我把它写上去的,你看这里就有些问题了啊,那这个符号问题我就需要写单引号了,因为里面是双引号,就不要搞混淆了啊,啊注入是吧。
你看他直接告诉你说这个什么鬼,没有参数啥情况,就是因为这里呢它本身里面是双引号是吧,你这里呢有搞个双引号诶,他也不知道说算法里面写的对不对,那他又报了,你要么就说这里面搞个单引号了。
因为它要它识别的是双引号,你就不能强行把它改成单引号,所以说啊你就要改里面你的参数为单引号,那你这样一改呢,说实话啊,可能呢驻点就就此就没有了,暂时呢也可能不应影响,这也不知道我们来看他能不能注入。
对不对,你看他就说呢包破不了,租不了,他说这个什么post,这个健身东西呢不像是入点,注入不了啥情况,为什么呀,为什么注入不了啊,因为啊你把它格式改变了,你把它格式改变了,这是个JSON的。
你这杠date的把它弄字不穿了,他这个注入点呢是这样写的,能理解吗,我为什么前面讲JSON在这个注入工具里面,你不把这个原理搞清楚,这个工具为什么注入不了,你原因就不明白,那碰到这个问题咋解决啊。
那我就拿出来来看看看一下,这明明有驻点,为什么用这个东西它做不了啊,来我们看一下啊,这是个GSN的数据输入库啊,我们来看分析的,那为什么用这个驻点它注入不了啊,来大家看一下为什么。
那前面我们去写那个驻点的时候,我们可以把语法拿出来,那个驻点的时候,嗯那个驻点在哪去了,好在这里啊,这是之前那个驻点的啊,唉还有他的啊,这个说可以啊,这个呢他可以尝试啊,正常登录是吧啊。
这个呢他为什么不行,这个很简单,一个就是用JS问的问题,但是为什么JS问会影响他呢,这个不行啊,就是有速度,为什么不能明白简单道理啊,啊不是你们说的这个什么卡普啊,这个东西你继续加上去也可能报错。
主要原因是什么,来他这里写进去了,那么你想一下他的注入点是怎么写的,当他的驻点去这样做的时候,那么等同于啊我们待会分析啊,我后面会教大家怎么分析一些点的时候啊,会讲的啊,很简单的,他注点可能是会这样写。
这三字上面写输入点啊,就是哈去租的这个大概写啊,你就思考一下,就是分析一下啊,大概写是吧,这样写,那么这里呢他这个呢也是一样道理,他就会这样去写,那这一写那不就GG了吗,为什么呀。
数据接受的是这两个间名下面的值,是要把这个驻点呢写到这个里面才正确的呀,你这写到外面去了,这啥啥情况接都接触不到了,那还租了个毛拥有接收到92米的米,啥都不会编了,理解了吧,是不是好,那你可以说。
那我怎么让他明白写到这里面呢,他明白个啥呀,你写的东西就是个字符串,他哪知道啊,所以最好的方式,那你说那我能不能搞个JS格式呢,那你看一下啊,原本JS格式是怎么写的呀。
是这样写的呀,那福字也不好复制啊,那怎么办呢,加个星号啊是吧,加个星号看一下行不行啊,就告诉他是在这里啊,比如说在这里password这里还是username,这里啊,我们就写个这里,比如写在这里啊。
告诉他在这里哎,我不是,在这里来打印好这里啊,看行不行啊,再让它跑一下猪猪看一下行不行啊,唉还是不行还是不行,你说这尴不尴尬,JS都跑不出来了吗,难道是,所以最好的方式就是我说的。
就是把他整个的这个包啊给他拿出来,就是你可能改着改着呢,他总归就是有问题啊,终归就有问题,所以呢我们就没再创建一个包是吧,把这个数据给它拿出来哈,嗯写着这来啊对吧,来告诉他在这里或者在这里录入都行。
保存名字叫做第二个N点cad没错,Set up,杠up点on,然后他通过这个数据包帮我跑一下,那这里基本上不用看了啊,注入点基本要出来了,那是吧,驻点出来,你看他就是老老实实驻点就在这后面写了,你看啊。
这他租了PLOAD呀,可以看到他租点,就是按照我们正常的那个要求去写了呀,你刚才那个就不行呀,所以说我为什么说推荐大家用这个gr模式,就是因为那你即使用这些东西呢。
啊你用好了也会有些意想不到的一些问题啊,还有可能是有租入,它就没注入,也不知道是啥情况造成的,明白了吧,好,这个呢就是我们说的基于这个头部和请求方法,上面的一些玩法,基于SMAP的玩法好。
那紧接着呢我们再来看这个TAM脚本,这个是什么东西啊,其实往前几期20年的公开课就讲过。
现在还要我讲是吧,这其实很这很基础内容啊。
我们来跟他说一下,然后呢这个东西它其实非常简单啊,这是干嘛的啊,我们先用个例子呢给他先开文啊,然后呢大家知道了,前期呢我们给大家写过那个费斯缪斯的。
那个什么那个猪的那个代码啊,然后呢我们先来尝试一下啊。
用这个贝斯六四呢啊去进行注入啊,这是他贝斯六四点啊。
这是租点,那我们呢去注入它啊,看着啊,Python然后呢在做之前,我先把这几个鸟毛缓存给它删掉,避免它受影响啊,诶,这里先把这个几个测试的这个网站那个删掉,好现在呢来对它进行注入,将U嗯写上去好看啊。
让它注入,看能不能注入出来啊,那他这里提示说啊,test这个id呀,可能是一个注入,好看到这里呢有些人说哎呀问了问了啊,好我们继续往下啊,他只是先判断他可不可能,然后后面呢取通过PLOAD测试之后。
才给出一个最终结果啊,我跟你讲啊,我这一科的思科map你在网上的参考很多文章,我一刻帮你总结了,你把我这一课学好,你可以直接不用看网和SMAP的文章了啊,我把能用的好用的都介绍了。
没讲到的都是些用的很少的,或者说没什么用的,这比你自己呢在网上去看那些文章,看这种工具的使用要简单很多,像我是经常给大家讲课的时候呢,我就经常想起我以前读书的时候是吧,我读书的时候呢老去想是吧。
这个老师讲的和我自己在网啊,在外面去买一些这种工具书啊,辅导类的书,感觉都是一样,为什么你没的,我看工具书就没有那些认真听讲的一些,这个同学成绩好呢,我当时老有这种差脑,有这种想法。
后面我自己呢去当老师去给他讲课,我就发现是什么原因,就是因为网上看的书也好,文章也好啊,他永远都是只是搞全,他不会跟你说的哪些东西用的多,或者说哪些东西他重点讲不重点讲,你都不知道。
所以你看的多不代表你在实战中,那就好,因为你学到太多无用的知识,或者说看到太多东西没有什么卵用,但是像我自己讲的,就是因为我自己经历过这些东西啊,我知道哪些该东西该把握,都是还是要听讲啊。
这就像我们之前是吧自己上学一样啊,看工具书和听老师讲的这个差异就在这里。
有些人总觉得说这个是吧,讲的网上一查就回来啊,怎么样啊,但是不然啊,还能帮你省去很多路,你自己碰到的时候,你查工具不漏,一个人给你讲,可能自己摸不摸索,半天一天都摸不出来,但是有人一讲呢。
可能一个小时半个小时就搞清楚了,你看这个点呢,刚开始认为我这个id是注解,但是现在啊你看就没有驻点,啥情况,为什么呀,因为这个驻点是个贝斯求斯的这个编码重点,他要注入是必须对这个组织参数进行编码。
才能进行注入的,前期讲过吧,有印象吧,所以他注入不出来,原因很简单,他哪里知道这是编码呀,它的注入就是很简单,就在后面呢依次去敲他的驻点,那你敲多少有用吗,没有用啊,因为你敲多少它不识别呀。
它有个解码操作啊,这个是个编码的一个那个驻点啊,怎么办呢,是不是就需要告诉这个SN码普。
我要让子后面进行编码。
要告诉他呀,他才知道啊,你不告诉他,他只咋知道呢,那么告诉他该怎么告诉他呢,对不对,那么在sk map的内置,有一个模块叫做TAMPR模块,前面讲的data模块是一些知识点和plow的设置。
然后这里那个模块TM就在这个目录下面,目录下面呢有一些自带的这么多东西,这个是大工具自带的,那么这工具自带的有哪一些呢。
我们先来观察观关注下啊,诶那个文章呢在这里啊,然后自带的呢你可以查看这个表表啊,这个表呢有一张表单,指每一个东西的一个表啦,你比如说这里有很多表,这自带的啊,叶长自自带的解释。
就是每一个脚本对应什么意思,其中呢有个叫什么贝斯缪斯EOT,就什么用base news编码替换诶,那就刚好和我们这个满足了是吧,那刚好我们要说那个租点呢,租的那个代码呢形成这个base6编码去输入。
所以我就用到这个模块,好用这个模块呢它的名字叫什么呢。
我给你找一下呢,在他mod moon里面,打是不是这个啦,Best ecode,对不对,选中它呀,然后呢进行注入怎么操作它呢,告诉他TMPR我要用到模块等于谁呢,把名字一搞过来就行了啊,把名字搞过来。
他也会自己呢用到它好点,PY和补点DY都行,他都知道回车,你看现在在帮再帮我检测,那么现在呢他就说载入了这个什么TV模块,那么意思就是说它即将用到这个模块,对它进行注入,好我们现在再看主点啊。
看是不是就能租出来了啊,因为那个驻点呢它需要编码注入,而你直接使用他不知道,所以我们这里要用到一个它的里面,一个模块是吧,编码让他帮我跑,好这里那就等一下啊。
那就这个点的嘛啊嗯就我们这个结束呢,这里有个解码,你不把编码解码不行啊,你看回车了,看到没,这个刚才就是出来了吗,这能注入了呀,对不对,你看搞个a abs没问题了呀,出来了,出来了,后面就能输入来。
是不是,那这个是实用,有些人说了,我要你加开发,交个实用,有个鸟毛好开发,永远有些人不知道,前几天还有人问我说哎呀,我看到别人那个刷什么一滴U,搞了个TMP模块是吧,嘎嘎乱刷,你要知道啊。
难的不是说这个模块的编写,难的是你自己研究出来的脑壳方案,开发就那么简单,就几行的Python代码有什么难的呀,这个SMAP他是用Python开发的Python开发,你该说我没有教是吧,但是我跟你讲啊。
他那个写代码那个东西呢,把那模块模板1copy,无非就是字符串的处理,啥代码都没有,我们后期呢会讲这个Python开发写脚本,对不对,你需要哪个,你再开发,那简单就是简,那就是绰绰有余啊。
你那个爬虫网络开发的一些库都会用啊,你还不会搞这种植物串处理,无非就是什么替换啊,删除啊这种东西好,我们现在这个给大家看个例子啊,你看着啊,我现在就来说从这个就假设这里有个WAF。
或者说有个这个拦截的这个代码,你看啊,我把它写上去,这是什么个拦截代码,大家看一下啊,来,snack过滤这个什么snack把过滤为空啊,然后在这里输入代码,那这个代码写上去了啊。
new new的pp里面我把它写上去啊,现在呢我们来看一下,优点pp,是吧,你看啊,这是我们的这个注入代码是吧,我这里呢写的吧。
snack看啊,我写snack写上去没有用的,输出代码没用是吧,然后我u n I/O n snack是吧,其前面租点,那是不是前面写的是一个一写上去的,你看SQL语句时那个自动没有了,变成UNIN空了。
1123facing,啥情况,为什么,因为我写了过滤代码,我把接收到的snack把过滤为空了。
把sleep也过滤为空了,把ERT也过滤空了,安德也过滤空了,OR也过滤空了,XOR也过滤为空了,就全部给你清除掉了,对不对,写了这个什么一个过滤在这里面好,那写了这个过滤,我们再用这个SMAP去跑它。
对不对,我再用这个3buff去跑,我这个驻点看能不能跑出来啊。
我是刚好写的,就是说又能绕过呢,又让西格玛P呢跑不出来,你可能说那不能绕过,那不能捞波,那三发布也不是神呐。
他也不行呀,这个TMP这个模块呢,是基于你研究出高个方案之后呢,再写的这个代码,让他绕过即时到里面,并不是说哎他有他有拦截,你就能用S格玛不了,我不是这样的啊,你不要搞错了啊,所以它难点是怎么绕过。
是你通过你自己前期的分析,发现这个东西能绕过来,然后再把这个绕过,这个思路呢用代码帮你去实现,让SMAP融入进去,去注入,是这么一个流程啊,不是说用这个TMP模块呢,就是嘎嘎乱刀啊。
不是你想的啊。
好我们看一下这里啊,这个1。4我先把它删掉啊,防止它有缓存是吧,删掉之后我们继续注入啊,你看啊,现在我加了过滤,我让他注入,前面我没有加过滤,大家都知道前面演示过他是能够租出来的,现在我加了过滤啊。
就是我加了一些过滤,我让sk Buff帮我去租入是吧,现在就说我啥都没加,然后直接帮我跑,也没注点,来跑不出来了吧,肯定跑不出来,那个怎么可能跑出来的,对不对,然后呢通过我们的自己测试呢。
我发现呐诶他是好像是把它过滤为空了是吧,我就采用方案,那怎么写他的这个脚本写法呢,很简单啊,大家看着啊,你随便打开几个他的模板,1copy Ctrl加CCTRL加V就能写了啊,告诉大家怎么写啊。
来看着啊,来直接把这个完整代码1copy,创建一个文件是吧,创建一个Python的脚本,那CTRL加VCTRL那个写,然后这蛛丝这蛛丝要不要都无所谓啊,哎然后这里是引用这个模块。
由于我不用被什么是我爸去掉,用用模块,这个是Python开发代码嘛哈然后这里是TMP对不对,要返回这个什么鬼东西,这里呢都是可以直接把省略的,直接就可以简写,是什么呢,就按照这个模块写啊,然后呢你看啊。
就这么写啊,看着啊,哎这怎么把这个挖出来了,这也是蛛丝啊,这个要不要都无所谓啊,这是注释,就说告诉这个模块大概一个用法来怎么写了,就写个什么,这里有参数嘛,如果只在固定写法,只在固定那个东西。
如果PLOAD,那我怎么办啊,然后直接生命的payload等于什么payload点reprice,啊等一下啊,这个鸟毛,这个Python代码,等一下我把它搞成那个写个名字叫做这个摆pass。
哎呀这个鸟毛,这没有那个帮助我写的还有点尴尬,我还是用那个,专业的开发工具打开吧,没提示,其实没提示,我也能写,只说我让大家看的更清楚一点啊。
那个reprice谁不说写,那也不写,很复杂代码。
那我还是用这个专业的那个啊,这个vs code我没有装那个那个那个东西啊,那放这边吧,哎他这个诗真是呃真是没有,他这个是真实没有啊,不是这个id的问题啊,也不是那个问题,就他这个代码呢。
由于它是和其他代码有点不一样,它是有个模板,它是有个模板啊,因为模板那你就按照这个模型去写就完事了,就是reprice,那就是替换那个替换那个什么东西的,然后怎么样呢,前提他是把snack呢。
把它替换成什么什么东西啊,然后呢后面继续啊,就是写这种各种各样的东西,写多么几行啊,然后他这里呢有snack的,它过滤什么OR是吧,过滤这些东西过了什么,and under还过滤这个草物啊。
还过滤什么药理啊,这关键字是吧,我就把意思写进去啊,那写大写啊,因为它这个色up里面是大写,我就把替换成啊E啊,ECT是吧,大小也替换绕过的啊,因为它过滤的是这个没有考虑大小写啊,只考虑大写和小写。
没有考虑这中间的大小写啊,这是我研究出来方案啊,这个怎么研究不是重点啊,是你自己研究的,我们就替换一下是吧,嗯ANDLE要把它替换成哎嗯对不对,插入啊,把替换成好O啊,求自自己呢。
把这个东西啊啊替换成这个大小写啊,你搞一下就可以了,哎这个写完之后呢,就直接怎么样return啊,返回PLOAD,就可以了,这个东西就写好了啊,就写好了,就前面是固定的。
然后呢这个payload就是那租的payload,就是run它的,这个payload,就是其实就是S格玛不识别的那个攻击语,让这payload呢在租的时候呢,就把这个snake再替换成这种啊。
OR的替换成这种啊这种去写法去绕,因为我们这个过滤里面,那是只过滤小写和过滤大写,对不对,我没有过滤这种大小写组合的这种情况,所以呢我就把这个关键词呢啊搞大小组合,那就不识别不到了是吧。
这我们自己随便写这个防护方案,那你可能说那不是在防护,你这防护里面是随随便便就绕过了,那我那我里面不是这种啊,我很难的呀,你要知道我们说的是它的使用和开发,不是教你怎么去绕过它,绕过它是黑河里面。
你要不断的测,那需要花时间,能绕都不一定能能不能绕,都不一定,你研究出来了就好办了,研究不出来就不行,所以它的难点是绕过,有很多人说哎TMT怎么写怎么写,难点不是怎么写。
是怎么把那个绕过那个东西研究出来,那写哪不会写,那就几行代码,谁不会写呀,无非就是把支付的进行替换呢,删除啊,加什么东西进去干扰,那你要说那我怎么绕呢,绕过那是要学那种类似的一些那种啊。
后面讲了一些WAF的一些那种课程,对不对,那和这个不相干的,你要不不要搞错敌方啊,你只要把这东西搞清楚,你发现哪里难的,难是难的,和你想的一点都不一样是吧,你的你只要写上去是吧,这里叫,哎写哪里去了。
你妹的好,IPASS里面啊,写进去了,好写好之后呢就完了啊,写好之后就完了。
然后你看啊,现在我再给你注入,看着啊,像MV一样,PAPASS写进去,告诉他,我用PAPASS就会引用我刚才写的这个规则。
就放在那个目录嘛。
那就是这里嘛是吧,是刚才写的呢,放在这里,对不对,哎,啥情况,这里面没保存进去啊,咋还不眼里面的,bypass文件叫新啊,好写进去了啊,好了,现在啊试一下了啊,看一下能不能行了啊,把规则写进去了。
哎看看能不能出热啊,嗯刚才是不能租入的啊,现在我们用了这个自己写这个规则之后呢,再去这个它啊,至于这个规则怎么把研究出来的,这是我们自己呢在测试这种黑盒点的时候呢,通过观察和一些关键字的返回来判断啊。
来测的这个过程才是最难的,并不是说写这个东西南啊,因为你研究不出来,绕过规则的话,你就你就没有下一步,等一下啊,这卡了。
然后呢等一下我们通过这个点呢,还要给他引入另外一个点,另外一个知识非常有用啊,看到没,结果出来了啊,来能注入吧,没问题吧,对不对,刚才不能注入,现在能注入啊,你可能说什么情况呢啊给他看一下吧。
啊你看着啊,看是不是我们脚本生效了,我可以给大家介绍另外一个拓展参数。
就马上要讲到的叫什么啊,刚刚V详细等级啥意思啊,给大家解释一下啊,看这个笔记这里啊参数这讲非参数,这个也经常用啊,它主要用来高端和进阶的分析用的,它比较多,刚飞是什么呢,就是详细,你看他有个什么东西啊。
他说的叫做,有六个等级,一零默认呢是什么,默认等级是哪个呢,那这里有一啊,我们一般呢这里有个叫四和五,一般用的最多的就是要用它的话调试信息啊,删这样我们显示四就显示请求信息,啥意思啊。
我们先呢把这个删掉,观察一下啊,这个是用来分析的,就是你有时候呢你在租的时候对不对,然后你不知道你东西修改之后有没有这个修改,或者说有没有这个注入,成功分析一些数据包的时候会用到它。
我们具体给大家看一下啊,你看啊,我现在没有用那个TMP去注入我一个杠V4,看一下他什么东西啊,他解意思呢就是会显示这个circle map,对网站的一个注入的数据包,我们通过数据包呢。
可以看一下这个猪的一个什么这个参数,然后呢去发现情况,那你看一下啊,他在租的时候,这个参数上面它一直在动,其实就是我们所有的请求数据包,就是在租的时候发动每个数据包,它这里显示这个杠V4呢。
就是显示他的请求,然后我杠五呢。
他还会显示这个返回内容,对不对啊,等级越高,显示东西越多。
就这个意思啊,然后这是他的这个请求东西,对不对,然后你可以看一下啊,这是在请求的这个叫什么啊,数据你看啊,这三呢现在租入的数据包嗯,注入数据包是吧,是这样去租的,对不对好,你看着啊。
接下来我们再用到什么这个模块,在刚face回车啊,好我们观察下这面它的数据包的一个注入,好大家可以看一下啊,哎这个怎么没看到啊,大家帮我看一下,你看我们那个OR是不是变成小写。
你看那and的是变成ARD啊,看到没。
这个刚才的规则呢,写的规则跑哪去了。
啊这刚才写那个规则那个文件啊,我看一下来,and的变成A2底Y变成Y。
那他在租的时候看到没,是不前面就变成这个我们指定的呀,这说明你生效了呀,你可能说这讲有什么意义呀,我听不懂啊,你说什么语音呢,他其实就是通过这些调试信息呢去分析你,一个是分析工具,它为什么不能注入。
一个是分析你修改之后它有没有生效,是究竟是哪方面原因,你连这个原因不知道,他一标是不能注入,你该怎么办呢,你说是究竟没出路,还是说你不能绕过呢,你想解决他就必须把他所有东西都搞清楚啊。
是工具的问题还是你的问题,还是绕过问题,讲他是什么意义呢,你说什么一呢,对不对。
还有啊还有几个参数呢,像这个什么鬼UA头的。
你看啊,我们刚才租的时候呢,它的默认这个UI信息变成什么sc map,1。75,这是他版本,这个版本呢就是西格玛普的固有流量特征,这是在后面再讲蓝队防守的时候,防守西格玛步工具的一个攻击的最典型的特征。
以后男队面试问到你说哎,西格玛普的特征是什么呀,这不就能回答上了吗,典型的UV版本,一个头部啊,是吧,所以呢它的简单。
你直接在这个后面呢加上一个什么,刚刚user a ty自定义一个UV头,或者直接用这个re re ua ty。
就是什么随机的加上他区,你看他现在跑出点这个余额不就自动改了吗,随机帮你出现不就行了吗,就没有那四个map啦,这也是在WAF中拦截西格玛普。
拦截那个指纹的一个情况,也是在面试里面学校问的,对不对啊,自定义的也行啊,随机的也可以,还有一个叫延迟,你可说这个延迟有什么玩法呢,这个延迟有什么东西啊,一个网站请求过快速度访问过快。
是不是把你屏蔽了呀,那么这个时候就可以采用什么延迟了呗,这个好理解吧,我言不延迟应该都知道撒。
那延迟个五秒对吧,哎他就慢慢的一点一点的是吧,慢慢的玩,对不对,就这个意思啊,还要多一段时间再蹲一下啊,多一次也就下好,这个就不说了啊延迟,然后呢还有一个是这个我们说的这个代理啊,这个代理是啊。
代理是啊,这个啊只先看这个这个什么等级,这个等级呢也是非常关键的,你不要小看我这讲的几个东西,这几个东西作用可大了,你看等级是什么鬼,还有这个风险是什么鬼啊,听听不清楚啊,我先给大家说等级。
等级呢就是测试的水平等级,啥意思呢,其实我们就理解为测试的深度,来我们看一下SELEMOB的安装包,里面有一个data,Data,里面有个叫这个XML,然后里面有个payload。
然后里面呢有这么多东西,你看啊,比如说这里呢有的error boa sk汤姆O是啥意思啊,代表的是联合注入,延迟注入这个什么啊,呃布尔注入保守注入,哎这两个单词我不知道了啊,不管它。
那你看这个联合注入里面打开一看里面什么。
这有个叫lee risk,一好不可往下面翻,好你看看我们下面翻那lever3risk1,这里有个编号,然后呢对应一个名称,那有这个编号,那这是干嘛的呢,其实就是测试的深度和风险等级。
一个说这有什么意义呢,好啊你看下啊,来设置等级,默认为一,默认为一有15等级,这个有03等级,我给大家看个例子,大家就知道这个东西有啥意义了啊,你看着啊。
我们刚才注入这个呃驻点的时候啊。
你看着啊,我把代码改一下啊,你看着啊,把这个代码我给集合出来。
先把集合出来啊,哎我先把这个代码给集合出来啊,大家看着啊,把它结果出来保存好。
我先用常规的注入去跑它,把这个缓存删掉,那么可想而知这个是跑不出来的,为什么呀,因为有过滤嘛,我没有用到那个TMP模块,刚才已经测试过了,但是跑不出来的,我们看一下啊,那跑不出来对不对,看着啊。
杠什么杠level把啦。
他不有几个等级吗,那never无人机三等级其实就是说啥意思呢,刚才给你看的这个东西是干嘛的,就是你如果说选择了五,那么这个五以前的所有测试全部都撤,其实就是说他其实内置有一个。
普通测试和进阶测试的高级测试,三种模式。
就是根据这个等级变化的来测试,你不加就是普通测试,你加上了等高等技术全部测试,你看一下啊,我们就把它提升为五,刚刚那把它提升为五啊,就是最高等级,那么他的时间也比较大,我们就搞个不搞最搞搞五。
然后呢杠什么risk呀,这个呢也把它提升了一下啊,好提醒一下啊。
没意思咳,好搞个223都行啊。
搞太多了,他就我怕都跑不出来,搞个三吧,先三和二哈,呃这样的行吧,开开好小啊,你看现在还能不能跑出来租入点啊,就我不是搞的最高等级啊,我搞了个时钟的是吧,最高等级是五和三,就是那个内分为五。
风险评级呢为三,你会发现呢他在这里测的时候发现多了很多,大家有没有发现呢,他多了很多啊,就以前他没有车,这么多年,看他一个个在在搞这啥情况,其实就是我说的嘛,你没有车子之前。
它是用它勒直的一些普通模式去测,你看现在还测了什么,测了UA了啥情况啊,不管他啊,我们看他最终包的注入点是什么情况,看的包不包注入点,或者说啊等他慢慢跑跑完之后再给他一总结,大家就豁然开朗。
知道是个什么东西了,我刚才给大家看的这个文件。
其实就是他的这个定义的地方,就是他根据你设置的等级,如果说你选择五,那么这个五以前的这些东西就这种模式的注入,他就会调用,你不设置,那么比如说你不设置一的那这种模式的注入,它就不会调用,能理解吗。
给你看是解释这个事情,然后你看啊。
现在啊刚才我去对它进行注入,它注入不出来,那么现在我加了一个等级之后,哎咋个情况,咋租出来啥鬼呀,然后包的租点是什么,你看pillow的怎么写的,suck map ua着你那金猪啥情况啊。
我代码中是怎么写的,结束了一个UA信息呢。
这我加了个代码进去,为什么刚才不能租出来,加了风险等级能租出来呢,什么情况,这个风险登记一旦加上去,它就会对你整个数据包的所有头全部进行注入,能理解吗,那么很简单的道理。
这个网站表现出来的只有id上面能接收参数,那么现在我在代码中写了,我还接受UA的这个代码,但是我没有在网站上面表现出来,压根就说你在测试的时候,你不知道这里有驻点,但是呢你加了一个高等级猪猪。
他帮你把其他地方不该测的全部测了遍,诶发现一个驻点是这么个情况,那么这个风险等级和这个等级是什么差异,大家就明白了吧,就是测试更深更深入,能理解吗,那你说这东西有没有用呢,你觉得有没有用呢。
所以啊有些租点为什么有租点啊,这个有些参数要写上去,是因为你不写那个参数,它就不检测那个模式,嗯好这是这一点啊,而且还给大家说一下。
还有个代理也给大家说一下,这个代理呢主要是干嘛的,一个是联动其他工具,还有一个那就是让大家去分析这个驻点,或者说分析sc map的注入流程,用来去看为什么包出驻点,但是你由呢啊检测不出来。
或者说你要在上面呢,再做一个什么第三方的拓展啊等等一些情况,那这个时候呢就可以用它代理功能,配合这个bb shot抓包,来时时刻刻观察这个注入点的一个测试逻辑啊。
比如说像现在我们就可以观察一下啊。
就像我刚才加了风险等级,为什么他能注入是吧。
就看一下他的这个数据包的流程,好代码代码是这里啊,我们在这注入轴呢加上一个参数,杠杠PROXY哎告诉他我加个代理嗯,DI那是本地地址,12700。018080端口是吧。
让他勾好,他就开始注入,然后这里呢我们就发现这里有大量数据包了啊。
哎啧我这里有缓存,先把缓存删掉,缓存呢不删掉它就不跑了,他也只是看缓存了。
好重新来。
大家看一下这个数据包是哪来呀,你看那就是整个的这个注入数据包就咔咔来了,你就能围观到整个SMAP是怎么注入,怎么发现的,他的payload又是怎么构成的,这也是便于你后期针对这个猪猪跑不出来。
和针对这个注入点该怎么改造,该怎么用,去给你提供了一个方便快捷的地方,并且能知道他的一个情况,哪些东西和这个东西,你看比如说我们这里抓了哎,你们的UV头还没改是吧,我就尝试把它改一下啊。
就是能够让你更直观的看到哎,你看对吧,还刚才有人一直刷屏,什么奖带你吃,这用讲吗,这么简单,那,把这个都讲了,你说丹尼斯该怎么讲呢啊。
把这后面的一个地址给他替换一下就行了呀。
替换成那个代理地址不就得了吗。
网上买一个代理斯,那个快代理搞个接口,把那后面DJ替换,他又采用那个代理斯去租不就行了吗。
很难吗。
哎呀怎么好说咯。
我这里是加了本地代理,你把那个地址那个pro是吧。
网上搞个代理词那个地址。
那就用dis斯去跑租点了,对不对。
我经常用快代理,虽然它价格比较高,但是它比较好,这里呢买个那个代理是吧,买个隧道代理,唉我就懒得要搞了啊,那个筷子在你那他会给你一个那个地址,然后把地址写到那个刚才那个代理,那个127081取代。
那就用丹尼斯那去帮你跑那个驻点了,就那么简单,好这个呢就不讲了啊,这就是我们本节课的内容了啊。
就是我讲这个SMAP从它的使用,常使用注意点分析方法,几个常用参数都给你讲到了使用,并且告诉你它的应用价值,比你在网上呢去看这种全面性文章要好很多,对不对,因为你不知道这个东西对于你来讲有什么用。
它能帮助你到哪些,但是我讲了之后,你就知道了它的差异用法应用,所以说听课呢,永远比你在网上看这资料要强很多啊,不要在网上闹迷恋这种网文章,或说听老师说,哎呀今天讲四个map,哎我学过。
我咔咔就是乱猪是吧,哎我不懂的,网上查一下资料就可以了,但是你有很多细节的你都没有学进去,到时候碰上问题了,你还得网上查,还得分析,不要去去想这些问题啊,这个听讲和自己看东西呢是不一样的啊。
除非说你自己学学习能力非常强。
那除此之外呢,你不要想其他的。
你看这个猪点他光跑呢,你看他现在的,你看他是该租的,你看的那他驻点就写到这个余位这里来,你看到没,那你就知道了,你把那个代理一加上去,你看这个数据包呢你就知道了,SMAP现在在租他的UI,对不对。
他为什么能跑出入点呢,因为他这里因为确实有注入点,对吧,这个流程的呢抛了尼玛4000多个数据包,才是这个点,一直测下去,那他一直在跑的,那最终才确定出有驻点才出来,那就出来了,你看最终就出来了是吧。
这整个流程数据包全部把它抓下来了,你就好分析了呀,为什么拦截Y为什么那个不行呢,这个不行呀对吧,通过这个SMAP的整个流程的数据包,全部把它露出来,你好分析了呀,你知道怎么改造了呀。
所以说这些东西呢都是有用的啊。
他自己呢做好一个总结啊,这个SMAP的知识点呢,我讲一节课,足以比你在网上呢看半天的文章要好得多啊,网上还有一些这个SMAP的教程,你可以去看一下是吧,十节课都不如我一节课讲得比你听得好。
你不相信你去看,你可以永远相信我啊,知道吧。
虽然这个我讲不了高端基础number one,但这个基础这方面是吧,那确实是number one,对不对。
好就说这么多啊,不说了啊,今天就讲这么多了。
看大家有什么问题啊,有问题就问,没问题,我们瞎了啊,本来这个色嘛本来我不准备讲的,事实上节课能有人提到了啊,让我讲一下,那下节课就讲其他漏洞了啊,就不讲这个猪了,其他漏洞啊,其他都讲什么漏洞。
那不就是夸张啊。
或者文件上传那个吗,那就那几个漏洞,那也没有什么其他漏洞啊,RASK和level什么区别啊。
这个无所谓的,两个都写和写一个也无谓啊。
主要是never那个rusk写不写都还好啊,主要是never他两个是差不多的啊,就你尽量把写大一点就行啊,就写大一点的注入,这就深入一下,时间慢了啊,他就把所有他能测的都帮你测一遍,所以时间就非常慢。
好今天就说这么多了啊,写太多不会出事吗,这个不好说啊,这个东西除死的可能性比较小,但是有这个可能啊,数据包有心怎么办,什么叫新啊,什么是新啊,将blog注入,有没有参考的结构的组,什么鬼。
没有啊没有没有,civil手工注入,没搞过,用工具搞过啊,这都还是用西格玛不搞,好问一些问题,都是问一些这种是吧,没有什么遇到的可能性的问题,这个jungle呢是Python的那个web框架。
这个租店呢网上都是他和那个java写什么,my baby是啊,那个JDBC那个东西有点类似,大部分都是这个安全写法上面造成的一些猪,他的这个注入点呢你搞错了,他其实还是和数据库打交道。
不是说他自己的注入网上,我不知道有没有漏洞啊,但是漏洞的很鸡肋,几乎就是等同于没有发现的问题。
你问这个问题呢,只能说你压根对注入点没有学好。
才会问这种问题,那网上说有这种jungle的猪漏洞,这种漏洞,那就是他自己本身的这个框架漏洞是吧,就他自己写的时候呢啊,那些版本呢用来写法时候呢会触发,但是具体攻击是怎么攻击的。
你看他这里注入他这个注入语法是什么情况啊,如果说他是jungle加MYSQL,那后面这个注入语法就是MYSQL的语法,那还是MYSQL注入啊,只是说他这里写上去的,这个语法应该是MONDD的。
所以这后面的是个MONDD的注入语法,这个助理有什么东西呢,就是看代码审计中发现这个版本啊,触发这个安全写法有这个漏洞的中心,然后呢是吧,再看什么数据库,再玩,用数据库注入不就行了,核心还是数据库。
联系和这个jungle没关系,无非就是说jungle版本的有这个写法,安全问题,用输入攻击东西,还是用不同数据库就不同写法。
你们学到现在的注入还没有明白一件事情啊,这个注入的攻击,一个是看数据库类型,你们说的什么这个什么江狗啊,这些东西,这是这个框架里面呢,去写这个数据库查询的时候要安全写法有问题。
就类似于我们说写java写数据库查询是吧,写了个什么JDBC啊,my baby10啊,按里面的写法上面造成一些安全问题,然后呢他但是他租的时候,那那个租入该怎么去注入,该怎么利用,那就和他没关系了。
那就和你那数据库类型有关系了,你用的是MYSQL,那就还是MYSQL的主语法,明白没有啊,和框架没关系的,框架,只是说它里面内置一套和事故交互的一个,那个函数啊,代码在里面是那个有问题。
但不是说它攻击方法呢,会随这个框架不同而不同啊,我说的再多,那你能理解就理解,理解不了,永远不能理解的,永远不知道我在说啥,我知道的啊,我也不想解释了啊,自己好好学好好学,好今天就说这么多了啊。
我们十点钟到了啊,我们下一个再见啊。
P47:第47天:PHP应用&文件上传&函数缺陷&条件竞争&二次渲染&黑白名单&JS绕过 - 逆风微笑的代码狗 - BV1Mx4y1q7Ny
我们上下第47天了,讲一下这个文件上传的安全问题,这个文件上传呢,说实话啊,虽然这里呢,我们是用这个PP的这个东西在演示,不过它有一些漏洞呢,也是在其他语言里面呢,也是有相应的一个情况的啊,讲的话。
如果今天只讲的,我不把图片搞出来,那也显得很低端。
我就做了个导读,这是我们文件上传的大概内容,三次直播讲完,先讲第一次原生态的一些这种常见的一些文件上传的一些安全问题,然后呢,我们再来说一下这个拓展的。
就是包括这个文件上传的引发的一些这个其他的一些方面,然后呢,再来说一下安全架构的,这个安全架构呢,也是我们不得不面临的一个问题,这也是很多文件上传,其实安全架构呢,就是给它接受,然后呢。
有些呢是能够突破,有些呢是没办法的,我们把它介绍出来之后呢,你会发现呢,其实有很多情况都是属于这种安全架构里,什么叫分站储存啊,对象存储啊,包括目录权限的一些配置啊,都会导致一些文件上传漏洞啊。
即使有呢,也没有办法做什么,简单来说呢,就是有些你上传的文件呢,它会放到一些其他分站里面,就像我们前面说的,它会放到这个对象存储这个人应用里面,有些呢就是说放到目录里面呢,但是目录里面呢没有权限执行。
也会导致一些攻击的失效,所以说这是我们在文件上传之后呢,最后一讲要讲的这个东西啊,就给它演示这三部分啊,这也是这个今后的一个发展方向,所以说,这块漏洞呢,它会随着时间的推移呢。
逐渐会和以前上传的一些这种传统的一些攻击方法呢,会有很多错误,或者说压根就行不通了,也有可能在发展的过程中,一年,二年,三年,四年,五年之后呢,可能这个文件上传呢,就消失匿迹了,对吧,可能就很骚了。
就会有这么一个迹象,就是因为这些架构的一些差异所造成的,这也是我们要给它体现,给大家上这课之后呢,最后一节课给它讲的,这样子呢,也彰显了这个课程的这个深度和这个当前的一个主流啊,也同时呢,给大家提个醒。
好,但是现在呢,还有去上这个内容,或者说还有勇武之地呢。
所以这些东西呢,我们还是要上啊,好,那上之前呢,我们先来关注一下这个文件上传啊,这是要必须要了解的这个两个点,这两个点,我上了一百次就讲了一百次,但是依旧还有人会犯同样的错误,我不知道该怎么讲。
他才不会犯错,我希望啊,当我讲了之后,能再解决一部分的疑问,不会以后再问到这样的问题,就第一个啊,就我们说的,课前一定要明白的,学习这个文件上传,首先要明白的第一点,就是什么呢。
就是文件解析的一个对应关系,啥意思啊,这说了两句话,一定要理解啊,你如果说连这个都不理解,你后面就不用学了,学了就等于没学,那跟学了没学一样,什么意思呢,第一句话啊,无文件解析的安全问题上的话。
隔时的解析是一对一的,啥意思呢,就是说,没有解析安全漏洞的情况下的话,你的文件隔时后期解析是一对一的,啥意思,就比如说,你上传了一个jpg的图片,然后呢,这个jpg图片里面可能你在里面查入了后门的代码。
然后这个时候呢,你去连接这个jpg呢,它连接不上,有人就会把这个问题当作一个问题来发给我看,这不是我们说的,在学文件安全,直接上传安全证里面,第一个就是要说的这个问题,我说的很清楚啊。
没有解析漏洞和一些其他漏洞的干扰的情况下的话,这个解析的流程是一对一的,就是你上传的是图片,那么就解析成图片,你后门代码写到这个图片里面去,也没有用和用出,因为你的后门代码是一个其他语言的代码。
你用一个图片怎么能够把这个代码给它执行出来,这是执行不了的,它的解析关系是不能这样搞的,除非是这里有漏洞,能够错误的解析,让那个代码执行出来才行,所以说,你图片上传到对方的网站上去了。
不管你这个图片里面有没有后门代码,都不能连接,知道吧,这才是正常的,不要以为说后门代码在里面,你就能连接,如果是那样子的话,我直接上传图片就能拿下网站了,我何必还要学一些其他莫名其妙的东西呢。
所以这个问题是首要要明白的,以后千万千万不要再犯这样的错误,但是有时候如果说有解析配置上面的错误,就是网站自己配置的解析有问题,导致错误解析,或者说有解析漏洞干扰的情况下,它就能实现差异解析。
就是说能够图片格式解析成脚本格式,但是要解析成功就必须是对方配置错了,或者说有这个解析漏洞才行,明白没有,有前提条件的,就是说刚才这句话呢,你要推翻它的话,只需要有漏洞和配置错误才行的。
再一次再次给他声明,以后不要再出这样的问题了,那么呢,还有句话就是文件商权是干嘛的,在讲课之前呢,这句话还是要给他解读一下的,解读完之后呢,后面才能更好地学习嘛。
文件商权是指攻击者利用这个网站或者是各方面的,文件商权就是说不只是网站中,你像我们一些APP中也经常会有这个什么鬼商权的操作,比如说你的图像,你的个人图像,或者说你上传什么提交的资料,提交的材料。
这都属于商权操作,就是说这种商权操作的话,对方会接受你这个商权文件,所以攻击者就是利用这个功能,事先看是不是能够把后门的文件都给他上传到网站或者服务器上面去,然后呢。
通过上传后门之后如果能够成功的上传的话,那么他再利用这个得到的这个地址呢,去控制这个网站,这就是一个文件商权攻击的一个典型流程,就是通过文件商权功能,不管是网站的还是APP的,只要有上传都可以。
就是通过上传上传自己的后门文件呢,来尝试去连接后门来控制的一种攻击,叫做文件商权攻击,那么对于这个防护者来讲的话,他是如何来确保这种安全问题呢,是吧,既然攻击者能够进行文件上传的话。
他肯定是在商权这里那就会做检测,就确保你上传的是正常文件而不是一个后面文件,那么他的检测思路就会从几个方面出来,哪几个方面呢,就是会从这个你上传的文件的后追,就是我们说的格式,他的这个格式。
还有文件的类型,什么叫类型呢,比如说TST我们就称之为叫文本文档内,是吧,DOC也是文本文档内,那个图片呢有凤井格式,什么JPG,JF,PNG,那通称为这个图像内,对不对,这种是类型。
还有呢就是文件内容,是吧,图片呢有固定的内容,那这个其他文件的有其他固定内容,他会从内容方面,后追方面和文件的信息方面呢来做判断,来追踪确定你这个文件呢,是不是一个正常文件,是不是他需要的文件。
而不是一个非法文件,对不对,但是啊,他这个判断呢,虽然说判断写得很传绵或者写得很逻辑的话,但是他还会受到一些其他方面的影响,比如说什么影响啊,就说漏洞呢,这个安全问题呢。
不仅是在代码验证这个文件的这个安全性的时候呢,会出现安全问题,同样,有些呢可能是在这个,开发的语言上面,包括语言那些函数,或者说使用的这个中间间,或说你用到了别人,提供的这种第三方的这种编辑。
就是第三方的这种文件上传功能的这种编辑,这些地方,他如果存在缺陷,也一样会造成安全问题,啥意思呢,这句话就是很简单的道理了,就说你去做文件上传是吧,你的代码去控制它,但是有时候呢,你代码控制的安全。
没有问题,但是支撑你这个代码扔行的一些其他的一些服务,他有安全问题,那么呢也会造成文件上传漏洞,所以说文件上传漏洞呢,他为什么容易出现,其实呢就是说不仅仅是代码中的问题,利用过那些东西。
包括利用的这个语言的版本,语言里面那些函数,可能会存在一些绕过,或者一些这种系统方面的一些各种各样的一些问题呢,都来了,对不对,然后另外啊,这个文件上传呢,他也存在多个存储逻辑,就是我们说的保存逻辑。
就是文件上传之后,你不是要把这文件上传到某个地方保存吗,诶是上传到你这个代码的这个本身的服务器上面呢,还是单独在放到另外一个地方呢,还是说这个放到其他地方呢,由于这个逻辑不同呢,就会造成一些传先的不同。
为什么这样讲呢,你比如说很简单道理,是吧,我自己的网站,我现在测的是三大问题,小礼拜点卡姆,我通过代码呢,结束这个文件上传,我把文件上传的保存到另外一台服务器,而那台服务器呢,和我这个网站没有任何关系。
那么你去连接就是连接,拿另外一台服务器,那和你这个现在测试网站没有关系,对不对,就会有这种这种影响,那就有这种不同之处,就你在测的目标是这个网站,诶他把它放到另外一个地方。
那你要连的话就另外另外一个地方,那也获取的是另外一个地方的权限,和你现在测的网站没有关系,知道吧,所以说啊,这里面呢,有很多点在讲,我这里呢,花了七年,花了大概十分钟,去给他做这个安全。
在讲课之前的一个安全普及,就是希望大家把这个架构和思路呢,给你刻在脑子中,然后你再通过这个后面的字典学习,把它归类到我们这个不同类字面,那么具体那就是我们这个图片啊。
你看我说的那个存储逻辑就是这个第三方面。
就是我们第三次直播讲的,然后呢,包括这个刚才说的还有像什么编辑器呀,什么鬼东西呀,这一些安全问题造成安全漏洞,那就属于第二次,就是我们第二次直播讲的,那今天呢就是说讲最原始的。
最简单的一种商权的处置方案的一种架构逻辑上面的安全问题,能理解吧,今天讲第一部分,然后呢在第一部分呢,在第一部分来的衍生出第二部分,在演示第三部分啊。
好,那现在呢我们来讲一下这个几个东西啊,我们演示的环境呢,是用的一个多可得的一个多可的一个环境啊,之前呢用了什么,啊,不露的老婆死了一个东西啊,那些为了显示更加高端一些吗。
显示其实内容都差不多,显示的更加完美一些,看上去牛逼一些。
那我们就换了这个,这个呢,这个是一个多可的搭建的啊,然后搭建的事,可以用这个F8X-D呢。
搭建这个dota也可以用F8X-dota搭建,这个F8X-D已经给他介绍过这个项目啊,前期学的比较灵活,应该都知道,这是一个红蓝部署的一个项目,这个项目呢,直接自动化部署,那一个-D就可以直接部署的。
-D就可以自动安装python3,python3-go,doct,doct,pastor,还是个SD跟mine,对不对,就你想安装什么呢,就用它跟刚一下就完了,其他的不用你操心,等着即可,这个呢。
也是我们前面给他介绍的项目啊,所以大部分呢,很多一些常见工具,包括一些这个高端的环境呢,都可以用这个项目的帮你自动搭建,但是这个环境呢,是用的是Ninas超系统啊,所以你可以在你自己电池上面呢。
部署一台啊,我们用了人服器啊,这里呢,多的就不说了啊,直接这个的F8X的,F8X是吧,-D它就会自动安装。
我这里有安装过我就不写了啊,这个很简单啊,直接用网上部署之后呢,这个直接把它进行这个安装就可以,安装之后呢,直接-D,让你自动安装,环境呢就不用操心了啊,安装好多了之后呢。
把这个烟丝的源码呢,给它放在下下来,下下来进入到他的项目。
啊,就是进入到这里来,那我就已经进入了啊。
就这个网项目,这是一个文件上传漏洞的一个测试项目啊,就是一个相当的小靶场啊,里面呢有十几种这个,呃,是一个关于文件上传的一些漏洞的这个测试的地方啊。
啊,那么来给他演示一下,好,然后呢,直接来启动啊,这个启动就不说了。
直接up-D,这里也写了啊,一键不锁。
直接启动,启动之后呢,他会在,这个,啊,这直接启动啊,我这很快,因为我就已经拿取镜像了,好,启动了,启动之后呢,他会在这个,当前主机上面呢,去开放,13个端口,从3001,30100到3013吧,那。
就是相当于有13个关卡的一个文件上传。
我们来给大家看一下啊,3。0打开,然后在测试的时候呢。
我们这里呢,把抓捕工具打开,因为这个文件上传的基本上啊,很多情况下面都要用到这个抓包,因为对这个数据包的不断修改来测试这个文件上传。
就打开吧,啊,当头改一下,好,打开啊,那这是我们的第一关,啊,为什么选用他的软硬是因为,他的界面的相对于来说比较偏向于这种应用,就是看出美观一些,那其他一些那种文件上传的一些东西呢。
看上去比较简单单一啊,然后我们这里呢可以对着这个代码呢去给他分析。
就是这个项目,这个代码的项目呢,我又下下来了,就这个,在哪个里面,这里面还是在代码的一个地方啊,那软码。
这在十几关的一个软码啊,我们来来看一下,你们说的那个什么二十关的25关的那那个东西呢是另外一个项目啊,啊,其实你不用去搞那个多多少关多少关,有些关卡呢是没有任何意义的,还是没有任何意义的啊。
就是说有些东西呢你用不到的。
以后也碰不到了,你学不学他,没啥的意义。
我们把一些,现在说实话,现在讲这个东西很多东西都用不着了。
但是怕晕得着,所以还是讲一下,这是那个软码就是那个整个项目里面的软码呢,比如说我们现在第一关就这个软码,这个软码呢,我们可以对着软码呢去给他分析,这样子的会更好的说明这个流程啊。
嗯,那这个关卡它是一个什么策略呢。
就是这里呢有个文件上传,然后如何是突破他的呢,好,就说我们现在去上传一个这个文件哈,比如说这里呢有一个把格式改一下,这里有个点一点pp的这个格式啊,然后呢我上传这个一点pp上传之后呢。
他说只允许上传图片类型的一个文件哈,然后你可以看到啊,我在上传的时候呢,这个是有很快的一个时间就返回过来了,那像这种时间上面很快的返回的话,一般都是js延展啊,这种逻辑呢,虽然说不是很苛刻的逻辑的话。
嗯,你也可以通过这个优见软代码呢,去观察一下这里面有没有一些js代码呢,写的这个研制逻辑啥意思啊,就说这个第一个关卡呢,他使用的是一个纯前端验证,我们这里呢,就是我们现在讲的这个四位导图。
这里可以看到的一个计划啊。
就是验证这个文件的一个情况的话啊,他的分为前端验证和后端验证,那么前端验证就是用js代码去验证的。
他为什么要验证他啊,很简单道理,这里呢是一个pp的一个后门,如果说我能直接上传这个pp文件的话,那么我就相当是得到这个文件的地址之后呢,我就可以直接连接到网站了,后门了就可以直接连接了。
所以他肯定是不让你直接上传这个脚本文件的,他只允许上传这种类似图片文件,你看我上传图片文件,哎他就能上成功是吧,这并且呢给到这个图片的相关地址是吧,图片地址,对不对,就是你上传的那个图片吗。
是吧,但是实际上中的你这个要上去后门的话,那肯定就像我说的啊,这是个jpg,然后呢你上上去呢里面有后门也连接不上,对就我说的这个情况吧,理解吧,所以我就必须要把这个格式改成pp。
那我一旦改成这种pp格式之后呢,他妈的还把我杀掉了,我一旦改成这个pp之后呢。
哎他就怎么样,他就上去不了了。
他说只允许上去图片类型的文件是吧,那么我们刚才说了,他是个js验证,那如何判断他是js验证,其实最好的方式就是看原版,但看原版呢也要有点基础,你看原版呢,这也可以看到啊,这个表单在这里。
那你看一下这个表单单吧,这里有个什么呢,这个上上图片有个按钮嘛,是吧,这个按钮呢有一个这个时间叫,exchange console file,这个时间,然后这里呢你看on splitter。
就是触发这个鼠标的时候,触发这个点击按钮时间的时候,return返回一个叫check file,这个函数,然后这个函数呢可以看到呢,定义的函数在这里,现在就是用js代码写了一串东西。
来得到文件的一些这个什么轨迹,然后判断一下什么的,从这里面的去编你这么点jpg啊,点png啊点gf啊点jpg,如果说这个判断等于负一,就是没有匹配到这四个答案的话,啊那么他就提示指级上传格式文件。
所以说刚才为什么提示那个信息,就是因为你的格式呢,不是这四个格式,他要提醒你那个格式啊,就是那个后追名啊。
我是点pp吗,不在里面,因为我换成这个其他的这个格式呢,他就可以了,是不是,你看啊,我换成那个png对不对。
他就可以了,你看就可以了,是不是,所以说呢,这是可以看到啊,从代码中的能够看到这是一个js言词,那除此之外,还有没有其他方法判断呢,就是抓包判断,代码中如果看不到的话,再用抓包判断,为什么说抓包呢。
啊我们来看一下啊,我上传一个图片啊,我抓包,然后点抓包,好,是吧他抓到了。
还放出去,哎他放出去了,好,然后呢我在上传另外一个文件的时候。
你看啊我上去批批,再抓包,他直接提示包都没有经过这里,啥情况,这个验证是不是就是在前端产生的,为什么,抓包是抓数据储蓄的包,就是经过这个浏览器并发到对方服务器,服务器呢,再回信过来。
那我发送对方服务器的时候呢,应该会经过我这个抓包工具,但是为什么没有抓到呢,就是因为这个验证就在这浏览器这里产生了,他没有发出去,所以这是前端验证,好理解吧,所以有些抓不到的数据包呢。
其实其实就是在浏览器那边的自动帮你验证完了,他并没有发出去,所以导致你抓过工具的并没有补过到,刚才就是这个情况,那你可能说了,啊为什么这一点批批,呃这个能抓不到这个JPG能抓得到呢,为什么。
因为JPG他本地验证通过了,发到对方,对方的再回过来。
而你是PAP不行了,好理解吧。
能不能理解,理解之后我们就给他演示一下,那么现在就是我刚才说的如何判定他是JS验证逻辑,就是很简单,一个是看他的代码里面,有没有这种JS的验证代码,第二种就是我们说的通过抓包,判断下你在上传的时候啊。
为什么不能上传,那里能不能抓到,对不对,因为很简单,他不能上传,应该就是说你发到对方服务器服务器,再回一些回来,你才知道能不能上传才有这个结果,但是能抓包都抓不到,结果就赢出来了。
那就说明他就在本地就已经验证完了,那么本地验证完就是前端验证,就是JS代码,为什么称之为前端语言,就是这个原因,就是他运行在牛奶鸡端的,他不需要对方服务器的那个后端代码去验证,就是提到这个代码中呢。
牛奶鸡就自动把这个代码执行一遍,认证完了,所以前端验证就是纸老虎,就是你可以把删掉,或者怎么办呢。
就是我先假使让他上传成功,然后呢,是吧,先让他搞一个这个能够支持上传的东西,先让他是吧。
能发到对方服务器,在发服务器的时候呢,我再把这改掉,发到这里,我再把这里改掉,改成一个。pp,对不对,有画屏啊,那我改成个。pp,那么就可以了呀,为什么,因为你直接上去一点pp他不行,我就先把包抓到。
假使先让你和服务器取得联系,然后我再改,发到对方去,原来是什么呢,就是他后面里面的代码没有验证逻辑,他的验证逻辑全部在这个浏览器这里验证了,所以我就先让你通过,那么再发出去就不会再对我做什么事情。
发出去,是吧,然后现在呢,你看这个问题就上上去了,那你看这个就是我们的后门地址,对吧,这是后门地址,然后后门地址里面呢,就是我们的后门。
对吧,我们就可以简单给他连接一下啊,这个连接了我就连接一次啊,后面我就不连接了啊,这是刚才那个后门生存的代码,因为后面呢。
我们上成功就可以了啊,这后面连不连接他都关系不大了。
这是那个文件啊,我看下他里面代码。
你这他妈的,那这是个后门代码对不对。
这个后门代码啊。
你可以在这里生成一个啊,生成的和他一模一样啊,我就不生成了啊,生成之后的你看啊,我这连接了连接他的地址呢,就是这个地址嘛,打开,还是不连接上去了吗,这取消了权限了是不是,但是刚才上传了几个东西吗。
你都在这里面,这谁呀,还上传个9e pro呢,哎,好。
这个就是我们说的第一点啊,这个第一关的一个关卡能不能明白,这个连接操作就是说连上去后续的文件上传连接上去,用这个后门管理工具的连上去控制网子的操作啊,这个不重要啊,主要是这个文件上传操作啊。
这个演示一次后面呢就不演示了,就只要上传这个文件呢,上传上去就默认就是后续连接就行了啊,这个好好理解吧,不难吧啊,好理解之后我们就,看第二个了啊,这个第二个呢是一个什么呢。
他说一个点他说的是阿巴奇福这个配置文件,这个配置文件呢,能够帮助我们去控制一些访问的一些东西,那啥意思呢,这就是我们说的第二点了。
就说前面呢是验证上面的一些逻辑问题,就是他简单方向不对,用的是js验证导致的js验证能够直接被绕过,因为就是说这个代码呢,我们可以忽略他用浏览器呢,把这个js呢给他验证的是吧,先给他绕过去。
然后呢我们后面的就直接上传了,因为他后面的就没有音质了,所以那就可以直接上传pp的,而现在呢,这个第二个关卡呢,他是产生在哪个漏洞上面的呢,在第一关卡就属于属于中间间上面的问题。
就说他这里来说是一个deaccess的一个,Apache的一个配置文件。
那个配置文件是干嘛的呢,我给他说一下啊,配置文件呢。
你可以这样去写这个东西,那这个东西是什么意思呢,我给他说一下啊。
这里有个这个东西是吧,那这里这个东西是什么意思呢。
他这个东西,我把他放左边啊,这什么意思呢,就这个文件呢,他说添加一个类型,类型有个什么application,插adb dpp。png,这是啥意思呢,其实就是接入这个配置,run这个什么。
png的这种命名文件呢,当做这个类型,而这个类型呢是pp的类型,所以也就是说,当做这个什么pp执行,其实呢就是说。
你在apache里面如果有这个文件的话,那么他就会有。
对这个解析更改的这个策略,也就是说呀,这个。ataccess,他是怎么修改这个解析配置的一个文件。
所以说呢我们就可以怎么样呢,比如说我直接上传这个,直接上传这个什么,1。pp,对不对。
让他执行,他不容易上传,对不对。
好我们现在呢,按照之前的讲的来,我把他上传1。jpg。
对吧,上传,好他能够上传啊,看着啊,他有个上传地址,对不对,上传了,哎。
这又是你们啊,我真是啊。
嗯,嗯。
嗯,嗯,我开的这个把上就这么好玩啊,都跑上去上传,这我还没有开始做,这上传一大堆去了,稍等一下啊,我关了,他影响结果不是说他搞搞破坏知道吧,这我刚准备说把那个东西讲一下的这一搞着搞着,嗯,嗯,嗯,嗯。
嗯,(鍵盤有點亂度,玩一下等一下),(玩遊戲中)。
我把白名單加一個啊,(玩遊戲中)。
(玩遊戲中)。
好,(玩遊戲中),搞了啊,(玩遊戲中),來,(玩遊戲中),兄弟們,(玩遊戲中),再來幹我吧,(玩遊戲中),求幹啊,(玩遊戲中)。
看一下啊,剛才呢我們重新上傳一個文件啊。
繼續來這裡啊,你看啊我上傳一個JPG,1。7。7,好上上去了啊,然後我們現在來看一下這個D字啊,(玩遊戲中)。
那你看他說音錯誤而無法顯示,他說音錯誤而無法顯示啊。
看著啊,這個代碼,誒這個時候呢,是吧,大家可能說,誒喲這裡面是有後門代碼嘍,我連接一下,我連接了連接個什麼,我連接個商嗎。
這連接商嗎,連不上啊,這不就是我們的基礎講的一句話呀,你這個裡面有代碼,但是呢你是GPG不行,所以這個時候呢他就通過這個什麼。
上傳一個另外一個文件,因為他直接上傳PP他是不行的,剛才已經講過了,所以他的流程呢是上傳一個。access文件。
那你上TP那不行是吧,不行之後呢我們就隨便抓個包,(玩遊戲中),抓個包啊,然後呢,再去上傳一個文件,隨便上傳一下啊,直接上傳是吧,把包抓到,這個時候呢,就改一下啊,這樣,(玩遊戲中),就改成這個名字。
access,(玩遊戲中),是不是,選這個文件,然後呢再把這個代碼呢改成我剛才說的這個邏輯,改成這個,(玩遊戲中),好改這個是吧,然後再上把它放出去,對不對,要放出去就是怎麼樣。
他就上傳了,然後你可以看到,這裡呢就上傳一個文件了,這個文件就是剛才上傳的,就這個文件吧已經上傳了啊,沒問題,然後這個上傳之後呢。
我們思考一下,我現在在訪問這個地址,我在用這個後面連接,我問一下大家,能不能連接上啊,趕緊給他吧,能不能連上啊,可以可以,有沒有說不可以的,不行,可以都說可以,好,PNG,對的啊非常正確,不行,錯了啊。
為什麼,因為我搞的是PNG的匹配。
我上傳的是JPG,所以呢,就把這個格式再改一下嘛,改成一個PNG就行了呀,上傳。
再來訪問1。PNG,看1。PNG和1。JPG的一個差異,同一個文件。
這個差異呢就直接,結果出來了,把這個路徑一改,那同樣都是圖片,這個就能成功連接上,哎是吧,好這裡一看之後,大家就明白了,對不對,明白了,是不是,哎呀剛才哎呀,這個就是這個考慮,但這個實驗呢一定要明白。
他就屬於我們剛才講過的,這種問題是吧,是因為解析的一個配置錯誤,一個文件的導致的解析呢,實現了修改,所以呢實現了這個差異解析,你不要說哎呀,又把這句話推翻了啊,搞清楚啊,不要說圖片就能解析成功啊。
一會又要問這問題啊,好這個第三關,這個第三關屬於哪方面的問題啊,屬於中間間裡面一個配置文件,重新寫過,重新修改了這個什麼呀,解析規則,然後呢實現了一個圖片呢,把後面進出來的結果,否則的話。
如果你不能把那個文件進修改的話,解析規則改變不了的話,你這個圖片呢,是不能執行出來結果的,明白沒有,已經做過實驗了啊,不再說了,關卡太多,我們就不一個給他囉嗦了,這還十十多關呢,好這個呢。
第三關是什麼呢,這個類型,這個類型又是什麼意思呢,給他說一下哈,這是一種判斷的一個差異性所導致的,啥意思呢,就是說我們可以抓個包呢,給他看一下啊,抓個包給他看一下,來我抓個包。
那我去上傳一個這個,png的包。
GF的包好吧,先上去GF的,看下GF的包,看著啊。
好這是GF包,裡面呢有個這個信息,我把它拉出來,好然後呢。
現在呢我們再換一個。
換一個格式的包啊,翻個臉pht的,好上傳啊。
看pp的,抓個包。
好這是php的包。
看一下啊,有什麼不同啊,再看一下啊,再看一下啊,這個叫container top,GF包為image gf,pp包為application,什麼acd steam,你可以再上傳其他包的啊。
你可以上傳其他包的,每個都不一樣,他這個上面呢也給了解釋,嗯也給了解釋,每一個格式你在上傳的時候呢,都會附帶一個類型,這個類型呢,就可以確定這是什麼文件,啥意思呢,其實就是管理員呢。
他在驗證這個文件的時候,他是通過這個類型來判定這個文件的。
能不能理解,就通過這個結束這個類型,來判斷你是不是一個圖片,是不是一個正常文件,是不是他允許的上傳文件,但是這個判斷,可以通過抓包把修改掉不就行了嗎。
對不對,就你剛才呢直接讓我上傳pp,你不讓我上傳,說類型不正確。
那好簡單啊,我就怎麼樣呢,我先把你改成什麼。
這個jpg,是吧,你先讓我上傳上去,因為我上傳的時候呢,一上傳,包抓包,我再把這個地方改成什麼,php不就行了嗎,為什麼,因為我上傳jpg的時候,你附帶這個類型是允許我通過的,我再把文件後綴改成pp。
放出去,這不就上傳成功了嗎,對不對,這就是後面的地址啊,去連接他即可呀,這個連接我就不做了,簡單來說,這個呢就屬於是,驗證這個類型所判斷的文件,這種驗證呢,也屬於是有問題的,就是驗證你要從多方位去驗證。
而不僅你說從一個東西,就能判斷這個文件的真實性,這不行的啊,好這是這個第三關,好接下來我們再看第四關,第四關呢,是一個文件頭。
是一個文件頭,這又是啥呢,這裡呢再給大家普及一下。
剛才是文件類型,是吧,我們再看文件頭啊,比如說我們呢,在電腦上面的找一些這種。
GF的文件,我可以把這個GF文件呢,給他用這個010Edit去打開。
就是這個石牛精緻編輯器打開。
打開之後大家可以看到啊,我們打開很多個,來PNG的,是吧還打開幾個啊,比如說這個GF的,再找個GF的打開,這裡這麼多是吧。
我隨便拉幾個進去,這都是GF的,然後呢你觀察一下了,PNG的頭部是一個什麼,PNG,GF呢,GF89A,看沒,孤零的啊,你可以再換一個其他文件,比如說JIP的,你把JIP的,把JIP的,是吧。
把它放到這個亞瑟包裡面去,他是PK開頭的,看沒。
前面的東西,頭部都是孤零的,就是不同格式的文件,他的頭部呢。
是孤零的,能理解了吧,那麼也就說程序員呢。
他在判定這個文件的時候呢,才用的是文件頭來判斷。
才用的是文件頭來判斷,就很簡單道理。
就比如說我現在呢上傳這個GF,他是能夠上成功。
對不對,然後你看啊,我現在呢,把這個文件,找一個這個另外一個文件,比如說像這個PP文件。
是吧,上傳,他就說只能上傳。
為什麼呢,然後你看啊,我在把這個PP文件呢。
前面啊打開,把它在這個代碼前面的加成一個什麼,JF89A或者PNG那個東西。
加個這個頭,就加了個東西。
把它上傳,哎他說還是不行,傻精光,因為你這樣加呢,不對的啊,你這樣加是不對的,我們要怎麼加啊,來抓個包,還改了個類型,對啊他還檢測了一期。
看著啊,那一個是這個頭部該了。
然後把類型的改成那個圖片類型,就他有兩個了啊,哎那個類型剛才各自來的。
搞個類型就可以啊,比如說,放然後看這邊呢,是不是上傳成功了呀,嗯後面上傳成功了,你看,有了啊,所以這就是檢測頭部,那麼其實也非常簡單的,他和剛才那個是基本上是差不多的,啥意思啊。
我們可以理一下嗎,是吧,通過文件頭判定文件,類型後追,是吧,通過文件類型判斷文件後追,是吧,這兩個出來了,頭幫你一個文件類型,而後追,類型也是幫你一個文件後追,不同後追的文件的類型。
上傳上去自帶的就不一樣,但是這兩個呢,都可以通過數據包裏面,把修改的達到偽造,就是一個圖片的後追,啊圖片的文件頭啊圖片的類型呢,來去上傳個pp文件。
好理解並不難,沒有什麼問題啊,好。
接下來我們再看,第五個關卡,第五關卡呢,是一個類似的什麼叫黑名單的一個因子。
什麼叫黑名單白名單呢,我們來想想啊,現在就來到了啊,通過文件的後追來判定文件的這個後追,這時候就有點尷尬了啊,什麼叫文件後追呢,啊,然後這個判斷呢,有一種叫黑名單和一種叫白名單的一個概念。
那麼意思也是非常簡單明瞭的,就是來獲取文件的後綴名呢,來去判斷文件後追啊,然後一個基於黑名單因子就叫白名單因子,黑名單因子就是,檢測,文件這個上傳的這個,文件後追啊,是不是,在黑名單裏,在就GG。
不在就通過,對不對,白名單呢,那也是一樣道理,那就剛好相反,在就通過,不在就GG,對不對,然後這個是在不在白名單,邏輯能看明白吧,這個邏輯能看明白吧,接收文件的後追名,然後呢將後追名去比對。
比對這個後追在黑名單裏面,那麼這種因子叫黑名單因子,如果是定義一個白名單,那麼就是白名單,你們覺得黑名單和白名單,哪個會更有效果一些,試畫一下,一分鐘,對白名單,為什麼呀,因為,白名單就是固定死了類型。
而黑名單呢就是說只要你不在裏面,你都可以上傳,也就是說它還存在一些,理論上其他方面的上傳,但是白名單不一樣,你只能上傳那個名單之類的,上傳其他的就不行,那黑名單就是說,你不在黑名單裏面就可以上傳。
那這個就是說肯定是白名單要嚴格一些。
那這種呢就屬於什麼,黑名單,因為你可以看到,它的代碼中呢定義好了一些常見的一些腳本的格式類型,對不對,你看PPRPP5啊什麼PP4啊PP3啊,這個這個這個一大堆的是吧,然後呢寫了這些東西。
但是這個黑名單驗證呢,它有一個驗證邏輯。
就是有個叫我們說的叫沒有遞歸的一個問題,這個代碼要給他看一下啊,這就是他的代碼啊,呃他雖然有個死STRReprice呢去檢測這裏面的,檢測這個黑名單,如果你沒有匹配到就把它過濾為空。
那這個呢邏輯是有安全問題的,為什麼這樣說呢,就是沒有迭代。
沒有遞歸的一個過濾,啥叫沒有遞歸啊,就是只搞了一次,只搞了一次啊,啥意思啊,但我們來給他演示一下啊。
我直接上傳一個點P點這個CR點PP上傳。
哎你會發現呢,他上傳的類型變成了點CRPP沒有了,他把PP過濾空了,那很簡單的嘛,我可以怎麼操作他呀,是吧,寫這個東西下來,放出去,然後這裏呢,他就出現個類型了,你看,新點PP就上傳成功了。
文件就存在了啊,是不是上傳成功了,這個是後門的嘛,這是一個什麼邏輯呢。
很簡單的道理啊,這是黑名單驗證的一種啊,一種方式說的是這個,無遞歸的邏輯,只檢測一次,沒有循環,那麼我們上傳一個PHPHP,那麼區空,那麼前面是P後面再加HP又換完了,理解。
好理解,非常簡單啊,沒有什麼太大問題,其實就是代碼中的沒有做遞歸處理,只過濾了一次,那麼那就導致呢,我們就可以雙寫一次,是吧,你過濾一次我就搞兩次嘛,那第二次不過濾就GG了,吧,繞過了,啊。
就是沒有遞歸啊,而且這個不僅沒有遞歸,而且他沒有考慮大小寫,為什麼這樣說呢,這個函數呢,他只,只區分這個,大小寫的,就說你這裡的固定是小寫我換個大寫他就不不不不不攔截了。
你要看函數的有些就說為什麼說我們說有些函數差異或是傳函數缺陷呢,就是你用的這個函數呢,他可能有些函數呢,他是大小寫,他是大小寫敏感的,就是你必須要告訴他,我大寫過濾小寫過濾,或者大小寫我都過濾。
你知道吧,這東西要告訴他的啊,所以他我們說函數缺陷呢,也會造成這樣安全問題,那像CTF裡面的這些,啊像一些大塞裡面的一些CTF提醒,如果說考文件上傳,他就是喜歡考這種東西,就是考慮對這個函數的這個理解。
是吧,這個函數是大小寫的一些情況呢,還是一些各種各樣的一些問題啊。
對不對,這個是這個3005啊,我們只看306的啊,306呢和剛才的大馬呢,差不多,這個呢就是我們說的這個大小寫問題啊。
這個就沒什麼說的了啊,就是呢這是個小寫是吧。
你在上傳呢,他嗯,這都直接上去了,我上下了你看編了是吧,然後這個時候呢,你把它改成的大寫你看啊。
嗯改成大寫了後面加個大批。
來上下上去,然後這裡呢改成大批放出去,你看這問題不來了嗎呢,哎這個大小寫呢,如果說是這個是windows服務器的話,那麼大小寫是不敏感的,就說你大小也行小小型,他也能正常訪問,但在pd那時的超系統呢。
他就他就不一樣了啊,他就分別了,所以說這種方式大小寫的這個方案呢,是要在windows的這個服務器上面的才能支持,如果是你那是的話,你要麼就全部大寫,要麼就全部消息,你如果說一大一小的話。
那這個文件就不再是批評文件了,知道吧,你那是他分大小也區分的啊,windows不區分,就是你大寫小寫他都認識,能理解吧,好這是這個第七關啊,第六關我們來看第七關啊,第七關呢是一個以前的老龍叫領英階段的。
這個漏洞呢以前很活,但是隨著這個時間推移的後面都逐漸很少了,原因就是因為這個漏洞呢,他有個有一個先知,這個先知呢就是說,這個pp版本呢,他要小於這個5。4的三次的才有這個漏洞,在其他的這個語言裡面沒有。
所以這個漏洞呢是批評特有的一個漏洞,然後這個漏洞呢,而且只在這個版本5。3年4日之下才行。
所以我們可以先做個實驗,就我們自己呢。
在測試的時候呢,先做個心理設計,提交之後呢,呃,可以看一下他的回顯的這個返回的批評版本是5。2。1,17,那就說滿足這個領領階段的一個條件,那麼我們就可以利用這個領領階段呢。
來實現上傳這個後門文件,直接上傳肯定是不行的,那比如是直接上傳的他肯定是不行的,文件內心不匹配嘛,是吧,那麼如何上傳能夠成功呢,就是利用這個領領階段,我們來給他演示一下啊,什麼是領領階段。
領階段條件有點苛刻,那麼還是講一下啊,比如說這裡的上傳這個pp文件。
上傳之後不抓個包,然後這是他那個包嘛,是吧,然後我們這裡呢,來想一下啊,先把這個大小就給他緩和過來啊,然後你看這個水包上面呢,有個叫post,有個路徑,啊,他意思就是說應該就是說這個路徑呢。
是保存這個文件名的一個地方,就把這個文件放到這個路徑裡面去,對吧,如果說沒有路徑的話,那就改這個名字,有路徑的話就改路徑,就是有路徑這種參數的話啊,如果沒有就是改這個名字,啊,但這裡有路徑。
這個意思我們很好理解,就說把這個文件呢,應該是給他全個參數,這個參數呢,就是一個文件的保存路徑,就是對方服務器的一個那個目錄嘛,保存到這個upload裡面,然後我們在這裡呢,寫上一個什麼東西呢。
寫上一個領領階段那個東西啊,就說如果我不保存的話,我們可以把這個包呢,拿到這邊來提交模擬詞啊,把他放出去之後呢,他的這個結果呢,保存的這個文件路徑呢,結果跑哪去了,結果沒有。
結果沒有因為是這裡這個格式問題啊,我先把格式呢,給他,換回來改成這個jpg格式,你看他就有一個路徑了,是吧,這就是我們上傳上去的這個文件路徑,是吧,結果路徑,這我們上傳那個文件路徑。
你看他就保留個upload,然後這裡都有upload,我怎麼辦呢,如果我把這裡改成一個什麼,你看啊,我寫個這個東西叫a。asp,然後百分之零零,寫上去,好那這是個什麼意思呢。
00就是相當於會把後面的東西給他截斷,就是到此為止,就是一個階段符,截斷符之後,他默認的會在後面呢,添加一個這種圖片的路徑,一添加上去,00呢,把他截斷之後呢,就相當沒有了,那麼就只截取前面了。
這個文件就變成a。asp,好這個是格式p,我不要改sp了,別別別搞錯了啊,寫個a。pp的,因為這是個pp的後面啊,不要寫sp了,寫錯了啊,哎就是這樣,其實就是說他會在這後面的去組,加上這個他自帶的一個。
這個文件名字吧,會以這種形式,但是現在啊,你看啊我把它一上傳,我先給他看一下啊,我訪問一下這個路徑啊,我先訪問一下a。pp,大家看到沒有的啊,然後呢,現在我要放出去這個包,放出去之後呢。
我們在關注這邊打開,看沒寫進去了,他就是個截斷啊,簡單來說呢,就是通過這個文件命名和文件路徑的一些修改,啊,就是讓他這個保存的結構呢,發生更改,然後利用這個領域截斷的將後面這個jpg的那個內容呢。
給他全部咔嚓掉了,那麼就只截取領域前面的,那麼就是保留這個a。pp,那麼就形成一個pp的格式文件,後面的才有,才能得以把它進行解析,是這麼一個邏輯啊,但是這個方法呢,他只使用在,我剛才說的他有兩個條件。
一個條件的就是那個魔術開關的問題,還有一個呢就是我們說的那個版本,就是這個主要是那個版本啊,就那個小於5。3點多少的一個版本才行,所以這是以前老用那個那種,但現在的用的很少了啊。
因為現在批評版本的很多都是五版本的很少,都是七版本的就沒有這個問題了,所以這還是我那句話,就是說有些時候呢,即使你的代碼本身呢,是沒有安全問題的,寫的邏輯是沒有毛病的,但是你用的這個語言的這個版本呢。
他有安全隱患,所以呢也會造成安全問題,這句話是不是就很好理解呢,這就是為什麼我在講課之前,要把這話給他老清楚,就是你要知道啊,這個漏洞呢,他是產生在哪個地方的啊,就是說這個東西。
他和他代碼的邏輯沒有問題,他代碼邏輯是沒有問題的,但是由於這個版本自己啊,有這個安全隱患,所以能利用到這一點了,好這是我們說的這個這個情況啊,再來個安迪克就八萬,第八萬的也是靠這個點,但是靠這個點呢。
有不同之處,這個不同之處在哪裡啊,我們來演示一下啊,同樣道理呢。
也是上傳個這個圖片,然後同樣的做個包,他也是考慮這個點,但是有點不一樣,你看剛才呢,那個路徑是在這個地址上面,然後這個是放在這個下面,這個放地下面,那放在地下面的話,如果你這樣去寫啊,那我這樣去寫。
用他去發包,那這樣去寫去發包,那麼一點批批會不會有呢,訪問我們再來觸發一下訪問一下啊,對不對,看有沒有呢,執行沒有啥情況,為什麼這樣子就沒有了,不是一樣的道理嗎,也是這個這個情況,然後這裡要注意一下啊。
如果是在下面這個地方就要把這個百分之零呢,給他進行怎麼樣,這裡有個叫URL的一個declode解碼過程,把你進行這個呢解碼過程,操作一下,然後這裡變成這個東西,再發包,再訪問就有了。
這是什麼原因造成的呢,這是和這個瀏覽器的一個解析有關係,呃啥意思呢,我這裡有很多人不明白這個原理啊。
可能搞這個錯誤,嗯,就是說呀,有些網站呢,我們可以給他演示一下啊,哪個網站來給他演示一下。
你打開一個網站,你看啊,我在這後面呢,去寫個空格寫個1,他就會自動把這個空格變成百分之二零,對不對,變成百分之二零,那麼也一樣道理,我這裡呢寫個百分之二零,他也知道這是個空格的意思。
這是在這個請求的網址上面,啥意思啊,我們來給他解釋一下。
為什麼要這樣一個操作方式啊,在這個URL上面啊,為什麼這個寫百分之零就好了,然後在這個post的下面啊,這個post下面,就是我們說那個提交數據,為什麼要對個百分之零呢,進行這個R次的解碼,什麼原因呢。
其實就是說啊,其實啊,這個零零階段呢,是這個百分零零的解碼,結果,但是URL上面呢,他會自動解碼,解碼一次,然後呢,你在下面的話,他不自動解碼,所以我們就需要,手工解碼一次,是這個原因造成的啊。
所以剛才我那個操作,就是手工把解碼一次,因為這個零零階段,是他解碼的結果,URL上面寫的,他會自動解碼,就好比我們在瀏覽器裡面。
我寫個百分之二零,他也知道我是個空格,我寫空格。
他也知道我是個百分之二零,是這個意思的一個道理,能理解吧,而你在這個數據包的下面。
在這個下面呢,你寫百分零零,那麼他就會認為這是個百分零零,所以你就要讓他解碼成那個,真正的零零,而如果說你寫到這個上面,他會自動把他解成百分零零,就像是說上面呢,自動解了一次,下面呢他沒有這個邏輯。
所以你就要手動把它還原。
是這個情況啊,好我們這裡呢就不。
不多介紹這個東西了啊,因為這個東西呢,就是給他解了個疑惑啊,實際上呢,也不會考慮這些點啊,你只要知道這些東西就行了啊,好我們來看這個,第九萬,第九萬呢,是一個什麼關卡呢,是一個擺名單的。
剛才玩的這幾個關卡呢。
都是基於這個黑名單的,是吧,那麼我現在呢,就來到擺名單了。
擺名單呢,他說擺名單要比黑名單先知,要更好一些,更多一些,啊這個呢,他是怎麼去把它進通關的呢,對不對,這個是把什麼通關的。
他說擺名單的這個先知呢,我給看下單碼啊,就是這個,嗯這還是黑名單吧,還是黑名單啊。
我還搞錯了,他還是個黑名單先知,就這個呢,其實就是我們可以利用一個,FUZZ的一個思路。
就是我們經常不曉得,車哪些文件嗎,就是他這裡就沒有,他是一個過濾不嚴,就是一個黑名單過濾不嚴,就是他這裡呢,我們剛才是大小寫啊。
還有那些東西是吧,然後到他這裡呢,直接上傳呢,啊他也可以,是不是可以上傳。
然後呢,你看啊我把格式呢,改成這個格式呢,他就,PP他肯定不行了啊,他就不能上傳了。
然後這是SPR,這些提示這些信息。
你可以看一下啊,這個是單碼端,嗯這是個單碼端,對不對,然後這裡呢,定了一些常見類型,這是常見類型的,SPR PPR PPR這些啊,只定義這幾個,但是我們可以看一下,給他介紹個項目。
這個項目呢,在文件上傳和其他項目中呢,都會用到,以後大家有幫助啊。
順便給他提一句,就是個FUZZ項目,你們呢就是一個什麼東西啊,給大家看一下啊,這個叫Wobble的一個字典,discover arctic,然後這裡呢有一個這個叫,Find upload目錄,這個是啥。
你看到啊,他說這個文件上傳的一些這種格式,啊你比如說在這裡呢。
我們可以找到啊,在PP的打開,你看這裡寫這麼多,PATM PPP354啊,IMC他們寫的一大堆呢,你看一大堆,這是啥意思呢,這個其實就是一些可解析成PP的一些場景格式,就說你限制PP不要緊。
你如果說你這裡呢PP5也可以執行出來,就有可能呢可以執行出來。
就你考慮了PP,但你沒有考慮PP5,那麼那你就可以用這個類似的這種。
FUZ這種字典呢,在這個什麼包裡面去跑它。
不就行了嗎,對不對,所以你可能會說,我怎麼知道什麼PP5啊,你把字典導入到那個測試那個地方去不就行了嗎。
那你可能說哎呀我不懂不懂不懂啊,教我教我。
啊來看一下啊,我們上傳,那上傳啊。
那這是那個文件名吧,我就改這個地方嗎,把它發到這個Include模下面去,先清除,把這裡呢當做一個條件選擇中,在這裡呢,把它引入剛才那個字典,是吧,Discover,不是那個ArcTik裡面的那個啊。
這個是個專門那個項目啊,那文件上傳的FUZ這兩PP的呢,是不是那邊全部寫進去了,然後再發包,看著啊,這不就行了嗎,你看根據長度變化來決定哪些文件上傳了,哪些沒有文件上傳,比如這個,看格式裡面。
這個是上傳成功了還是沒有上傳成功啊,對不對,那這是怎麼呢,根據這個長度的變化,是吧,那應該就這幾個都上傳成功了,PP3的上傳成功了,你看起來是不是啊,那上傳成功了,然後你看PP的就沒有成功。
下面就沒有那個路徑,對不對,長度的變異,那其實就是說這個下面長度都是成功的,這就出來了,一個FUZ的一個P2跑,是不是,所以這裡PP3能上成功,PP5也能上成功,那這個文件就能自信了。
那PP5也上成功了,我們試著去訪問一下,W的,PP,是吧,所以說呢,這些東西呢,啊不是C2。PP5,錯誤了,你看是不能訪問到吧,是吧,也能正常解析嘛,PP3,那也能正常解析,對不對。
這個東西我們就不說了啊。
這個FUZ這件事情呢,我們現在呢,還。
沒必要去了解太多,後面這個東西呢,給他說了,你們老文說有沒有什麼支點啊。
這東西老給他推薦,你自己從來不做個遊戲的老文,我不知道你這個報名,究竟在天上幹嘛,什麼一些各種各樣的,什麼遊戲的密碼支點,這裡也有,是吧,你那個支點呢,專門跑這種東西的,那些常見的,什麼鬼。
我還不只說給過一些。
是吧,這個,網上,網站給過的。
這種項目呢,給過的,都給過,老文說。
還有沒有什麼,有沒有啊,唉,自己做個有心人啊,有什麼東西之後呢,自己做個整理和收集,這東西總不是平常。
聽課慢慢收集下來,慢慢了解的,然後再用用的好就,經常用用不好就不用唄。
是吧,他這個不僅是這個文件上傳,你像一些這種常見的一些。
裡面東西都有,是吧,這個,Fuz就是盲逆嘛,盲逆就是不斷拆,對他有很多啊,不管是這個社會租屋啊,文件上傳的啊,還有這個各種各樣的一些東西,他都能拆,你看XS的一些常見的一些這種。
東西是吧,那些常見的一些。
唉這個就自己看吧,我就懶得幹了下去自己翻啊,這個我們後面也會講啊,他是一種叫,我說呢他也不是安全多度,就是一種測試方式啊,就是盲逆的去拆就有什麼,沒辦法的時候呢,就是東西幫你一個勁的跑啊。
尋找裡面可能存在的地方,唉就這個意思,我們現在再來看這個第十關了啊。
這個第十關呢,是一個條件競爭,這個條件競爭還有的用啊,其他的像前面講的九關呢,可能以後都難得碰上,優勢有但是很少,這個條件競爭是個什麼情況啊,簡單來說,他是一種這種邏輯上面的錯誤。
誰說這個驗證呢,他有分代碼的驗證的問題,還分這個邏輯上面的問題,是啥邏輯呢,你這個邏輯有出現什麼問題嗎,我們看這個代碼代碼呢,可以從這裡看,也可以從那個網站上面看。
呃簡單來說,他看代碼呢,如果moving upload file,移動文件那個PP函數,如果前期商務我們給他講過了,安全開發的PP的那個課程的話,對這個函數應該不會陌生,就是針對一個文件的進行移動。
就是文件上傳的一個常見函數,移動一個零四文件,這個零四文件就是我們接收到的文件上傳名,把它移動到這個,upload。png連接這個內容。
那麼代碼呢,可以在這裡看到啊,所以那生命這個全劇變量,upload。png,然後等於這個,路徑下面那個upload,哎呀這個鼠標怎麼回事,怎麼那麼老卡卡的,這是upload目錄,然後呢,這是那個目錄。
然後他把它放在這裡,啥意思呢,他這個邏輯呢我不懂,但我先問大家這個代碼懂不懂啊,他們看得明白你們,他們明白我就不給他慢慢分析了,我直接給你告訴你,他是什麼意思就行了啊,看得懂啊,不明白。
其實你學到最後面了,不管說是挖洞也好,還是說分析一些高級的這種攻擊技巧,全部都要和代碼相關,你如果說不懂代碼,不學安全開發的話,說實話很難的深入,永遠都在那基礎的一些邊界在徘徊,這也是為什麼。
一直要加強代碼方面的原因啊,這種代碼是很簡單的,如果說這種代碼都看不懂,說實話你很難深入了,這個就是文件名啊,我給他直接說這個結果吧,他是先已經商權了,後面判斷呢,再進行這個進這個處理邏輯的。
就是邏輯上的缺陷,啥意思呢,他接收這個文件,接收完之後呢,直接整理呢,就把它進行了一個商權,這個moving upload,就是一個移動文件,是類似商權,就把這個接收過的臨時文件呢。
給他上傳了這個upload目錄,upload目錄就是這個目錄嘛,定義的,定到這個upload裡面,然後呢,接上這個內幕名,內幕名的就是接收到文件名,就把它進行這個商權,後面呢,再進行的是什麼。
判斷EXT和這個writer list,就是擺名單,擺名單裡面有JPG PNG GIF和JPE,這個擺名單驗證,判斷這個EXT,EXT那是接收文件名的一個類型,他就接收到類型,看他在不在裡面,如果在。
那麼就進行正常的邏輯,如果不在,就是輸出,是虧不得,彈出這個black函數,black函數,那我們跟蹤一下,它是幹嘛的,black函數是哪裡,在這裡呢,就提示支援許商權這個類型,然後呢就alig。
就是刪除文件,啥意思呢,就是說他的這個邏輯呢,我進的就是先商權,後面呢再判斷,再進行處理邏輯,成功了就正常,不成功呢就把它進行刪除,那麼其實就是說,在刪除之前呢,這個文件已經商權到這個地方去了。
能不能理解,所以他就利用條件競爭,什麼叫條件競爭呢,就是在這個文件還在服務器的那一插了,我給他,防蚊刀,能不能理解,它是一種邏輯上面的問題,就是說呀,他是先商權,但是很簡單,這個操作呢要同時進行。
就是要不斷的商權,不斷的防蚊,而且他還要一步,一步什麼事情,就是一個防蚊呢,你防蚊呢有什麼用呢,你剛防蚊到裡面又沒了,剛防蚊到又沒了,那怎麼辦呢,就是防蚊機創建那個代碼,搞出來,啥意思。
來看一下這個代碼,這個代碼是幹嘛呢。
forputters寫入文件,打開文件加小點pp,w模式打開,就是我們說寫入模式打開,寫入一個內容就是一個後面代碼,這個代碼是啥意思呢,就是你如果防蚊這個後面代碼,就會自動創建一個文件出來,好理解吧。
這個代碼好理解吧,就是你防蚊了,就自動觸發代碼,這個代碼是幹嘛的呢,就是會新建一個文件,寫入這個代碼,寫入這個後面,代碼就是這個意思,那為什麼要這樣做呢,就是我剛才說的,你上傳了,我防蚊到了。
你剛防蚊到就沒了,有什麼了用,所以我就讓他防蚊的,一旦一防蚊就馬上給我重新創建文件,那他刪除的是那以前文件,那我重新創建文件他不刪,那不就是我的後面代碼,好不好理解,能理解我們就開始操作。
不理解我再給你講一遍,能不能理解,這不理解,不理解,這故意的吧,好我們就來演示啊。
好首先呢我準備一個,這個代碼文件。
這個文件呢就是這個裏面代碼。
就是個叫c2。pp的代碼,就是他的啊,那,那,那,這就是一個,打開一個小點pp,然後寫入文件,就說防蚊這個文件呢就會創建個小點pp,對不對。
好我就先上傳這個小點pp,但是我們可以關注到啊,一旦上傳,他就會自動刪除,打檻子啊。
來我這裏呢,給他檻子啊,我直接防蚊他,先防蚊這個文件啊,現在是沒有的啊,這沒有的,我給他上傳,他直接提示不能上傳,為什麼,他直接提示不能上傳,但並不代表他沒有存在過啊。
原因是什麼呢,代碼執行太快了,就是你剛上傳上去,那服務器存在了一插了,代碼王一下執行發現不符合,那就GG了,所以我們要在他上傳之前,就要準備好,一直去訪問那個路徑的那個準備,能理解吧。
所以呢,我就要做兩個事情,開代碼,第一件事情,就是先不斷的去訪問,他上傳之後保存的地方,如果在黑骸史詩中的話,你可能需要先上傳一下,看一下這個文件的命名,然後確定這個文件路徑,因為你可能之前呢。
不知道他上傳的保存的文件路徑,你可能先上傳個文件,觀察他的命名,然後呢選擇性啊,如果命名呢隨機命名,那就有點尷尬了,那就不能有這個事物了,好我們先訪問啊,那把它保存放到這個Enclose模式下面去。
然後呢在這裡呢設置一下,先把這個清除掉,然後設置一下什麼呢,這個模式叫,Nopenos,選擇這個繼續永遠執行,啥意思啊,就是說我不設置任何東西,在這個數據包不更改任何東西,只是訪問這個路徑。
然後呢把它進行循環,他就會一直在這裡,一直去訪問這個路徑,就是呢不間斷地,訪問他,能理解吧,然後如果說成功之後,按照正常來講,如果成功之後他就會在當前,創建這個小點PD,但現在可以看到並沒有這個問題。
並沒有這個問題,因為有這個文件的話,他不是這個結果,他就會另外一個東西,小點PD沒有出現,有這個結果他就會另外一個東西,一直在訪問,與此同時我們再抓個包,抓個文件,商權包,選中剛才這個文件。
再商權,抓包啊,把這個包也抓到,這個小點PD的那個包,就說這個包呢,你可以先放一下,放出去他會提示,不允許上傳,這個結果,因為呢他後面檢測到,你不是他允許的文件,但是實際上他出現在服務器過。
只說呢在後面的代碼邏輯,把他刪掉了,剛才看了邏輯的,所以我就需要把這個包呢,也不斷地去發送,因為很簡單的道理,你雖然現在呢一直在訪問這個小點PD,但是你文件由於只出現過一次,這個級別,那個代碼指引級別。
不是你用秒能計算出來的,可能就是,多少微秒多少毫秒呢,但是那個代碼一直訪問呢,他不可能做得那麼精準,他不可能說你剛產生他就訪問到的,不會那樣快,所以我還需要做個什麼事情呢,把這個發送商權文件的數據包。
也同樣進行發送,進行批量的測試,依舊來的這個模式,然後呢清除,還是剛才那個測試方案,把商權呢也不斷進行,然後呢也不斷在嘗試訪問那個東西,這個時候啊,看著啊商權呢也不斷進行,我們這個時候刷新一下這個網站。
看到啊,等待奇蹟出現,看這個文件是不是會產生,看這個文件是不是會產生,誒誒誒,啊啊,哦出來了,他來了,他終於來了,你看出來了唄,這就是我們那個後門,對不對,那你接吧,就是兩邊要同時進行才行。
一邊進行都不行,但是有個前因後果,是先訪問那個地址,再上傳,不要說當然你也可以,你也可以先上傳再訪問那個地址,無非就是說時間慢一點而已,邏輯,能不能明白,操作可不可以理解。
這是屬於,他邏輯上面的安全問題,就是說,他的驗證是好的,但是由於呢,他的驗證之前,正常的邏輯應該是,先判斷後上傳,是吧,這麼一個邏輯是正確的,對不對,你這搞錯了,是先上傳後判斷,這就尷尬了呀。
那上傳上去就是說,這個文件呢,還是在服務器的上面停留過的,就是在他停留的這個,那個區間呢,我們就趕緊去訪問他,訪問他呢就利用這個代碼,訪問及清潔文件的特性,是吧,然後訪問了就重新創建文件。
因為如果說我訪問他之後呢,後面又把他刪除了也沒什麼意義,所以我要在他訪問的同時,馬上創建個文件,那這個文件呢由於他不會刪的,那麼這個文件就是我們的後門文件,就把後門文件寫到這個文件裡面去,非常好理解。
簡單易懂,不要說不懂,不懂就是裝懂。
這都不懂那就沒辦法了,細個我給你講。
你都不懂那真沒辦法,那我怎麼判斷呢,沒辦法判斷,前黑盒裡面是沒辦法判斷的,白盒裡面是能夠看到的,黑盒裡面就是沒辦法判斷,你可能問,那我黑盒裡面我怎麼測有沒有這個漏洞呢,就是這個測法呀,能測出來就測出來。
測不出來就測不出來,就這麼簡單,不要問那麼多為什麼。
很多東西你可以自己思考一下就知道原因,不是很大的問題,這個呢我們就說那個,你黑盒裡面測就是我剛才那個操作方法呀,你測個幾遍還測不出來就是沒有這個問題嘛,對不對,那白盒就不說了,直接看單碼嘛,好。
我們再看第十一關卡,第十一關卡,是一個什麼呢,是一個R字渲染,這個R字渲染又是什麼鬼東西呀,是這樣的,在我們這個,圖片的這個,商圈操作裡面呢,大家都知道,我舉個很簡單的例子,這個R字渲染是什麼概念。
就像我拿我這個自己博客來講,我就有這個R字渲染,那我上傳一張圖片,大家都知道,這個圖片呢,有尺寸大小,就好比我在我這個,這個經常給他吃瓜的這個,級別裡面,我可以把這個圖片呢,給他這樣呢縮小,和放大。
他怎麼樣才能做到,放大縮小,這個圖片還那麼清晰,或者說怎麼做到適應於我們這個頁面呢,對不對,所以這個,後端語言呢,就會對他進行R字渲染,什麼意思呢,就是讓這個圖片呢,更好的在這個網站頁面中呢。
去完美的顯示,這就是R字渲染的邏輯,那麼既然有這個邏輯之後,他就會更改這個本身的代碼,所以R字渲染呢,這個呢就是很多網站經常用到的,那麼R字渲染,會造成一些,圖片裡面的一些代碼呢,不存在的情況。
那我給他簡單舉個例子,你看著。
我現在呢去上傳一張圖片,上傳一下我們的這個,圖片,好上上去,然後我把圖片呢。
給他保存出來,好這個圖片呢。
保存出來之後我們來對比一下,這兩張圖片。
我們先看大小,這是我原圖片,是291KB,這是從他上面上傳之後下下來的,變成了20。6KB。
大家可以看到,這個結果呢。
已經顯了一間了,一個是200多KB,一個變成20KB了,那麼。
也就是說呀,你圖片裡面的東西,肯定發生更改,因為你圖片裡面的東西沒更改,那大小字怎麼改了呢,是吧,所以我們就需要對這個圖片來進行分析,你可能會問,這和文件上傳有什麼關係呀,因為R字渲染。
會造成你文件上傳的時候,出現問題,就是你上傳的文件代碼中如果說還有後面代碼的話,你沒有寫到正確的位置,那麼就不行,就會有這麼一個邏輯,我們就需要用到這個專業的工具。
就是0101裡頭,石榴精子,查看器。
還有其他工具都可以看,我們習慣用這個的,用它呢,來幫你去檢測染死的和上傳之後的兩個結果,來幫你去檢測染死的和上傳之後的兩個結果,怎麼檢測啊,這兩文件呢,把它都搞出來,然後這裡有個工具叫做比較文件。
然後在那,文件A和文件B,進行R精子比較,然後這裡呢,就會有一個地圖,有個比較的結果出來,差異和匹配項,差異和匹配項,我們就找到匹配項,這是它還保留在的東西,這是它還保留在的東西,就是說這裡呢。
這個東西,什麼鬼情況,什麼鬼情況,什麼鬼情況,它保留在這個東西,你看保留在這個東西,然後你看我這裡保留在這裡有張後門代碼,意思就是說,意思就是說,你把你的後門代碼呢,要放在它保留的這個部分這裡。
你如果說它不保留這個部分,你看下面部分就出現更改,下面部分就出現更改,下面部分就出現更改,這是差異的地方,差異上面的改了,匹配的地方,也就是說只有這幾個地方呢,它是能夠相應上的,後面東西全部發生更改。
也就是說如果你把後門代碼插入到這個圖片的下面部分的話,那麼上傳上去是沒有任何用處的,它也會自動消失,能理解吧,所以說你只能,先上傳,上傳之後呢,你把文件看它保留哪個部分,然後把後門代碼寫到保留部分這裡。
所以我就把後門代碼寫到保留部分這裡,所以我就把後門代碼寫到保留部分這裡,上傳,你看上傳之後呢它依舊還是把後門代碼保留。
對不對,如果你把後門代碼寫到下面,比如說你看現在,我給它做個演示,你看這個後門代碼,我寫在這個下面,是在這個以禮建府這個下面,我把它寫在這裡,這個代碼裡面有兩個地方,都有這個後門。
我重新再給它上傳一下這個以禮建府,然後呢我把以禮建府拿出來。
好。
你現在再看一下這個文件。
看這個代碼,你看這個地方,這是我上傳之後的這個保留地方,我們先來對比這兩個文件,好,找到它保留的地方,好這個保留的地方,之前超日後門還在這裡,好你看下面,誒還在這裡,尷尬了。
不要緊,不要注意,它有些地方還是更改了,只是有些地方還是沒有把這個清除掉,不要緊,好,知道這個20渲染之後呢。
那麼我就給指標怎麼樣呢,這裡面有後門嘛,我把後門地址寄出,就這個JF裡面的後門,然後呢它給了個提示,包含,它有個文件包含這個路徑,然後呢我就把這個後門單碗呢,剛才上傳的後門單碗呢,讓它去包含這個路徑。
然後呢這裡是後門裡面是個,是多少代碼是多少來著。
密碼是多少。
密碼是這個pass,這個pass,你看結果就出來了。
這個後面不是文件上傳的路徑,相關的這是文件包含的路徑,就是說其實這裡呢,它就是讓你上傳個文件,並沒有說把那個後門上傳。
因為那個文件呢直接訪問它是,直接訪問呢它是不行的。
然後呢你再執行也沒用,就是因為接觸這個文件包含,用這個文件地址包含,去執行這個代碼,這個文件包含呢我們現在沒有講,這個是文件上傳講完馬上要講的,這個路徑呢,就是和這個文件上傳的一個結合。
但是說實話這個文件上傳呢,就是文件上傳文件包含呢,我們拎當摘刀的時候在講,所以後面這個為什麼這樣操作呢,大家不用理解啊,我們後面再講文件上傳的時候呢,他只是考慮這個R4渲染。
就讓大家知道有這個R4渲染的事情,R4渲染給我們帶來的危害是什麼意思呢,就是說有時候呢,你可能文件代碼中呢有這個後門,但是你通過上傳之後呢,他通過這個渲染操作之後呢,會把這個後門的給他刪掉。
也就是說你上傳之後呢,後門代碼就沒了,他就不會把它保留到,所以你需要通過兩次上傳,來看一下他保留的部分,再把代碼寫到那個,後門的部分那你這個文件的才帶有,後門代碼是這個意思啊不要理解錯了啊。
後面這個文件上傳的是另外一回事啊,不用管他,好這個是我們說的R4渲染,再來看第十二關卡,第十二關卡呢屬於函數,上面的這個安全問題,他說,以前呢在版本以下呢,可以領接到,現在呢他的代碼呢。
有個函數缺陷就是,叫Movie Upload Fail,這個函數缺陷,這個函數缺陷如果存在,重命名操作的話就會有這個安全問題,這是屬於函數缺陷,啥意思呢,就是說啊。
他雖然是白名單驗證,我們來看一下代碼啊,他雖然說這裡呢是白名單驗證,也是黑名單驗證啊,我們不用黑名單驗證log他,我直接上傳個圖片,但是他用那個Movie Upload,缺陷文件名和一個,這個名字呢。
是這個Tablet File呢,是從這裡來的。
然後呢進行這個操作,這個是啥概念呢我給他說一下啊,就說你呢去上傳個文件。
就是對這個文件,的命名的一個操作啊,哎呀這怎麼個鼠標,怎麼亂七八糟的,估計這個無線鼠標沒顛了。
我上下個1。jpg,然後這裡是你要保存的文件名,那有人會說了,我就保存成share。pp,你這樣保存了點上傳之後呢,不允許的文件類型,是吧,所以他就寫個什麼share。pp,以前呢有00階段。
就是把後面00階段刪掉,然後寫個。jpg,讓你這個通過,你這樣呢看上去好像可行,但是由於這個版本不是5。3。4以下,所以這個00階段沒有生銷,那麼保存的文件名呢,他還是有問題,對不對,還是有問題啊。
就你這樣寫呢,以前是這樣寫是吧,文件雖然上傳成功了,但是你去訪問這個文件的地址呢,他這個路徑訪問呢,啥也不是,你訪問這個。jpg呢,他也沒有,所以說呢。
他這個文件是不行,就用00階段刪掉。
他是什麼呢,就是這個函數缺陷,就這個函數用到這個函數,去對文件進行保存的時候,如果說這個目錄保存的文件名。
能夠可空的話,就能造成這個安全問題,就說呢。
我上傳一個後門,然後把這個文件名呢改成這個什麼,share。pp,然後一個什麼,改成這個文件名的話,那麼就會當作,share。pp了,這是這個函數的一個缺陷,這是ctf裡面,經常會考的一個點,其實呢。
就是說這個漏洞的利用條件,就是用到這個函數,而且,這個文件的名字呢,你能改成這個,就是以這個名字來命名存儲的,那麼就可以利用這個漏洞,知道吧,他有條件的,不是說哎呀用到這個函數就有漏洞。
是說用到這個函數的前提,下面的話,這個保存的文件名由你來指定,就是類似於說重命名的意思,就說你上傳之後,有些呢是把這個文件名呢,是吧,去按照自己的邏輯去命名的,有些呢就是原封不動的把這個文件名呢。
存儲了,對不對,如果說是這種,這種名字去存儲的話,就是由你來指定這個文件命名的話,命名去存儲的話,那麼你就可以把他命名成這種情況,那我能實現突破,來我們可以看一下啊,點擊上下,我們看一下地址啊。
地址呢他就自動變成這個路徑地址,然後你再訪問這個路徑地址,你看這不就後面了嗎,他自動把點去掉了,這個路徑地址解決出來了。
這個呢,是屬於,函數的漏洞,屬於這個叫moving upload file的漏洞,就你用到,這個函數的時候一定要注意,這個路徑如果,可空的話就是包存的文件名。
可空的話,就會造成這個安全問題,就可以控制他,來實現這個,後面,的部分直路,那麼,截止到目前的話,那麼還有最後一關,這個最後一關呢我們就不講了。
這一關呢,是一個代碼審計題目,就是直接看代碼分析他的安全問題,字典呢和前面呢,沒什麼太大差異。
所以我就不講了,答案呢我也寫到這個後面去了。
有興趣呢你可以把這個答案呢,把它一復制三卷就行了,但是後面那些前面一些字典,無非就是說讓你從代碼中去找漏洞,那就不一樣,他就把前面幾個進行結合,也沒什麼太大差異,這個後面這個最後一個關卡呢。
其實就是考核的是這個,從代碼中的去分析漏洞。
前面幾個呢就是單個的字典,好這個就是我們這個文件上傳的,常規的軟生態的一些,東西,然後這個文件上傳的是講的,這個文件上傳的不一樣,部分有些字典在其他腳本中是通用的,除了一些特性之外,就像我們剛才說的。
什麼這個Movies的代碼的,這個函數漏洞缺陷,包括這個什麼。atxs,的這種缺陷,那像這種呢就屬於這個PP的特性,就是他特有的,其他的像什麼Java裡面的文件上傳,或者說這個。
其他語言的文件上傳就沒有這個東西,但是有些呢是能夠通用的,就是這個邏輯的,就說這個邏輯的判斷不是代碼有問題,而是你自己判斷的,驗證,先後順序呢有問題,是吧所以說呢他和這個,語言代碼沒有關係。
包括像這個文件頭啊,什麼20宣源啊黑白名單的,驗證啊這些前段驗證,這都是和語言,沒有任何關係的,都是屬於一種驗證的思路驗證的,邏輯不是說PP特有,其他語言沒有,PP特有的僅僅只是,他裡面的這種函數差異。
和他的這個中間間這個。access,因為他中間間,和這個PP的版本呢,PP呢是掛勾的,就是PP呢用什麼apache,這個Java呢用什麼tomcat用其他的這些中間間,對不對所以呢如果中間間不同。
那麼中間上面的安全問題造成了,上傳的也不同,所以啊我這裡呢雖然說沒有把它,歸類到這個上面去因為他太多,太複雜了無法說,就說我今天講文件上傳,雖然說我只是說講PP,但是你要意識到,有些這個支點呢是在。
其他語言的這個裡面呢也是通用的,有部分不通用的原因就是,因為一些特性原因,比如說這函數是PP特有的,他不通用中間間呢也是他特有的,他不通用其他的呢,大部分都是通用的,因為這些全部都屬於驗證邏輯了。
和代碼沒有關係,他的邏輯思路出了問題,並不是說你代碼,寫的不安全,說到這裡,希望大家能夠反复思考一下,以後呢即使說,上到java的時候,因為上java的話我不可能說,加到java我再給你講一遍文件上傳。
不會了,因為文件上傳他的那一邊,就是這麼弄你java裡面,也無非就是這些東西,無非就是說他上傳的格式不一樣,asp的就不是在上傳。pep的,除了那個字外沒有,其他區別,他唯一有區別的就是區別在。
後面區別在這個拓展,內就是什麼區別呢,就是他裡面有些組件,就類似比如說編輯器這種類似意思,他有些組件的有文件上傳,功能裡面除了內容,是java的特有的就是他特有的,組件出現這個上傳內容,除此之外上面。
軟生態開發出來的代碼邏輯,都是通用的,都是通用的,說實話,要把它講得很清晰很明瞭,太難了,就說你自己要有個腦子去思考,你要去把它分辨好,這是哪些哪些,我沒有寫出來,但是你要明白,我講了這麼多聽得懂的。
他應該是知道我說的意思,如果說我現在講了這麼多,你聽得人理物理,說實話那真是蠻尷尬的。
我剛才說的,雖然講的是ppp的文件上傳,但是有部分字典,是在其他腳本語言中的文件上傳,也是一樣的邏輯關係,這一點希望大家明白,為什麼大家應該能夠看出來,在講和之前我說的很明確,這個文件上傳。
不僅是代碼中的事情,而且有一些是非代碼方面的問題,就像我說的,驗證的順序問題,這哪是代碼問題,你代碼再安全你先上傳後保存,這個邏輯本身就有問題,和他沒有什麼問題,像這種問題的話。
你說你用java寫用pp寫,有什麼不一樣嗎,都是一樣的都是邏輯出了問題,代碼沒有問題,但是通用的就是這個原因,你把這個漏洞的仔細自己分析好,就知道哪些是通用哪些是不通用,做個總結不就ok了嗎。
你如果說不會分類,不知道是不是通用,那就說明你本身對這個漏洞不理解,所以你就做不到區分,再說一遍,這個課程今天內容就講完了。
這是文件上傳的第一次課,下期課就是按照這個圖往下進行。
我相信把這個文件上傳,上完之後就會有個大致了解,但是實話實說,文件上傳這塊的安全漏洞,說實話,現在是越來越少了,也不是說越來越少了,有機會還是能碰到,就說,碰運氣吧,就算你如果很明顯的文件上傳的地方。
你去撤,很難撤到,一般文件上傳容易產生漏洞的地方,是一些難發現的文件上傳點,啥意思呢,就說你在去資訊蒐集的時候,有些文件上傳就是,你看網站就直接可以看出來的文件上傳,就比如說網站一打開,登陸個用戶。
裡面就有文件上傳,那就很直接的文件上傳,你撤哪一個點就很難撤出來,安全漏洞,但是有時候你去設一個網站,你打開之後早半天都沒有發現文件上傳,少少少,突然少了一個他的子余名,或是少了一個端口。
端口打開之後在裡面又找著,發現裡面有文件上傳的功能,這個時候你撤,說不定他就有安全問題,一般文件上傳是喜歡,產生在那些,難發現的文件上傳點,而不是說,你打開就有文件上傳,然後你就把它撤出來了。
這種機率性比較小,就像我們說的,漏洞能挖出來的大部分都是,不容易發現的地方,因為容易發現的地方就有那個漏洞,那早就有人搞進去了,是不是,就是這個邏輯,包括其他漏洞也是這麼個邏輯。
越難發現的地方你發現到了,那個漏洞的可能性就越高,你直接打開,你卡卡卡的就按撤,今天還有一個人給我發消息,他在撤一個,國外的一個很搭的,一個違法網站,一個很多雷的網站,他在那個登錄框裡面去撤那個豬肉。
他問我是不是有豬肉,呵呵呵,你說哪有那麼簡單的,如果撤有豬肉,你好像把別人當傻子一樣,你真的是,學完豬肉,你就在上面撤起來了,好像學完之後就能出功夫,你換在幾年前。
那個以前沒有現在安全發展得這麼快的時候,那都撤不出來,你別說現在,2023年了,四個小白都懂得安全,還有這麼明顯的漏洞,給你去撤嗎,還是一個這個,賭博類的網站,別人成天每天,幾百上千個W在裡面流行的。
那個東西讓你這樣撤撤撤撤,死了,你覺得現實嗎。
所以不要想太多,你搞這些東西。
你自己呢,唉你們不要說關鍵字,好就說這麼多吧。
再說什麼再說關鍵字,說著說著別把這個直播間搞瘋了。
不說了,我們就說這麼多,時間關係我就不給大家問問題了,有問題的下去再問,拜拜了。
有问题呢下去再问,拜拜了啊。