小迪安全课程笔记-2024-六-
小迪安全课程笔记 2024(六)
P23:第23天-PHP应用&后台模块&Session&Cookie&Token&身份验证&唯一性 - 逆风微笑的代码狗 - BV1Mx4y1q7Ny
啊今天呢讲第23天啊,讲这个继续开发啊,pp的这个开发,然后讲的是他的后台模块的几个技术,包括这个C型技术,cooking技术和token技术,这三个技术呢是非常有必要学一下的啊。
他是和我们一些安全漏洞的息息相关的,我们也会有着重要的一个演示啊,简单来说呢,这里是他的一个模型啊,我们呢就是做这三个基数的一个编写啊,首先呢我们来说第一个cooking基数。

这个coin技术呢前面是它的一个流程啊,是他们一个个自营流程呢,先第一步呢请求啊,然后设置cookie保存,cookie发送cookie,读取cookie返回值,然后返回内容是这个十步呃。

这是cookie的一个流程啊,简单来说就分到这一步啊,八部大家可以仔细的看一下啊,如果说不熟悉原理的话,可以看一下,那么cookie是一个什么东西呢,简单来说啊,这里呢cookie是一个什么东西啊。
呃你可以网上查一下,我们简单来说它是一个用户的身份的一个平均,我们可以称之为cooking,然后用户的这个绘画平局呢称之为叫C型,它的具体作用是干嘛的呢,cooking的一个作用呢。
主要就是用来判定用户身份的,我们举个很简单的例子,比如说你在后台里面去登录了一个用户之后,然后呢用户在登录的时候,不是经常会有个选项叫做记住密码,或者说记住我记住多长时间,这么一个设置按钮勾选之后呢。
你可以选择下次打开浏览器的时候,在访问同样的地址的时候,就不再需要登录啊,那个选项呢,其实就是类似于勾选了cooking的保存技术,将你的用户平均呢保存到你的浏览器本地。
从而呢当你浏览器再去访问那个网站的时候呢,他就知道是你这个人,然后那就不需要再登录了,那么这个呢就是个最典型的一个cooking的一个,技术实现,用来把用户的平均呢保存cookie,就是那个用户平均。
然后这个用户平均呢就是你的身份信息,不需要再次登录来验证了,这个就是cookie,那么C型呢就有点不太一样啊,我们等一下讲到的时候再给他说好,那这个cooking的前因后果讲清楚之后呢。
也就是说他就是在用,用来判断用户身份的一项技术,那么那就是一串平均,那么现在呢我们就来用PP的来书写一下,这个建议的流程。

首先啊我们这里也是一样的道理,把我们这个环境呢先启动起来,启动了数据库和环境都启动起来,然后呢在这里呢用这个开发期啊启动起来。

然后呢,这里呢我们重新打开上节课的那个源码体系,三这个是那个叫DOO的大。

好,然后呢,在这里呢我们在ADY下面呢创建几个文件哈,首先第一个要创建的。

就是我们的这个什么文件啊,比如说叫ADD me gc。

点PPGC的意思是gun cooking好了,再创建个index gc点PPT,再创建个。


GOUT点到C点PP,那么分别这三个文件对应什么意思呢,这个是登录文件,可以简单注释一下好,那这个呢是登录成功的首页文件,好那这个呢就是蹲除文件,就是说这里的负责登录,当然登录之后成功之后呢。
就来到这个所有文件,然后呢如果电脑推出,就会跳转到这个灯处文件上来,首先呢我们首先啊,这里呢可以采用一个TML,去写一个后台的登录框,那么这里呢,我为了这个让大家看到更美观的效果呢。
我用恰个恰个JBT啊,让他帮我去生成一个漂亮的啊,这个HTM的一个后台登录的样式啊,避免了我们这个页面太粗糙是吧,还是要搞美观点啊,也是给大家说一下啊,这个签个GPT呢也是完全OK的。
适用于在这个开发里面的,但是我们不能说完全指望他去写这样子呢,你就学不到里面的精髓了啊,所以呢我们就说像这种央视啊,界面美观呢,就让他来做核心的地方呢,我们就还是自己是吧,操作一下啊。
然后帮我生成一个这个后台的这么一个漂亮,文件,漂亮建立出来啊,漂亮界面,他就会帮你去写一些样式,这个样式的就是什么颜色呀,背景呀啊那个长度啊,大小啊是吧,但是呢核心东西是不会变的啊。
都是去传递这个登录的啊,就TM来输在那个页面的编写,然后核心功能就用pp来接收是吧,好那这里写完了,写完之后呢,我们把它复制到这里来运行一下。

看一下效果呀,来我们看一下这面,那你看这个界面就帮我写出来了,你是不是就比我写的好多了呀,对不对好,那这个写出来之后呢,我们现在呢就来做这个上面的做的事情啊。

首先呢我们看一下他提交的这个表单值,他虽然所有功能都能写出来啊,但是我们还是要学的啊,因为你不写的话,你这个完全靠他也不行啊,这里的表单值呢用户呢是用username传递啊。
password是这个password密码是吧啊,点登录,然后呢提交请求的是一个井号,就是当前啊,你有空的话也是当前脚本,然后这边去接收它,那么这个cookie判断流程是一个什么流程呢。
首先我们是先要接收到这个账号密码,解释到账号密码之后呢,判定一下,这大概是分为这几步啊,我们给他写一下哈,注释一下啊,那首先呢第一步是不是我们要这个接收,输入的这个账号密码是吧。
好那么第二步呢就是判定这个账号密码呢,堆不堆是吧,正确性,那么正确执行之后呢,啊正确后就什么生成这个cookie进行这个保存,第四步呢就跳转至这个成功登录的这个页面,就说这是一个正常的啊。
就是成功的就这么一个流程哈,如果说失败的话,那么就是按另外一套思路啊,首先要接受这个账密码,然后判断这个账密码正确性,然后呢再去判断成功之后就正确的,就这个啊,如果是错误的话,我们也把它写下3。1啊。
如果错误的账号密码内,就进行这个什么提示是吧,就大概是这么一个过程哈,成功了就生成,不成功就不生成好了,这个流程写清楚啊,首先呢输入接收接收怎么说呢,第一部的代码代码第一步在注释语句啊。
然后呢呃接收的话是不是就是post的节奏啊,这里面我们可以看一下他的请求方式,That's postor,那么就是刀乐福下划线post,接收这个UC类目子就在里面表单名字吗,USC这UI就是这里的哈。
就是用户名,然后呢我们取取一个变量来接收,user等于就是UZI名,然后呢继续df pass呢,就等于什么等于这个解释过来的password值对吧,解释两个值之后好,先解说,解说完之后。
是不是要进行这个用户的账号密码判断了,那用户账号密码判断呢是不是要在数据库里面。

所以我们这里呢要创建一个数据库了啊是吧,这个上节课已经讲过了啊。

嗯连接一下啊。

一九呢选这个DOM,零一在这里创建一个表表呢,就叫ADD me表,然后呢前面的一个us。

下面一个,他是word就搞这两个就可以了啊,其他的我们说点击保存,取名叫艾米,那么艾德米表里面就有一个password,然后呢我们写一个值进去,然后是艾德里,密码是123456好,我这就不搞加密值了啊。
如果真是13的小伙伴,可能这里有个加密值,但在五左右了啊,如果是加密值的话,是什么加密,就用什么函数加密就可以了,我现在搞明文AB,然后表示多么离你,那么现在呢就是按照一样的道理。
前期我们在这里已经不是生成好配置文件了吗,连接这个配置文件是吧,用它去连接它,是不是,然后这里是不是就是怎么样一个操作,判断它的一个操作就是什么,第二把怎么点不了他的这个东西是吧,那他的东西到底张鑫。
那么他的这个步骤呢就是首先呢是吧,连接数据库进行数据库查询,将这个数据等将这个数据啊进行这个对比是吧,那么这里呢就是连续库怎么连呢,是首先到这里呢一个包含文件,那CLUDE包含那个配置文件。
就是商机目录的卡贝卡啊,包含这个商店文件,那么把这个配置文件包含进去之后,接下来呢就是MYSQL就这里要定一个什么function,定义一个函数function function。
定一个login叫loin ch,是吧,LNCHK定义的这个函数好,不定义吧,先不定义啊,直接开始啊,照这个密码啊,我们来定义SQL语句吧。
这SQL语句SQL语句就等于snack simple enemy,然后下面的while条件是什么,条件是这个USLAM等于变量,双引号不要搞混淆了啊,前面的双引号后面多了双引号去掉。
那么就等于什么变量user是吧,判断一下安的条件,password等于什么单独pass,然后呢后面语句结束,后面加一个语句结束,这个是circle语句的结束,整个后面呢就是这个语句帧数。
那就是将这个结束的账号,密码的拼接到这个语句里面去判断,那么很简单的道理,这个语句在这里执行的话,我们可以在这里点一个查询,如果我在这里呢给他传递的知识,传递的密码是123456,建立执行。
那么它就会返回,返回怎么返回一个空啊,不会吧,有TWWD,查询艾德米发挥,哦这里没保存啊,查询一下,没保存呢,是不是有结果啊,如果说这是错的啊,我们就写个错误结果来运行,它就为空是吧。
有时候有返回结果就是查询正确,就是这密码对着。

所以我们这边可以进行一个判定,MYSQL呢先去执行它,执行这个语句,然后CON的下面这个链接的,然后执行这个circle,好判断一下,这里面加上一个叫REDATE数据,判断一下啊。
my soul下换成这个long labels,是判断它的一个调速,我们来进行这个调速的一个判断,就是返回函数啊,echo一下,输出一下这个结果就是这里呢执行这个SQL语句。
将这个结果的一个条数给它显示出来,把它输出好,我们试着去运行一下,看一下啊。

打开这个页面好,我们随便输一下啊,比如说输入这个enemy123456。

看他输出是什么值,诶,没有输出,没有输出是什么情况,我把这个echo打一下,打一下这个语句啊,看这里对不对。

你看目前这两个结束到是空的啊,在SQL语句我们把它输出一下啊,随便写一下好,他能正确接收,能直接接收,没问题啊,那么接下来ADD me,123456,好这里呢它也能正常执行。

执行之后呢,这个结果这样判断,它的取函数应该是不能这样判断啊,不能这样判断,怀疑应该是个粗条件,这些判断的一个结果,我在这看一下。


这是哪里有问题啊。

不用这个判断啊,我换一个判断方式,不用这个判断。

这个函数画个panda盒子啊,我搜一下,看一下那个,判断数据,获取执行结果行书,对的啊,我看一下,是这样判断mysql a numbers大结果大于零。

看看是不是为空,来看一下这个执行结果。

我一下啊,不如果。

看一下。

OK对了啊对对了啊,刚才你们什么CON和那个没关系,引都引用了,你说你们自己都搞不清楚,还一直在那里说说说,可以了啊,刚才判断应该是他这个判断的,就是把它装个条件,判断是不是大于零,他如果有条件的话。
就是非零的话,就是成功之影,这个就能判断它登录成功了,所以我们就可以给他一个echo提示弹出一下是吧,这个ARTIC,然后呢其实这个登录成功,然后登录成功之后要做的什么事情呢。
继续要做这个在做什么事情呢,登录成功之后,要做的就是把它进行一个页面的跳转是吧,就进行一个HLEJD,进行一个LOC,重定向啊,这个是怎么写的,Los,哎呀英文单词怎么写的,搞不清楚了啊,是这样写的吧。
是不是这样写的,对的呀,那行啊,哎呀我不知道那个怎么写的啊,不好意思啊,我看一下那个英文单词,嗯就这样啊,还是大写的大写的跳转到这个index gc,就是跳转到登录首页再来哈。
好那么也就是说调整这个登录首页,并且登录成功是吧,如果呢还有结果不一样的话啊,也就是说结果错误的话,我们就给他提示登录失败对吧,然后就跳转到这个这个这个这个这个index coc。
就是页面的重定向到这里啊,让定向引导这里来啊。

我们可以试一下啊,来看一下啊,来现在目前是登录,你看一下登录啊,先登录400,提示登录400,如果数堆的话,速堆的哈,123456对的,那它就跳到这里来了,看到没,他跳着来了。

R index,由于他跳出了,所以这里就没弹窗了,所以这里写不写都无所谓,直接跳就完了啊,这个注释掉登录失败呢,就这里呢嗯登录失败的话,就直接提示登录失败,然后这个登录成功后再来啊,这个逻辑是正确的。
那么现在呢就是说我们很简单,但是这个页面能直接访问,就是index c呢,它能直接访问。

对不对,他能直接访问呢,它是能直接访问的,所以啊我们这里呢这个直接访问就不行啊,直接访问的话,我肯定是要写个这个后台首页啊是吧。

这里是我们的后台首页地址啊,比如说欢迎随时随地的一个登录是吧,直接访问肯定不行,所以在index c这个首页文件呢需要加入这个验证,就是防止对方直接访问就能访问到,所以呢还要加验证,那验证该怎么加呃。
就是说你登录成功之后呢,我们这里呢就是要把它生成cookie,把它进行保存,那么保存之后再调整到这个页面的时候,就不会被拒绝是吧,所以这里呢就来先添加这个session,设置session。
然后怎么设置呢,这里呢有几个讲究啊,首先第一步那就是设置use name,就是随便设置的,这个cooking是随便设置的都行啊,你怎么设置都行,只要你后面的再认定这个cookie。
设置流程和那个身份的平均都是相关的,就可以,那么设置呢我就直接这里copy一下,给大家看一下啊,来这是它的一个设置情况啊,那我给大家看一下这个设置的一个大概情况呢,这个呢是设置一个月过期。
就设置cooking的存活时间,这个是什么,TAO就取当前时间加60,加60×10乘十二十乘三零,啥意思啊,秒分小时,24,小时乘30就是一个热,所以呢这个就是大概意思是什么呢。
就设置username等于这个user值就是设置密码,然后在设置cookie里面password等于这个password,然后它的存活时间是一个热,然后这边呢是这个存活的这个域名。
就是当前目录设置好之后呢,调整好之后先把它推出来,就是跳什么推出来啊,我们来看一下它是不会有打开这个页面好,这里一直提示登录失败,这里呢可以把它进行一个检测啊,就是检测什么呢。
检测这个进行一个衣服判断啊,衣服这个DOLFSA,因为他一直打开就会提示这个,因为他一直没有检测到你这个有成功,所以他会跳起来,我们再来进行一个判断,进行一个什么判断呢,就进行说我没有登录的时候啊。
我就不会提示这个灯饰版,所以我就进行一个检测,到时候server什么。

这个可以问一下这个check bot啊,那告诉你一下啊。

它的一个判断流程啊,当时你也可以判断他有没有输数据都可以啊,我们判断,比如说这个P1P内置的这个什么dolf server,判断,表单提交,嗯那可以用这个来result moot来判断。
就如果这里有pol post请求的话,那么我们就怎么操作呢,就说的如果这里有post请求的话,就if判断他是说如果有post请求的话,怎么办呢,19进行这个循环呢,把写进去啊,对不对。
那就不会进入这个else,就说先要有pose的请求,你才能进入这栏。

所以这个20就不会出发,我们打开的时候,它就不会提示了,你看他就不会提示登录失败了。

因为登录失败是因为呢他检测到你这个账号,密码和上面不对,进到我在那是先判断里面登录,你都没有登录,就不会进入20。

所以我这里再判断,你看他这逻辑又增长啊,他就调整这个是不是。

然后我们再看现在cooking是不是就设置了啊,我看下浏览器的信息。


是的吧,好我们可以再试一下啊,我们现在呢可以去访问一下这个地址啊,来我输入这个密码,我输入错误密码,我看一下啊,我输错密码,他就不会以这个就不会记录cookie,为什么我登录他的cooking是什么。
UZI的密码是123456,是刚才的,是刚才嘛,但这是真的失败,因为为什么呢,因为这个是要确定执行成功之后,他才设置cookie,如果说不执行成功,就在你那返回结果。
这个返回结果就是我们说的判定他这个什么,把简单的再注释一下,就是判断用户登录成功是吧,这个是他的用户真实啊,这个呢就是我们说的他的用户登录400,就提示,这个是这个是判断用户登录成功的一个情况。
登录成功之后呢,他就会设空里,所以它设置cooking的一个前提条件是,你前期登录成功过,所以他cookie就在里面,对不对好,那我这样子写之后是为了干嘛,就是让他调整到手这个地址。
那个地址是用来判定的,我们可以在这边呢写上这么一个代码啊,我们给大家看一下啊,讲这个代码啊,好这个代码呢我先删除一部分,删除一部分,好这个是干嘛的呢,这是个ATM代码,那就是首页地址。
欢迎欢迎您用户来访问一下这个地址,访问下这个例子,这个index这个路径,那我先访问一下艾德米德米,为什么他的路径就是PP里面,从cookie里面去接受这个UI。
我们这里访问它的这个cookie是等于什么呀,看下我们的访问cookie呢,它是等于这个那UAI,所以他就是欢迎AMY,所以也就是说你有这个cooking之后呢,再访问这个页面,它就是默认你是这个用户。
但如果说没有的话,那么就没有这个退出登录,就会执行这个login,点PP是吧,我把点C,那么这个有什么意义呢,我们先把它做出来,我们再给它来说它的意义啊,好那这里呢直接发文,他就有是吧。
就是你这里待了cookie。

你就有好,我们现在试一下啊,当我去换个浏览器打开的时候,大家看一下啊,换个浏览器打开的时候,大家觉得我现在换这个浏览器,打开这个地址,它会显示什么,它会显示什么,先欢迎你艾米还是什么来访问一下。
他怎么也是欢迎艾米亚来看一下这里嗯。

这个网络这里看他的信息。

那他这里有USM1356。

这啥情况啊,来我们这里呢,点一下这个地方历史记录不是历史记录,删除cookie,清除数据是吧,点击清除过去小时的好,再来刷新一下访问好,还是他,那就说一锅一个小时已经不行了,我还清楚来。
过去24小时的清楚好重新打开,访问一下这个地址啊。

看下什么效果,发文404,什么情况直接访问192。168,1。72米点index gc点pp,那,这是我另外写了个登录啊。

这个不是和他相关的,还是因为他有两个项目啊,他运行直接发红包来在这里啊。

他访问404啊。

这什么情况啊。

其实就是说呀他这里啊为什么防我四密四,我把这个验证码改一下啊,因为这个网站绑定的有点问题啊,我绑定一下,我是为主,我是前期搞了个另外一个项目,指向PP是多,我换到这来就正常了,画再来重新把它启动一下。
好像用这个1+7000访问啊,不要用这个调试器的,调试器会自动构造个页面,这有点不太一样,index港C点TP,你看是吧,欢迎你,你看啥都没有,为什么啥都没有啊,来刷新一下网络,开了cookie。
因为你可以看到啊,在cooking这里一栏呢,他的cooking这里都没有,cookie都没有,cookie都没有啊,为什么,因为你没有登录,他没有写cookie,没有设置cookie。
登录cooking都没有嗯,你可以尝试一下呢,QUE没有是吧好,但是呢你可以看一下啊。

我现在来做个事情,我来登录一下,然后米杠11点PP我登录一下啊,大家看看啊,我登录2米123456登录啊。

是不是进去了,然后你再刷新这个页面,那你是有cookie,因为你登录页面就有了,就是你没有登录的话,是不是就是这个用户没有啊,所以我就可以在前面这个login index,这里写上一个什么东西呢。
是我在写个写个什么东西呢,我会在这里写个判断,写个什么判断呢,就是判断你的用户cooking是不是对的,不是对的,我就把你挑出去是吧,就判断这个用户是不对的,所以我就来接收啊,进行一个判断接收。
当时user等于谁的,cooking里面的这个,接收你这个cookie的值解锁什么呢,就是password是吧,等于等于等于等于好,按照正常逻辑来讲的话,这个节奏值就是判定cookie的时效性。
我就判断它是不是等于艾德米和1356,如果正常来讲,这个阿德米和1356是从数据库里面存储的,所以我要判断它,因为它设置的cookie就是登录成功之后,会设置两个字嘛。
就UZM会设置成登录账号密码就设置密码,所以他的cookie就是以这个为准,那我判断的也是以他为准,但这里呢就是这两个值是从数据库取出来的,呃我尽量的就把它从数据库里面去取出来,那取出来。
那就是要把那个这个语句呢,再给他复制过来一次是吧,把它复制过来一次,同样的也是在这里一执行,把它取出来,然后呢也是把这个文件给它包含一下,就从这里取两个数据啊,就以这两个值为准啊。
取出这个我这里不取出来,我直接把写死了算了吧,节约一下大家时间啊,就说这两个数据是从数据库里取出来的,判断的啊,然后呢就判断这两个东西堆不堆是吧,就是这个cookie呢如果是对的。
我们就把它怎么样进行一个跳转,就给它进行一个什么它的是对的,我们就啊不去管它是吧,如果说不是对的,就else,就这两个得到值呢,cookie里面没有这两个东西,就是说非法用户你没有登录过,没有登录过。
那我们就把它跳转到这个页面,就是AMY杠C就让他重新登录,然后再退出啊,这个推出写不写都无所谓啊,就是你登录成功之后呢,我们就提示一下是吧,或者说是什么事情都不干也行,就登录成功之后呢,就这样。
或者那你给写一个这个飞是吧,如果这里的它不等于它也不等于,并且它也不等于13456,就进行一个跳转,这样也行,这样写就简单一些对吧,就说这里呢判断你的cookie里面没有带。

艾德米和1350,值,不对不对,就跳转,然后我们可以访问一下,那直接访问它是访问正常的呢,对不对,是正确的。

因为我现在的cookie里面是die了,那我们访问一下coin da user456是吧。

就说现在我的浏览器都呆了,它是吧。

然后呢我可以点击一下,把这个cookie删掉,啊我直接用这个浏览器删吧,用这个了解三,因为他刚才就没有用这个流程上,我现在在保护下,他现在还在啊,你看他现在还是带的带有带这个字。

我先把它删掉啊。

删掉呢其实还有函数上啊,现在我就把那个写个数等数写在上。

等出怎么写呢。

函数里面有个叫UIT,删除指定cookie,也可以让自己重新再设置它,就是如果你触发这个按钮呢,index里面如果点登出推出这个登录,就自动删除那个cookie,删除cookie呢可以直接删除。
也可以直接再重新复制一个直进去都行,两种方案呢你都可以选择这个无所谓的啊,你比如说我们人呢就把那个代码直接copy一下啊,那这个东西呢就这么简单,那这样一写就完了,那重新设置coin。
把这个USM设置为空,它就没有字了吗,对不对,然后呢再把它调整到这个登录地址,对不对,是的吧,嗯减除之后就自动重新设置设置为空,除了他就没有了,能理解吧,这个代码比较简单,我就直接上去了,就不用写了。

然后呢我给大家看一下啊,它的结果大家看一下啊,现在来访问他是不是还是我的正常的,因为我的cookie里面有他,它是会自动跳转首页地址来,是上首页,我们再看当前页面的控评。
你看现在呢cookie里面就没有合格这个字了是吧,同样道理,你现在没有这个值之后,你再去访问这个首页文件,这就自动自动让你重新登录啊,这不就实现了一个用户的登录的一个判断。
那就相当于说这个文件呢扮演角色的登录文件。

index c呢,扮演的就是我们的首页的一个进入页面文件,然后这个登除文件就不说了,就是魈就是说你自己推出的情况是吧,然后这边呢就是bin的那个首页文件,就是你的核心是要进入到这里。
但这里呢你直接访问它,它需要登录,因为你的cookie里面不合法,你没有登录状态,所以他直接让你重新登录,是直接调整到登录页面,所以你还需要登录,那么一旦登录的话就会产生货币。
比如说我先登录个错的行不行呢,我登录个错的,登录的没有用,登录失败,然后呢你再可以看一下你的这个cookie,cookie依旧没有任何改变,为什么,因为我们这个逻辑是在这里登录的时候。
登录成功之后才会设置cookie是吧,所以呢当你登录正常的时候啊,来123456登录了,然后你看这不就进去了呀。

所以我再重新打开这个浏览器,那他还是有,包括我现在把这个理由器关闭再打开,他是不是还是有啊。

为什么保存时间是一个人呀,我刚才在声明这个地方的时候,一个月过期,也就是说这个cookie呢在里面去重回歌呀。

一个月之后呢,他就会失效,那么也就是说如果这串东西被人知道的话,这个空瓶的一个东西被人知道,别人是可以用这个空瓶的登录进去的,啥意思呢,大家看着啊,我做个实验,让我访问一下index杠C。
我先把它推出来啊,index杠C点PP,那我访问他是要我登录啊,那我即时访问不进去,他需要我登录。

大家看到了啊,然后现在看一下啊,我重新刷一下浏览器,现在cookie里面他是啥都没有的,我可以点击这个什么浏览器,这里有个叫应用的地方,就这里了应用,然后这里有个叫cookie的一个管理栏。
我们点击这里呢,我可以在这里写上什么,添加一下叫use name,等于,再写一下password,等于123456保存好,这个时候我们再来访问一下你的S杠C,来看你的B,是不是。
那这个cooking的一个验证了,他的代码逻辑大概是这样子的,就是它是用来在后台里面,或者说会员里面,不管是后台还是,只要是涉及到用户的这个判定的时候啊,就是说这种用户判定手它的一个基数。
那我刚才演示这个是什么意思呢,其实就是说呀这个cookie呢它是一个固定的,只要你拿到这串cookie的话,你就可以模拟这个用户登录,就在它有效期间拿下了啊,然后呢。
你就可以这个用在库存的登录到它里面去,他的固定模式就是说什么固定模式呢,就他怎么设置的,你只要搞清楚他怎么设置的,那么你就可以按照他这个设置流程去模拟一个,来进行判断,进行这个伪造来实现。
而且这个cookie是固定的格式,那它固定格式,它也可以把这个密文这里呢不搞成12356,搞成一个密文也行,其实原理很简单,就是说这个cookie它的一个特点是什么呢。
你只要知道这个cookie的东西了,那你就可以直接登录在它有效期限,就只要登录就可以了,他不会做任何的一些操作,就可以进入到他这个后台,而且cookie呢它是存储到我们浏览器的,存储到浏览器看到没。
是存储到我自己的浏览器,并不是在服务器那边,也就是说你这台电脑的浏览器,如果有人能动手脚的话,那么他就可以把你这个浏览器可以把它取出来,就很简单,我举个例子。
我如果说我能得到你浏览器里面的cooking的话,那我就能知道你浏览器的一些登录的网站,你包括你保存的cooking,我就可以用那个coin来登录你浏览器,登录的网站,能理解意思没有。
就是我如果能操作你的浏览器,就可以把你浏览器访问过一些网站的信息,给他拿出来,然后把那些你保存的那些网址可以直接进去了,就这个意思,所以啊cookie呢,它是一个非常不安全的一个判断方案。

这个判断方案呢给来了,这个攻击者有很多工艺思路。

比如说像我们说的,像那种后期要讲的什么XSS漏洞,拿到这个cooking值之后呢。

就可以用这个cos呢,进入相关的这个权限信息进去,原因就是因为浏览器保存了,所以他攻击的目标不是夫妻本身,而是用户本身能理解吧,就是因为这个cookie保存的是用户的浏览器,而不是说和服务器有关。
服务器呢就是判断这个屏cookie正不正确而已,正确他就让你信不正确就不让你进,而这个cooking值呢是存储到用户的浏览器里面。


那么接下来呢就来说这个C型,那么C型就刚好是相反的一个技术,它是要比cookie的安全,一个安全的一个技术,但是也不是绝对安全,那么这个C型又是什么东西呢,就是C型的意思就是灰花。
它的这个单词解释就是灰花,就和我们打电话一样,啥意思啊,流程呢我们就不给他说了,C型的就是一个灰,这个灰画有什么不同呢,它和cookie有什么不同,我们先把这穿区别给大家看一下啊,首先存储位置不同。
cookie是存储到用户的浏览器上面的,而C型是存储到服务端的,那么这个不同就给这个安全测试带来了不同的,测试流程,很简单,就很说啊,我现在得到了这个用户的cookie好,那么你的攻击目标是用户。
而现在呢你如果说你想搞C型,你的攻击目标是服务器,但是换换句话来说,如果你能拿到服务器的C型,那就说你有很多权限了,你又何必要纠结一个用户的登录的权限呢,是不是你基本都能拿到服务器的某个文件了。
这不就是达到一些权限了吗,你还纠结这个C型干嘛呢,它是相互矛盾的,对不对,所以说基本上你要攻击对方服务器,拿C型这句话本身就有问题,你都能对对方服务器上面的东西进行操作了,不就已经拿下权限了吗。
你还纠结这个用户申请干嘛呢,是不是,所以说这个C型呢它存储到服务器的话,你的目标就是服务器,但是你能攻击服务器的话,你就你肯定就不需要这个C型了,好安全性啊,由于这个coin存储到客户端。
所以呢它容易被黑客窃取,因为黑客的目标就不再是服务器了,就是用户本身了,而session是服务器,所以呢他会更加安全,就是我刚才说的那个意思对吧,你说你攻击服务器,那不就和工具网站一样的吗,对不对。
那你用这个摄影干嘛呢,这个事情无非就是一个用户的身份的,服务器都拿到手了,你还在乎这个用户身份吗,在上面直接看不就得了,然后这个生命周期也就是说cookie呢它的时间很长。
而C型呢一般关闭浏览器就自动会失效,简单来说我给大家举个很简单的例子啊,这个C型的就和打电话一样,cookie那就和刚好就不和打电话一样,C型的就是打电话,我给你打电话,我现在和你都没有挂断电话。
那么C型就是正常流程,如果说我一旦挂了电话,某一方挂了电话,这个事情就失效了,举个很简单的例子,大家在经常操作一些app或者登录一些银行,像这种大型网站的时候,都会碰到一种现象,比如说一个APP。
你在登录这个网上银行app的时候,你现在正在上面操作操作好,然后你切换界面打游戏去了,过了10分钟你再切换app,是不是要你重新登录啊,就是因为你那个10分钟他就给你挂断电话,那么这个绘画就失效了。
就是你之前的是登录进去了,然后呢你过了10分钟,你一直没有操作它,它就会认为你这边呢主动挂机了,就和你终止,那么这个电话就挂了,这就是一个会话中断,那么它的安全性就可想而知了,很简单。
就是说你必须按照这个攻击思路来讲的话,你必须要站在这,就是说对方这个辉煌还在成功的时候,就说这个辉煌还没有结束的时候,你拿到这个C型的一个id,以这个id再取通讯,那么你才会成功。
一旦对方挂了这个东西就立马失效,我们现在给大家演示一下这个东西啊,这个具体的C型和cookie的安全问题呢,我们是要在利用,包括他的发现,我们是要讲后面web漏洞的,再给他讲。
现在呢就是从开发的角度来看一下它的区别,我们等下也会大有个实验的去给他做啊,它的使用场景呢你可以看一下,简单的注意cookie的小型网站啊,C型的就是大中型,强调安全,就是C型。
你可能说为什么都不会选择更安全的方案呢,因为你选择更安全的方案带来的成本就会大,因为C型产生的服务器,那就会生成一个文件,那么这个文件的话,一个用户还好查,他登录一次就生成一个,登录一次就生成一个。
可想而知啊,成千上万个用户一天要登录多少次,要产生多少个文件,这对服务器本身就是一种成本,你要安全就要付出成本。

好我们先来看一下C型的啊,我们在这里创建一个这个文件,名字叫做,INDUST杠S点TP就是负责这个C型的,然后再创建一个enemy杠S点TT,再创建一个logout点S杠TP。


那么同样道理啊,把这个,这里呢就是我们说的根除,啊这个呢就是,登录,文件采用这个C选颜色,那么这个呢就是我们说的这个登录成功,所有文件,就高中他是一个手机文件啊,这个灯除C文件好,我们来先写这个啊。
那同样道理呢还是和刚才一样,保证那个页面啊,有1000M代码是不会改的,我就把这个页面的给它拿出来,就这个美好的这个页面嘛,这个是不用改的啊,其他的都都可以,其他要改,把这个ATM代码都可以不用改了。
就是我那个页面那个没关系嘛哈,可以看下来还是那个页面。

那么接下来就写这个C型验证了啊,那么C型验证呢它的函数呢有这几个啊,给大家看一下,这动画用来存储这几个地方啊。

等会一一给大家解释呃,那么既然也和刚才流程呢,这个coin登录呢基本上是差不多,流程只是函数使用的不一样,也是呢通过这个检索数据是吧,也是先来解说这个数据对不对,那么同样的道理也是要进入数据库的查询。
来判定这个数据,所以我要引入这个数据库配置文件,来进行数据库查询,那么同样道理呢基本上和前面一样,我们就把它放出来,那先去查询是吧,先去查询,先去查询一下正面的一个情况是不是提交了。
然后呢也和这里一样进行一个判断,他判断登录成功之后,接下来就是要进入C型的一个操作了,那首先session is start开启,然后呢怎么设置C型呢,怎么设置C型呢,SC型就是dollar fc型。
刚才那个是dollar of cooking,这个是dollar f c型都是全局变量设置什么,这是USM等于变量,有者设置一下,然后再来设置C型的值,设置password等于dt pass好。
就这样一设置啊,设置完了这个文件在哪里呢。

我们看一下我服务器啊,然后这个C型文件会保存哪里呢,这里有个题外话给讲一下啊,C型的存储路径,如果是在PPP的开发中,它是在PPPII这里设置的,他在这里设置的啊,你们有些人听不懂,我是真的。
我是没办法的啊,因为如果说我要讲很基础,很基础的这个开发的话,这个课时量是不够的,所以我只能说有些基础,但是你下去自己补的啊,而且我说实话这个课程的,我这个编程技能呢已经不已经算基础了。
但开但高端的那我也不会讲,你想学我都不会讲。

我也讲不了啊,这已经算基础了啊,你如果说你听不懂,那是你完全都没有搞过开发,你只要稍微搞点,开发这些东西还是不是很难的啊,来我们看一下啊,他是在这个pp的安装目录,就就就就在你这个pp的这个文件。
我是PP7。0的嘛,在pp这个安装目录下面。

有个PPII这个配置文件,然后在这里呢去搜索一下,一个叫来session点si pi,就这个值,你看它保存路径是在哪里。

D盘那TMPTMP下面,在这里还在这个路径下面,这个是C型的保存地方。

现在是空的,你看现在是空的啊,你看一下啊,因为我搭建的就是在本地,所以呢这个本地也是我的服务器,我的本地的也是我客户端啊,你不要说哎呀,你不是说存储到服务器吗,服务器就是我这个这个这个这个地方。
就扮演服务器啊,好我们看一下啊,我当我去帮他登录成功之后。

啊他登录成功之后呢,等到什么时候就启动车型,然后设置UU,这是我开车,我们来试一下,看是不是我们先登录一下啊,不管372 11先登录嘛。

它启动起来好看啊,我随便登录一下啊,登录成功,134567加好点中,登录成功了,没有任何反应,我们来看一下正面的路径。

大家看看是不是产生一个文件,你看这个文件打开看一下,那是不是等于他是我的人,三十五六,时间是产生在哪了,然后这里有个编号一四,这是一个随机的id编号,那有这个编号产生了哈,好我可以把它删掉,删掉之后呢。
删掉之后删掉之后呢,如果说你登录失败会产生登录失败,没有什么。

因为我这个逻辑是什么逻辑啊,登录成功之后才会进入到那个,才会进入到那个什么才会进入到这个地方来,对不对,才会进到这来啊是吧,登录成功之后才会进行实时性好,那这里呢我把它搞清楚之后。
登录成功之后就设C型好就可以了吧,好那我们呢下面呢就是做个什么事情呢,就是把这个进行一个跳转嘛啊,调整页面呢我就一样的道理是吧,把调整到这个页面,调整index s s下面再这个退出。
在这里退不退出也无所谓啊,那么这里呢如果说失败的话,那就给他个提示啊,什么你真的失败的话,有个提示提示呢和这个是一样,用户你输失败了吗。

好来看一下,对不对是吧,如果成功就跳转这个页面好,我们来试一下啊,先是一个错误的提400,那么如果成功的话,是不是就会调整那个页面呢,123456,你看是不是跳转index s r。

然后接下来我们就是在index s这里进行判断的,在这里进行判断吧,那么他的判断又是怎么判断方式呢,是不是就是C型的验证呢,那就是读读这个代码,那和这个index c呢差不多。
把这个代码呢也是按照这个cam页面来写一个,然后再到这边是吧,在这边写了个什么东西啊,结束这个地方改改一下嘛,啊写什么呢,这个地方就是用来判断的,用来判断的,判断你这个C型是不是存货的,那怎么判断呢。
很简单道理啊,来用个变量,比如user等于大陆服务,或者说dollar session,你这里呢就是来判断这个用户身份的,用户身份的,这里我把代码写好了,这个判断呢其实也非常简单。
就是你自己的判断这个C型里面对不对就完了,他如果是对的,那就行了,你就直接从这里来读取它两个字,就一个判断就行了呗,那判断一下到了C型这里面的uuser lemon,是不是等于你刚才说的两个值。
同样道理,这两个值呢也是我们那个数据库取出来的,或者省去了数据库,我给他写一下啊,省去了这个数据库的查询获取,然后密码的一个操作啊,直接赋值的,直接复制的啊,免得大家说不知道这个为什么这样写啊。
是我省去了啊,再来个session,判断一下,这个是并并且并且这里面的password的对吧,是等于这个123456的两个等于啊啊,判断一下,如果说这里那两个等于的话是吧,就和这个思路一样。
就是直接让他这个,不等于啊,两个不等于的话,就直接让它跳转到这个登录选项,如果等于的话。

就让它成功,所以我现在呢可以访问一下index s,你看现在他是一个什么情况,我访问这个地址的时候啊,他是个什么情况,是不是让我直接登录啊,好我一旦登录成功之后呢,看一下123456诶。

啥情况。

Session,这里有个文件,你看一下啊,这个BS这里,这里写错了呀。

刷新一下啊,它的一个C型呢是在这里呢,C型是一四的一个C型啊,这个PPC型D14的,然后这里呢我们也产生一个要死的,和它对应上了,我看你这里面的3号信息,这里是等于123456对的啊。
USM和password是对的,他这里哦,我知道了,这里少写了个东西,少写个东西啊,少写了个这东西,少写个什么东西啊,session start必须要用这个东西啊,就你这个东西要启用它才能获取这个值。

少点东西,再看看,现在应该就是我的这个访问这个地址的时候呢。

再访问这个地址。

然后他就探出来了,因为是很简单的道理啊,我看了现在这个C型这里就有钥匙了对吧,然后你这个钥匙对应的就是这个文件的路径。

把它关了,路径啊,在这个地方我打开就能随时保存路径。

在这里面啊,打开看一下啊,这是它子嘛,对不对,好就是这里让你看要死的,和这个访问的用户的数据呢一样,所以他就获取这个C型的值里面,那就是刚好这个值好。

大家看一下啊,那么就说这个事情堆了好,我们先来看一下啊,我把这个数据呢打开这个浏览器好,我问一下大家,我现在用这个浏览器访问这个地址,打开是这个页面还是另外页面,先打开给他看一下吧,那是要我登录啊。
为什么,因为你现在这个浏览器打开的话,你看一下他的C型变不变,看看他的C型,C是一个接一的,然后你再看看这个文件里面J1生了是吧,一个C型文件就是你重新返回,又产生一个新的C型文件,你再把它打开。
看一下这个里面的字,空的为什么,因为你没有登空的,登录了才会有数据。

所以呢他只在你那去访问这个什么index c index,index s点PP他也防不了,因为你C型不对好。

那么你现在问我啊,如果说我现在要去攻击他的话。

我该怎么攻击他呀。

首先第一点,由于这个东西存储到服务器端,那么你攻击他就是拿到这个C型值,拿这个C型值这个钥匙,这个东西拿这个暴力破解显然不太合适,在多少位呢我不清楚,但是很复杂,也就是说其实很简单啊。
这个词呢现在还有数据。

它还在重复动态,我把我的浏览器打开,你看啊,我在尝试着你的应用程序这里啊,你看他的C型的目前是这个值,对不对,你看着啊,我把它改一下,改成这个了,还存活的C型这个值,然后这个时候我再去杠XP。
你看是不是成功了,它就能返回进去,但是为什么提示这个欢迎您是一个感冒呢。

是因为这个代码我写的没写好,因为这里写的是js cookie的,把它改成C型就可以了,你写这个呢在你再刷新一下,它就是那个还原的密码,刚才没改那个地方啊。

嗯看起来是吧,就出来了,就是相当于这个C型呢它的存活状态,你现在呢改了它就有用,你不改它就没有用,你不改它就没有用好,那么很简单。

一旦把浏览器关,把浏览器关C型四消,就说我把这两个文件呢把它撕消。

把它删掉是吧,他会给他删掉,删掉之后呢,你现在得到这个东西。

我们再刷新,没有用了呀,没有用了呀,因为这里面已经清空了呀,没有用了呀,你看你在登不进去了,服务器把他一清空,第三也没用了,其实就很简单,之前是因为别人还在和他同学那个事情是存货,他一把浏览器关诶。
你得到也没用了,你得到的东西值也没用了,你再用他的值没用了,他已经挂了,C已经失效了,C型的话,你关浏览器就会自动失效,但这个需要代码来实现,就是有检测那个用户关联浏览器就自动失效。


我们可以演示一下那个灯除的登,除的也很好写啊,这个可以给大家看一下。

这个灯除就清楚这个登除了上面这个代码呢。

我也给他写过,登除了写出来。

来清除cookie,就是用这两个函数来给大家看一下啊。

这个就销毁当前绘画所有数据,然后释放绘画里面所有变量,就这样写就可以了,那么那你可以试验一下,这里呢就把它调整到这个杠S在哪来。

我们访问一下,先登录成功,确保下来登录成功,我们来看一下整个流程啊,先登录成功,我们先看一下这里的C型文件啊,看看C型文件它产生的服务端,我们把整个流程走一遍,这个大概的一些什么事。
安全思路暂时大家不用刻意去理解,我只是给他打个样啊,后面会详细再讲的,这个现在以开发为主啊,把流程搞清楚就可以了,来我们看看这里啊,要下来有没有C型好,我先把这个全部删掉,看一下啊,我先访问它没有C型。
因为我登录之后才会产生C型好,我产生一个C型,看到啊,我先产生一个C型好,这里有C型,有了,对不对,你看现在是1KB是KB文件啊,是KB文件,这里面有值对吧,那还有值,那是KB文件,因为你登录了。
我一旦点灯除看啊。

没有了,你看文件也没了,自动删,就是说如果对方点了推出,对方关闭了浏览器,对方长时间没有操作这个页面,C型就自动删除,或者说自动销毁,因为他这个机制就是为了,确保。
有足够多的这个新人来处理其他用户的需求,所以它会自动删除自动销毁的一个过程,那么即使这个时候你拿到了这个东西,也没有用了,就说你拿到别人的那个C型值了,你就像我刚才一样,我在这里把它改成这个值,二是吧。
当时这个东西有用的时候,你就有用,他没有用了,你怎么改都没有用了,因为他已经销毁了,而且这个输入文件呢它是在服务器的,所以说很简单,你登录成功之后,它不是会产生在这个文件吗,我们登录一下。
它不会产生在这里嘛,对不对,你有种思路,就说我拿到这个文件就知道怎么用它了是吧,就可以利用它了,但是你有没有想过这个文件在哪里,在服务器,你有服务器能拿这个文件,你不能拿其他文件吗。
拿拿其他文件不更香吗是吧,对于你这个安全测试更有好处啊,所以说从服务上面拿这个文件,这显然不是我们搞的,但是它也不在浏览器里面存储,谁说你拿的话,拿用户的这个身份,拿这个字,就是说你即使拿到这个字。
但是你在那个短时间之内没有把他拥上去,或者说没有拿刀,那么就没用了啊,就没用了,也是等同于没有任何用处的。

这个就是C型,那么现在呢我们再来说一下,这个session和cookie的最大的区别,它的主要区别,其实第一个就是由于这两个特性呢,全部都是用来后台的一个身份验证的。
那么我们怎么知道对方是哪种cooking验证,还是C型验证呢,猪腰从几个方面可以判断几个方面,目标的体积大小,就是说目标的这个规模,而且规模大,那想都不用想,肯定不用cookie,这是第一点。
第二点是可以自己测试的一个网站,你打开之后,你可以等个10分钟或者半个小时,你不动它,就你登录状态,你就保持不动,它就登录好了,你就不动了,等半个小时,你10分钟不行,就等半个小时。
半个小时后你再来看那个页面,如果你再刷新,他要你登录,那就不用说了啊,C型验证,如果你再过半个小时打开,它还能登录,那基本上是空瓶子,还有一种方式就是把浏览器关再打开,如果你还能登录。
那就是cookie不能登录,那也是C型,但是浏览器关那个东西,它不是一个判断标准,有些C型它可能浏览器关掉它还行啊,就是看他这个机制,但是那个时间那是很准确的,就是你只要半个小时不动它啊。
你再看看是个什么情况,就什么情况,还有一种情况就是说直接看这个里面东西啊。

看这个这个数据包里面,有没有这种C型这种标识呢,但这个也不是唯一判断标准,有些cookie里面有东西啊,看这东西主要还是看那个时间的一个场景啊。

那么后面呢我们会讲啊,这个不是我们现在说的,我只是说从开发角度给大家理了一下,那这两个就是cooking和C型,这两个呢我不知道大家听得明不明白啊,说实话啊,如果技术比较差的话,听的人力物力呢也很正常。
不过你把这个代码的流程搞清楚,就知道这个cooking c型呢,它是用来做身份验证的啊,然后呢这个代码的一个大概情况能写,能看懂就可以了啊,至于他怎么做安全测试,安全测试里面有哪些思路。
这个是我们在讲到关于这个身份验证,安全问题的时候,才会给他讲,就是关于什么cookie安全,C型安全,还有什么JWT安全,后面还JWT,我还没有讲,那个是在java中用的PP里面用JW比较少啊。
那么还有一个东西就是这个token呢,那就不管是PVP还是java里面都是用的非常多了,而且这个东西非常重要,今天讲的什么coconversation toy,这都是取决于身份验证,就是大家华为授权。
还有一些什么各种什么CSF漏洞,还有包括这个什么这个叫什么叫什么,叫包括各种一些东西都会有影响,这些影响全部是这个toy的一些效果,我们看一下TOKTOK它的一个说明,那就是干嘛呢,这是他的一个说法。
它可以影响到身份验证,影响到安全性,影响到跨域访问,其实呢我们不用去看这些大字的问题,我就给他说一句话,脱贫的就是一个唯一星,你只要记住他那个特性叫五菱一星,啥叫唯一星呢,我举个例子啊。
比如说像现在我登录这个后台,我登录这个后台啊,我就直接在你输一直输一直输好,我在我页面上面输可以,但是如果说我现在我把这个包拿下来,我去向一个指定页面去提交数据的话,他要确保这个数据包是唯一性。
就是说你每一次登录它就生成一个编号,每一次登录它就生成一个编号,这个编号要全部对应上这个数据包才能正常,就其实就是说你在每发一个数据包的时候,它会带一个托词,那个TOK字,如果不对,他就不予理会。
就把你这个数据包当为垃圾,这就是token的用处,那么这个机制就导致了很多漏洞都会受到影响,其中最显然最明确的漏洞就是这种暴力破解,漏洞,就是我们说的暴力登陆安全事件,因为你一直要登录的话。
那么数据包就只会改变账号密码,而改变不了TOK,因为那个toy你是无法预知他下一次是什么值,我们现在说到这里,我给大家做个实验,大家就知道这个token有什么效果,我们用到TOK该如何识别它。
包括碰到TOK我们怎么办的问题了,先把从开发角度把它写出来。

写出来之后呢,我们来看啊,好我们这里写一个简单的一个什么情况呢。

就是写一个用户登录,在用户登录这里引入top。

引入TOK,然后看一下它会对我们安全有哪些影响。

好我们来创建两个文件。

一个叫toy点pp,还有个叫toy签,可。

点PP就说一个呢是用来这个登录的生成的。

还有一个呢是用来验证的,那么这里呢就是很简单啊。

我先来生成token,这个生成top怎么生成呢,这个生成token,这个有就用这种,你可以直接用check part啊,用win他也可以,这里呢我也给大家不说了,就用什么加密函数啊,都可以。
就是随机字符串哪生成token,就是说那个生成TOK那个值叫TOK值,你可以用那种随机事件的加密算法,或者自己写个算法,这都行,或者用自带的也可以,你要觉得这么复杂,你就用什么思路,我给大家看一下啊。
来这个是生成token的那个这个代码,好我们来看一下这个代码是C型的,那用这个b i n h x r d o m built,就是这里是用随机的生成一个TP值,从这里去申请个托比,托比值是随机的。
我给大家打一下,给他看一下啊。

运行一下,给他打一下,弹一下这个东西,那你看它是随机的,我每次刷新页面,它就会改变的,就是随机生成的呢。

他每一次都会改随机的啊,就剩这个值,然后我怎么办呢,再从之前的这个页面中呢,把它表单呢就是登录的那个页面呢,我还是用到前面那个登录的HM页面下载,是吧,现在来,都写着来啊嗯,好现在再来,现在来了。
就是随机生成的,然后我怎么办呢,就是在这里加一个表单,加一个表单,我加个什么表单呢,就是你在登录的时候把我的token也发到过去,把我的TOK也发过去,就他不止发账号密码,还要发个token。
那么法国区呢我就不在这个页面中显示,我就搞一个这个什么搞个隐藏的,搞个隐藏的啊,搞什么隐藏的呢,Input input,类型是这个handle吧,那隐藏事件,然后它的内蒙值就是我们说的这个。
然后呢他的value值就等于一个pp代码,点进去,pp代码就是这个echo输出token,就是把刚才这个值呢写到上面去了就OK了,看到没,就是我搞个隐藏的那类型不显示,然后呢不显示的。
然后你看这个页面它是不显示的啊,不显示这个token值的,只要隐藏了隐藏的,他的这个传参的名字叫TOK值呢,就是从上面呢pp里面获取这个变量,就是我这里呢在上面写着呢,这个字对不对。
然后呢我再去这个发送的时候,他就会把这个token呢也给他发过去,就会有这个人吗,然后呢我把token呢把它放到这个cookie里面去,算了不跟你去啊,嗯就是这个cs double cooking。
然后,toy是吧,放到这里等于这个to,就是复制这个cookie里面的设置东西,然后设置一下,设置一下4a cookie,你设置一下这个top,嗯等于OK哦,这里呢。
我就直接把那个之前的代码被引用下去了啊,嗯就这个来看一下,就把它设置到C型里面,C型里面呢这里用C型,C型,用到C型呢就是生成C型文件,C型文件存储这个token值,然后呢再把cookie里面写上一个。
cookie里面写成这个东西,具体代码我在这里写好了,有的看注释的比较好一点,生成token,然后这里呢就是把token写到cookie,然后将绑定到cooking中,然后再去请求这个文件。
这不是action吗,action那就请求给谁啊,请求给TOK点CHA,就是说发送到这边呢,是不是这个值啊,他是来负责这个值啊,然后呢他是怎么判断逻辑呢,呃他发送的这边呢是发送的这个两个账密码。
我先写这个账,判断账号密码,判断一下到乐福下划线,等于等于AME,再判断一下你提交的账号密码,是不是等于这个东西,密码是不是等于123456,判断它等不等于是吧,在判断之前呢。
我们还要判断一下这个C型等不同意,所以我现在来启动C型,从C型里面呢获取token值等于C型的这个token,因为这边呢在生成token的时候,他把toy生成之后,他把这个token呢复制给了这个C型。
所以呢这边呢就是从C型里去提取这个token,是吧,提取token对不,同时呢我们这里还要接受,再来判断,继续联动判断,Dolf toy,是不是等于就是这个dollar下方post提交过来的。
就是这个表单不是也提交吗,就这里嘛是吧,他也会提交这个TK值啊,我就判断这个TK值是不是等于我获取过来的,T,对八弦去就判断这三个条件呢都正确是吧,我就输出啊,你是管理员对不对,或者说你这个登录成功啊。
登录成功对不对,如果说不是的话,就提示一下,提示一下啊,对就写这个东西的好,我们来试验一下啊,看下这个效果啊,那现在是登录四代,因为你没有登录,这两个字都不对,好我们来尝试登录一下啊。
在这边的token去访问好,你看啊,他尝试去访问,输入正确的上面123456啊,点登录,怎么哪里没写对啊,嗯toy check start。

两个字不对吗,我看一下正面的表单词啊,大家可以看一下啊。

那你可以再刷到这个浏览器这里来,看一下有没有拖影,是三期山崎的这个东西了呀。

哦我知道了,知道这里不应该这个它,因为它是这个设置C型里去了,所以我这里要从C型里面获取吧,从C型里获取啊,直接看那个C型值就可以了,把这个抽空里面获取,对这点应该对了,来试一下啊。
再来你看我在刷新这个页面的时候呢,大家可以看一下这个浏览器里拖延,我刷新时就编一次,看刷新时它就变式,刷新一次它就变成了没来,这个值一直在改变,他会把这个值的发送并且传递到cos里面去。
然后那边解释coin这个值对不对,好我们看一下啊,那我说正确找密码,点击登录,啊这啥鬼啊,看他的这个toy是等于几期几期的发送的是,应该这里有个判断啊,如果它为空的话,这样子操作一下判断流程,没问题。
就这里加了这些东西啊,如果他这个这里呢问号问号为空就啥意思呢,就是说如果没有设置就为空啊,如果没有设置为空,判断这个登录的token值等于等于它,我这里呢为了确保其间呢我调试一下啊。
我看一下它结束它的值是什么,解释这个值是什么啊,重新刷新,好看没登录失败结束了,是DEF这个离谱,那和这个字面应该是生成的不太一样,是哪里出了问题,还是要从C型里面获取吗,C型里面获取,先进行判断。
我之前写好这个逻辑啊,就是这个逻辑写的,从c cookie上面获取,然后判断这个token是否匹配,匹配好了,就进入下面二次循环境登录判断,如果匹配不成功,就提示这个匹配不上,禁止访问。
他这个token是从C型哦,他是从cookie判断这个C型的,因为那个特写到那个文件里面去了,我错了,我是从那个表单里面判断的,他这个是从C型判断,改一下,这里应该可以了,这里是从C型判断。
从C型判断判断能不能cookie,再看一下,好来试一下,刷新登录一下,登录成功,看到没就判断成功了啊,来看先登录成功了,然后你输出密码,然后他就登录400,然后我把这个echo那把条提示戳一下啊。
登录400好,大家看着啊,这个安妮呢就是说加入了TOK的一个登录操作,就是这里呢就是相当于说我们做这个实验的,就是一个登录里面加入top啊。

我把它写一下啊,三个项目啊,我把它写到这里来,今天实现了三个目的,把它写清楚,免得有些人搞清楚不清楚的,第一个,用cooking做这个后台生命验证,第一个,第二个呢就是用这个C型呢做这个生命验证。
还有一个呢就是我们说的这个,第三个就是用这个,这个技术做这个什么,这个用户的登录判断好。

你看他们有什么影响啊,我们先看第三个了,前面两个已经做实验了啊。

大家看着呃,你先来看一下,我把这个浏览器打开,我现在给你尝试一下啊。

我们按照我们包括逻辑来,我们用过包括逻辑来啊。

你看啊,就说我现在要进行一个爆破,你看我有什么不一样的情况啊,我用八倍速度来进行爆破啊。

讲难一点的,你们说听不懂,讲简单的说基础,那真是没办法,这还不算难啊,这只算中等的一个程度。

你说java的该怎么办呢。

来我抓个包啊。

嗯你看一下啊,我去访问一下这个网站。

1920128演习,阿德米下划线的POKEPP登录的情况。

大家看着水包,我们把它抓一下啊,看着了,阿德里输入一个123456好,直接登录好,我们先来看一下啊,我把它勾一下,它提示是什么,登录成功是吧,好,我再发送一次,登录成功,已经登录成功,对不对。
那你登录成功,那么现在在登录成功的啊,你看现在我如果我把这个地方把它改,这里改这个东西,他可能都失败,因为你密码就不对了,对不对,妈的还是有问题,稍等一下,花屏了。

我直接把那个代码拿出来吧,妈的这个代码有问题啊,写的他没有确定唯一性,因为这个判断没有,他是先要判断这个C型之后,才能进入这个登录判断,我这个搞错了啊,我是直接三个一起判断,要用这个判断啊。
就先进入toy的C型判断,放出来就是先进入这个C型的判断,判断之后呢,C型不匹配就直接让他进行访问了,就是C型匹配呢,我们再进行登录判断好。

我再来试一下,这里。

登录一下。

找个包,好登录,我们来看一下啊,登录成功,历史管理员好,再发送一次嗯,还好吧,放一下啊,那么现在呢我们就把那个包那边拿到,你如果说现在我们要做实验的话啊,我们要做个什么实验呢,我要对这个进行爆破啊。
我对这个进行爆破啊,我把它在发送这里来提交一下,这他妈的还是有问题啊,咋回事。

是不是这里少写了一点东西啊,这,嗯我把这个代码全部把它粘贴复制一下吧,他也懒得去找,什么原因呢哈。

真是麻烦,之前做实验都是好好的,登录成功好,退回去登录400好,当我进行爆破的时候,我看一下啊,大家看着啊,我进爆破的时候,这个呢直接访问提示的是什么,登录400好,我爸进行爆破啊,大家看着,爆破模块。
但是把这里的这个密码呢作为一个支点是吧,然后呢随便写一些这种爆破的东西在里面,我让他去跑一下,看一下他的一个返回,返回结果,全部是登录失败,123456,在哪里搞错了,我。

嗯嗯看一下啊,他我这个就是说那个数据包要违心,就说你那个那你不改的话,你第二次提交那个数据包,它就会失效,哪个地方写错了,我看一下啊,我现在看到C删下,看是不是这两个问题造成CSF里面接受city。
这个是接受cookie,Csf,这个里面是写上,都给吃看人命啊,这是我之前写好的啊,这个写好的代码,写代码,这是name等于cs,这里是发送的,是,也是等于top这边没有结束,没有结束那个字。
直接判断这个这个值得一个判断,我把这个win7用这个思想,换这个这个我之前写好这个源码,妈的那个源码不知道啥情况来试一下啊。

来我们来试一下这里啊登录,下次登录四百三十五六,来把那个抓个包,这是他登录的一个情况,发一下提示登录成功,登陆400,什么情况啊,这这他妈的,我刚提交这个字,不是13456,他直接上去,是不是哦。
我怀疑是不是cookie的问题。

我把全部删掉,把服务器重启一下啊,所以什么删掉。

等一下啊,我开这个刷新这个值的一个情况,登录400没有那个加密码,我这里抓个包看一下,我抓个包看看,找到是对的呀,哦应该是这里搞错了啊。

哪个地方写错了。

这个地方接收cooking的,直接说的是这个token,那么这个规划呢是这个K71的,我们看K71,这里他的这个值是不是还对应上了,他的这是个FA和对应上了啊,这两个对应上了。

然后呢我们这里发送数据包的时候呢,是检测这两个字对应,所以它就这两个字呢不相等就会进入,但是两个相等也是直接来到这里进入这个流程,但是这个流程里面呢,这很明显啊,这个CSRF的这个值那就不对了。

我当时我认为我没有判断这个CSF的这个值,没有判断这个字,所以还是要判断这个提交的这个值啊,还要看到这个字啊,这个字是在表单中提交的。

这里呢我们加上一个东西,就在你判断的时候呢,我写一下DOLF相关post,提交的这个,Csgo top,这个值呢,但这里判断就有麻烦了啊,哎先写一下吧,这边写一下啊,哎呀真的是麻烦到。

我学一下,学一下之后我们再判断。

哎呀这真是搞搞人都搞晕了啊,这个搞这个token。

莫名其妙啊,这哪里有问题啊,这。

toy不等于session toy两个是相等的,所以就直接进去了,不相等就不能进去,你们别在这里玩游戏睡了,我不解决怎么办呢,啊我不该上这个内容,说实话自己捞自己,不是啊。
这个这个是我自己之前把这个代码一写好的啊,这个是已写好的,他妈的,我早中午下午测试的时候都好好的,这一下子是怎么出问题啊,我问一下check bot,看一下。

问一下他,看一下,你这他妈的,我就问一下他。

问一下这个CHECKBOOT。

加个GPT啊,问一下7PTPP中的top,表单验证,看看他怎么写啊,你这样写能判断,但是那个逻辑有问题了,他这个还是用这个post提交过来进行判断,所以说我刚才那个判断逻辑有问题。
我那个是用什么c cooking中判断。

我试一下啊,他这个是用的是那个post表单判断,就这里啊,他这里是用的是这个,我这里使用cookie里面接受判断啊,他这里呢是用post提交过来的数据进行判断,和C型,我把它判断一下。
那这里就等于这个dot post post提交过来的判断,这里面C型post提交这个CSF,那个pp就是我们这边生成表单字吗,好不等于它,那它就进入这个循环,把这个呢给注释一下,因为这个不重要。
就不需要这个空隙里面判断,我看一下啊。

这个肯定是有可能是对的,但是可能逻辑上面登录就会有影响了。

我不知道正不正确啊,我们先试一下,这个感觉是真的,真的之后呢,感觉他这个逻辑就不对了啊,你看一下,我登录一下,那他一直提示这个灯失败,你一直都是这个错误,你看就你无论怎么去破解它。
就是个错误答案就是在写,是没毛病,它能防止这个包破解,你看这俩把打电头开起来,但是先关闭,你看啊,你这样写是能把这个流程实现清楚了,你看我登录啊,你看啊,我怎么去改这个密码,我把它改对的,他也不行。

你看我改的对的,那直接跳转拒绝访问。

因为你的这个提交cs toy和他的C型toy不对,你要是RA对不对。

然后呢,他这里写的是什么。

他这里提交是什么,你看下它这里面的托尼是一三。

也就是说你必须要确保这两个字对应才行。

因为这个C型的是在服务器的,你肯定不知道这里是什么东西是吧,你必须在上面有写啊,如果上面不写了,你不知道,那我要写上去呢,我这样写它就对了,你看它就密码了,登录成功对不对,只要说你这个不对的话啊。
你不对,那我写个错的,你这里密码即使正确有啥用呢,也登不进去,因为你的数据包唯一性没有通过,所以说你无论怎么暴力破解都不行,为什么,因为你包的破解这两个变量是这个密码和账号,这个token。
你哪知道他是谁呢,如果说这个你不给予这个提示。

这个提示是我给的啊,这个提示,但是我在这里呢啊,把他这个成功之后呢,设置这个cos写了上去,我如果说把这里不写呢。

但我把一去掉一去掉之后呢,你再抓包,他就没有这个东西了,那你再装包给你看一下,再找个包刷新一下,那我们抓个包给他下,来登录一下,那不写toy这个东西,它还是有啊,还有啊把曲子去掉了。
不管他应该是没有刷新吧,那也就是说如果我不给这个token这里写的话,你这里呢无论你怎么舒张,密码正确与否,他都不会登录成功,因为这个token呢他要保证维修,所以这个toy的一个作用呢。
就是保证数据包的微信,就说很简单的道理啊,你可以在这里这里这样去登录,你可以这样去登录它,他没问题,这样登录他没问题是吧,一直点登录,因为你每登录一次,你的cooking在变动和服务器在同步。
但是如果说你放到脚本中去运行,脚本中就是死的toy一直发包,但是你想想你每一次登录他就会换一个TK,每一次登录就换个TP,你怎么提前知道那个TK值呢,你不知道啊,所以这个发包事件就会失效。
那我就无法暴力破解,我这样说大家能不能理解,但是我这个脚本还是有问题啊,他没有实现这个正确登录,但是这个功能呢大家可以看到是这个效果了,就是这个原因造成的,所以说大家在看到一些数据包里面有这种类似。
TOK值的话,其实就是保证这个数据包的通,这个这个什么唯一性,就是你现在发这个鼠标可以,你下一次发的话,那个top只当改变的话,他要验证每次数据包的那个TOK值,就是每次他都要验证这个数据包toy值。
对不对,那么你如果说不无法预知,下一次的托尼斯是什么,你就做不了任何事情,就像我们的暴力破解,包括这个我们说的一些防御,他说防御什么CSF也是个意思,就是就是说你要触发某个页面,要访问这个页面就很简单。
我这里即使我登录成功了,我访问这个页面来,我访问这个页面,我登录成功了,我照密码全部写进去了,访问它它也会失败,因为你直接访问他,你的token和这个数据包对应不上,就是说效果大家看到了啊。
但这个脚本还是有问题啊,因为它无法正常登录了,你我要正常多了,所以这里还是有些问题,我不知道哪里出了问题,妈的真是太奇怪了啊,这样判断的就进入这个循环,但是脚本的逻辑出了问题,不是。
CSF看这个文件来源是对的,但是他也要如果有TOK,他也要判断的,这个TOK简单来说就是判断数据包的唯一性能,不能理解,就是你启用了TOK之后呢,这个数据包每发一次都会有一个编号,那个编号堆才有消。
编号不对,就没有消,但是它又是随机产生的,你无法预知下一次数据包的toy是多少,因为它是由脚本自动产生的,你必须要在他的网站上面去触发,就和我刚才说的一样道理,你在这里去登录是吧。

他是没问题,就是你一次登录,这样是没问题,因为他每一次都在这里产生,所以它每一次在你登录一次,它就产生一次它自带的帮你把它发送了,但是呢你一旦用脚本发送就不行了,因为脚本呢你在发送时候。
你哪知道这个下意识它是什么,你只能设置这两个呀,你只能设置一个这两个,你这个怎么设置,你怎么知道下一次会是做什么东西啊,那你放网站不一样了,放网站是因为它自带了,所以你发送它就给它拼接上了,能理解吧。

所以他就组织这种啊批量的访问,那么也是就组成了这个暴力破解,包括我们说的什么cs啊,RF漏洞也是一样,实际上漏洞就是让对方去访问一个网址,但那个网址你提前不知道你访问他的时候,托给值是多少。
所以你访问它就会失效。

网站的是怎么自带的,这不是自带的吗,他在我刚才在请求的时候,不是自动这里呢把它赋值了吗,他发送过去就自动复制了,这是我前面生成的呀,就是他网站,那他如我,我现在做的事情,就是说我现在是个什么情况呢。
就是我把这个原理啊,把这个知识点给他讲了,但是我的脚本还有问题,我的脚本还有问题,什么问题呢,就是无法做到正常的这个登录正确和震动,失败的一个判断,只是给大家看到这个TOK的作用。
我脚本现在还有这个问题,我不知道哪里出了问题啊,妈的三无的脸是好好的,不知道啥情况,代码一模一样都不行,哎呀,真是太奇怪了啊,我怀疑是不是那个怀疑是不是那个,我现在怀疑是不是。
还问是不是那个数据包里面的cooking的一些。

没有删除导致的,唉也不知道啥情况了哦,我不后面在后面下面再把它弄一下吧,这个因为这个脚本的实现功能呢,不是我们太想要的啊,主要把字典的一个讲解清楚,今天说实话,现在我还是有点不爽的啊,准备的好好的。
这搞得跟MD这个后面最后一步出了问题,真的顶不住,那他的压根没判断这个值,这个值判断正确的是这个。

那我就还是要判断这个C型的一个判断,那还是要判断这个CSF的,还是要判断这个cs2和判断还不行。

那谁行,判断的不准确。

但是我C型判断这个解说的是C型的脱轨字。

这有值的token也是对的呀,他就和这个字不一样不一样,不就进入这个匹配了吗,但是为什么。

这不行啊,唉我这样子这样去判断吧,我把写个dolf post和表单的提交字,唉算了算了,懒得改了啊,懒得搞了啊,原理是把这个token的知识点是讲清楚了啊,主要是想把这个东西。
这个例子无非就是代码怎么写的原因,代码不会怎么写的原因啊,大家也不是做开发的啊,以后碰到了从代码中也可以看到有没有top,从数据包里面有没有看托。

主要是假如大家安全的渗透中,碰到TOK的一个疑问。

这节课录像就不发了啊,我们下节课重上啊。

两马也不发了啊,白上了。

直接摆烂。
P24:第24天-PHP应用&文件管理模块&显示上传&黑白名单类型过滤&访问控制 - 逆风微笑的代码狗 - BV1Mx4y1q7Ny
好这个继续讲啊,这个安全开发啊,现在呢还是在这个pp的这个章节模块,但这个pp章节模块呢,预计还有三次3~4次直播吧,就讲完了哈,嗯加完了之后呢,我们再说这个JS和java的,现在看这个pp模块。
现在的今天是第三次课了吧,第三次讲pp了哈,今天讲的是文件模块的这个文件模块,那一课还讲不完啊,因为文件模块里面呢有这个文件的显示,文件的上传,文件的删除,文件的下载,文件的编辑和文件包含。
那今天呢讲两个,讲文件的显示和文件的上传这两个,然后呢像什么下载删除啊,包含呀编辑啊这些的,我们就留给下节课再讲啊,就是关于这个自然下载这个模块的啊,就是文件的一些东西,你要把后台的大部分上节课讲了啊。
就还有两三个这个模块呢,我们就还有三四个模块,那我们就试试直播吧,讲完了,然后呢这是我们这个文件这一块的啊,然后差点忘记了啊,有人刚提了这个TOK的啊,哎我真是不想说啊。
还有三节课TOK那个没有成功是吧,后面呢我们把它搞了一下,成功了啊,这个原因是什么原因呢,为什么翻车呢,有两种情况啊,翻车呢是由两个原因决定的,我拉一天的话,说实话啊,我即使把代码来改正确了,也会翻车。
那个改应该是想都没想到,所以说这个翻车那是有原因的啊。

不是说是我自己呢光拆的原因啊。

来我们看一下那个上节课那个翻车的原因,那就是他的源码,我们来看一下啊,这个是什么情况呢,就是说呀一个原因是什么原因啊,我先给大家说一个原因,就是这里少了这串代码,就是说这个在进入这个登录验证的时候。
我们要把这个toy重新在CC里面更新一下,就说这个C型的token呢,会在登录验证的时候重新刷新一下啊,然后呢这防止这个toy和之前的对应上的话,就可以一直爆破,就可以一直登录。
就说我说的防止爆破事件嘛,通过这个token呢防止这个事情就少这串代码啊,其他的基本上就没有了,就少了,这份代码就是在进入这个地方少了任何东西,其他的基本没有改,然后呢还有一个原因是什么原因呢。

我就给大家演示一下啊,来我们先来看一下啊,这个演示我先把这个BUBU打开。

我们能用这个token技术来实现,这个数据包的卫星,来防止一个爆破,这是我们昨天上节课演示那个案例,对吧啊,除了这个房子爆破呢,也能防止很多其他一些漏洞的。

一些安全问题是吧,我们只是拿这个爆破呢来做的这个演示哈。

然后呢我们这里来做个演示啊。

然后是什么原因呢,我来看一下啊,我先运行起来啊,来。

在我们上节课写了个那个用pp开发的,一个后台登录,然后呢,加入这个token,来防止后台的爆破技术的应用是吧,他的账号正确,账号密码是艾米和123456,点击登录之后,它会提示这个。
然后呢即使你输入账号密码,它也会提示这个。

那这是什么原因呢,你看啊,然后你看一下啊,我把这个网址地址呢我放到这个浏览器上面去。

我发这个浏览器上面去啊,你看啊我这里输入一个错误密码,输入错误密码提示登录失败,然后输入正确密码,123456好,他就说登录成功就进入了这个东西是吧,就是一个正确的一个登录账号,但是这里这个浏览器呢。
你看我不管怎么说,他就提示这个什么原因造成的,你说对了,输错了都这样,所以啊我昨天上次课浮现失败的原因,就是浏览器插件导入的,就这几个插件,这个插件会自动帮我重新访问死亡的,所以导致那个C型被刷新了。
你说这种原因我怎么一时半会能够想得到翻车,不是我想要的,有些是技术差,但是有些事你没办法避免的,你没有考虑过这个问题,插件导致的啊,他妈的真是想都不知道是什么情况。

你看我把这几个插件一关关了之后啊。

你看现在他就能正确的判断了,他就能正确判断,你输入错误密码和输入正确密码,登录400,看到没,然后你输入正确密码呢,他就正常了是吧,你说这里面的谁知道是什么情况造成的呢,这出这机关想都没想到啊。
后面我是你妹的,测了半天,我终于找到原因,顶不住啊,实在是顶不住啊,插件是什么原因呢。

插件是因为这几个插件呀,你把它开了之后呢,这几个插件会调用你访问网站的资源。

它会检测,所以它相当于重新访问一下网站,导致这个车型被刷新的,是这个原因造成的,知道吧,就像是他罚我两次。

然后以第二次为准,好然后呢我们看一下啊。

就这个token呢有什么用处是吧,这是我们上节课把这个过程搞了,大家看一下用处啊。

比如说我现在就要对它进行爆破,就这个toy的一个应用案例,我也要对它进行包裹啊,大家看一下啊,我现在要对它进行包裹,我们来关注一下这边的一个爆破的情况啊。

首先呢我们把代理开一下,把up主的包抓到啊。


点击保存,然后呢在这边呢你看啊我输入正确账密码啊,数123123,这个是不对的啊,大家看一下啊,现在呢我进行一个包袱,把这个数据包抓到嗯,A是什么情况,怎么找不到晚。



换个浏览器吧,在这边弄,好得到成功啊,大家看一下啊,我在这里抓个包,嗯这怎么抓不到啊,这什么情况。

我把这个代理工具把它去掉一下,看是不是这个原因造成的啊,开一下。

好抓到了,应该是,也不用抓包了啊,我也不用抓包了,我就给你看一下这个这个浏览器。

这边重新发一下包就完事了。

大家看一下啊,重新发一下包就完了,不用抓包。

把这个地址也给改一下啊,因为他应该是那个调试器导致的啊,应该是那个调试器导致的。

他在调试器应该不是个网站,他直接在调试,我用这个打开就应该可以抓到了。


那现在就应该能抓到了,好大家看一下啊,哪登录下来,比如说我现在登录看着啊,123456输入进去的好,把包抓到,那就是那个包好,大家看一下啊,我现在把它发送一次,它提示的是什么,登录成功,对不对。
好大家看着啊,这是一个很正常的登录,对不对,和我们逻辑一样,那么现在啊我重新再来试一下,我是个什么东西呢,我重新再来登录,假设我现在不知道他的密码,我不知道密码对不对,我用这个错误密码登录,点击登录好。
这是他的登录数据包,我们这里来测试啊,首先第一步测试的时候,它提示什么登录失败,当我们再次呢去对这个数据报密码进行更改,添加为支点的时候啊,我们可以呢按照这个正常的这个爆破的手段。
把这个地方呢把怎么样把它选中,然后呢进行这个爆破是吧,这里替换它的支点,这是我们做的一些常见的哈,写写专业字典,那即使我把这个正确密码写进去,123456把它写进去是吧,看一下啊,他能不能成功。
我们来进行这个访问,这个时候呢,我们看一下它的访问结果变成什么啊,看它的返回值点,Upset default,那123456,这里也是这个结果,为什么这是房子的爆破案,因为很简单的道理。
什么原因造成的呀,来包括这里呢密码我再发一次,变成这个了,后面我就无论怎么改,我把它改成正确密码也不行,解释这个错误,为什么呢。

就是那个toy的作用,因为就像我们上节课把这个拖级数讲之后,就在这个代码验证中呢,你要进入这个登录逻辑的时候,他就把C型重新刷新了,刀子啊。

你再去登录就不行了,但是你可能会问,那我如果说我这里,假设我真正的自己输错了密码,那这里不也一样吗,查询关键就是这里呢我先输入错误密码,我登录好,它提示我登录400好,我再输入这个正确密码是吧。
你不是说这里改了之后不行吗,你登诶他能成功哦,输错密码我一直输也是登录示范,我再输错密码,他也是登录示范对吧,他也为什么在这边他是正常逻辑呢,到浏览器这边就不一样呢。

为什么呀,因为你在每次登录的时候。

上面就自动刷新了这个值,而你在这个工具这一边的时候,这个地方的这个token没有更改,就这个值是固定的,你第一次的数据包,你在发第一次的数据包一直在向前,你说你要让他这个进入正确的逻辑的话。
就必须要更改这个toy,但是你相对工具来讲,工具怎么知道下一次的token是什么,而浏览器是因为它刷新页面,重新提交的数据包,所以它自动更新了,他知道,但是你这里数据包工具这里。
他不知道下一次出现什么样,所以也就是说,这个技术就直接防止了这个暴力破解事件,因为你不知道下次这个TOK要是什么东西,你就无法保证这个数据包的唯一性。

对方就不予接受,直接给你在这个衣服这里,这个直接进入这个呢,你不等于就直接提示这个,你就没有进入正常的账号,密码的判定逻辑里面去,而你在浏览器那边,是因为浏览器呢你在重新发包的时候,它是会自动生成的。
to保证和那个C型的是toy到接收到的一样,就会进入这个逻辑,所以你只能在浏览器那边一个个尝试,那么你想你不可能爆破以前那样常识啊,对不对,还是要用工具,但是工具不行啊,工具不知道下意识的TOK值呀。
是不是就和我们说TOK的应用价值就知道了呀,所以这个token呢就是我们说的数据包的唯一性,这就是它的功能,他的房子类似于爆破事件,包括一些其他漏洞都能够放置到,因为它只是检测这个数据包的卫星。
你只要是从莫名其妙发到的一些数据包,他都不接受,除非是真正的归啊,这个正确的数据包他才会接受,好这就是我们上节课遗留的那个问题啊,已经给他解答了,包括刚才演示也没演示啊,所以大家就知道了啊。
那个toy是一个什么东西了啊。

以后也要通过这个案例呢,大家应该也知道了,你当你去看数据包的时候,它这里面有这种东西的话,那你就应该意识到这个东西是吧,是是什么情况啊,你能不能做哪些安全措施了,就心中要输了啊。

好我们现在再来看今天要讲的内容,好哎呀。

一讲这个我就想起来你们有些人呐真是真实啊,不讲他一直在那里。

在那聊天框里说讲啊,讲脱口就上去给他,我也没见过你以前这么好学呀,你咋现在这么好学了呀,我真是难为你了呀,对不对,刚才他还在说讲,我就想起你以前你还不是要买我的号给别人学,你咋现在这么爱学习的呀。
你变了呀,你是不是真把号卖给别人了呀,不像你以前那编了。


我等下下去我就要查一下,看是不是卖了啊,好我们看一下这个经典内容啊,今天讲这个文件管理,这个文件管理的就是我们说的这个什么文件,上传文件,下载文件,删除文件,编辑文件的包含等等,就是有五六个那个功能啊。
我们今天讲两个功能,就讲这个文件的这个这个获取它的一个目录,包括这个文件上传,包括主要是文件上传啊,因为文件上传的和我们后面要讲的,这个文件上传都用的,它是息息相关的,那么文件上传。
那我们现在先讲它的功能实现,我们再从这个功能实现上面,那再给大家去分析这个相关的这个过滤机制,和这个绕过是针对哪一个类型的,从代码角度去给他分析啊,就是从我们开发的角度呢。
先把功能实现再来思考它的安全点,这就是我们为什么要讲这个系列课程的原因啊,就是从一个呢是大家会开发能读懂代码,那么后期呢在看代码分析漏洞的时候,那就更容易啊,在做代码审计这方面是有优势的。
那么现在让我们看一下,这个文件上传的一个功能。

实现这个功能实现是非常简单的哈,首先呢我们要这个准备一个这个页面啊。

就新建一个页面,新建一个叫upload点TM文件。

这个TML文件呢就是用来做文件上传的。

这个表单啊,为了这个写的漂亮界面呢。

我就用这个,因为这个tab呢不是我们学习的终点啊,我们学习的后端啊,这个页面的设计,那是不是我们想讲的,所以我这里就问一下这个切个GP啊。


让他帮我去搞一个漂亮的文件,上传的这个这个这个操作好了。

我再来问一下,切个PPT,把它生成一个这个东西出来啊。

问一下他啊,问一下我们的切BB,JM呢哎写错了,帮我HTML写一个这个界面美观的这个商城页面,文件上传页面,我们只需要他这个界面就可以了啊,后面这个文件上传怎么处理呢,就我们在用PP实现。
我们就先把这个页面写出来,让他搞一个漂亮一点的啊,我们自己如果说自己写的话,就是这个cs的一些东西啊,这这不是我们学的啊,我们也不用学这个东西,因为这个东西呢就是搞没关系的,没不没有什么安全意义啊。
不是说不教大家啊,有些人呢你不给他讲清楚,他觉得是吧,这里不灰啊,怎么滴啊,全是我不会这个cs啊,因为它也不重要啊,不是完全需要学的,哎他这个是用JS写的吗,这里面的哎呀,不要用JS写JS写的。
这还不行,哎呀我直接用我之前的那个吧。

这JS也不行,用JS写的啊,换一下这个JS我们现在没讲到啊,无论是纯ATM写的,那就这个吧,这个我前面生成的啊,把它放在它替换下,大家看一下这个页面啊,大家看下这个页面,我们可以打开。
给他看一下这个文件上传的一个界面,然后这里选择文件是吧,这个上传呢主要是这里一个表单,前面都是这个央视啊,这没什么重要的啊,这是个表单,表针呢就提交给upload pp,还用post提交。
然后这里呢有个这个文件,这个这个列表name file,我们在这里选中一个upload pp啊。


已存在在这里,然后在这里呢我们就写核心代码,写核心代码,啊用pp开发的,那这里呢就是接受这两个值,然后如何接收文件上传过来的信息呢。

这里要解一个全局变量,dollar f p p里面dolf files,它是PP一个预制的全局变量,包括权力量,我们上期的也上上上节课讲过啊,有大概九个是吧,我们都已经讲了三四个了。
这个DFS今天又讲他是专门来处理文件上传的,包括会获取到上传的文件名。

类型大小和临时文件名等信息,那这个东西是怎么获取的呢,来看一下啊,比如说他这里呢传递过来,我们怎么获取呢,看一下啊,我首先声明一个变量叫name等于DOTFILES,然后什么东西呢,这里写什么东西。
后面再写什么东西呢,大家看一下啊,这个第一个就是我们说表单的参数值就这点啊,name等于file,就把这个file写进去,假如这里改成X,那么这里就是X好,我先把它改成这样,改file之后呢。
这里就结束file,这里属于那个更改了,然后这里就结束name,这个是固定的,这个意思就是接收文件的名字,dota files soliguys啊。

这个就是接收文件的名字,就是它的原始文件名,获取文件的原始名称,就是他上传的是什么名字,就什么名字,然后这个呢就是我们说的这个top类型。

那我们就依次写这个地方,这个就截取类型,类型top top,然后呢这个再解释他的这个大小C字,同样道理sex,然后呢结束他的TPLTP,这是临时文件名啊,这个临时文件和这个文件名有什么意义啊。
等下大家看一下输出结果,然后呢再来解释一个错误代码hero,就如果说你上传错误的话,这里会有一个错误信息,那么这里就是error,就后面这个东西是不用改的,是固定的啊。
后面这个name on top c值是固定的,然后这个里面的值是随着个表单的更改好,我们先把它进行一个打印看一下啊,给大家看一下效果,一直打印文件的内蒙子,文件呢这个这个值,然后呢文件的大小。
然后文件的这个临时文件名,然后文件思维错误,把一式打印一下啊,加上这个换行,加上换行啊。

好看一下,我们输出一下来打开页面,现在是为空的啊,现在是为空的。

好,我们先来商量一下啊,看一下啊,选这个文件啊,随便选这个文件啊,选这个文件,来我们学这个文件啊,就这个上传,你获取到了upload文件名JPG,诶,怎么其他信息没有获取的,这里是这个fire。
其他信息,这里那里获取什么new啊,写错了,Dollar files,好我先一个获取一个获取好吧,一个获取一个获取,先上下文件名,这里是提交upload点pp。

upload点pp,对的来,我们一个获取啊,刷新一下。

那文件名啊,文件名对了好,再看第二个获取类型。

刷新一下。


哎这哪写错了呀,这要是出现什么情况,这还真是意外了,来来这边试一下。

这还真是意外了。


好文件名是获取成功的,然后这个类型这里歌曲不成功,这是啥情况啊,这,然后这个大小看一下啊。

看大小,大小为零。

大小这里为临时文件名,看一下,我看是哪里问题啊,我怀疑是不是上传文件的问题,我换一个文件应该就好了。

换个文件把这个又是零大小了。

这个错误代码呢,随便上传个啊,就上传这个pp info里面的。

随便找个文件二点TP也对了。

这个是获取大小为零,大小为零,错误代码,零四文件名都没有显示,包括这个错误代码,这里。

好也不对,来再来试一下,来大小错误。

代码的尾流,那说明错误了啊,上传的时候发生错误,这个是哪里出错,这真是莫名其妙,我这。

来来这里有人去访问一下啊,我直接在这里发问吧,192。168。1。7,不low的,要不楼的点天麻。

这是什么情况,这是真是,怎么上传不了了,变成了,我把这个值改一下看,改成TX,改成这个,cf吧改成F,等下查下多了吧。

这正常的写就这么一个情况,说到我六看一下那个files这个错误代码的,下午都好好的啊,六是找不到临时文件夹,找不到临时文件夹,全线被删了,清空的临时文件夹。

稍等一下啊,我开这个项目的啊,那天写好的嗯,不应该做一些事情,在一些莫名其妙的一些原因。

把这个人都要搞死的,来看正面啊,重新上传一下。

试一下啊,看正面的一个代码。


完了完了啊,看来这个要麻烦了啊。

我用虚拟机测试吧。

环境原因啊,不是这个代码原因,我下午上课之前,我清理了一下电脑,可能是把一些临时文件给他删掉了,应该是那个原因造成的。

好我让我服务器这边来测试。

把源代码写到这上面来测试啊,本地环境是有问题,好我们把代码放上去啊。

这也太麻烦了,没办法啊,只能这样搞了,这个环境一时半会搞不了,不知道是哪里解决不了,我先把这个东西放到那里去,两个文件啊,把它复制一下。

把PPP3D重新启动一下,看下,好发到上面去啊。

好我们来访问一下这个服务器这边的啊。

好看这边啊,我们在这里上传个文件啊。

大家看一下的,看到没,他正常了,看到没,所以说讲的没问题啊,在临时文件夹刚才报了个错误,是临时文件夹的问题,就是我电脑上面可能是我清空那个东西导致的,所以说不是说代码有问题啊。

这种问题你说出现了。

妈的这真是不知道什么情况,有时候啊现在正常了呢,代码一模一样,换了个环境啊,电脑环境过去重启一下就好了,就是我把那些零食东西给他删掉了,导致那个临时文件夹没有了,然后呢这个搞完之后。
你看他是获取这个类型和文件的名字,包括它的大小,这是以字节为流的,是2KB吧啊这个零是他的目录存在的,然后您就是那个没有错误好,那这里呢就是这几个一个获取方式,那接下来的话我们如何把文件给他上传了。

可以利用这个movie参数来进行上传,那怎么操作呢,在这里呢我们先把这个注释一下,进行了这个移动,移动的第一个参数值和第二个参数值改一下,一个参数呢就是我们说的这个移动的文件,移动谁呢。
这TMP橡皮live把它移动到哪里呢,移动路径啊,就是写到哪里,比如说我们就把它放到这个UPLOADERSUPLOADER下面,然后呢加上什么点上传的文件里,把引到这下面来啊,可以进行一个判断是吧。
如果,他这个移动成功,我们就输出一下吧,这个连接到什么,那如果说失败的话,那就是这个是吧,我们就不提示了,就搞这个了,然后呢我们可以自己试一下啊,移动到这个地方来,对不对。
然后在这里创建一个什么upload目录,也不知道怎么弄对吧,我们可以试着去访问一下呢,上传啊,重新上传个文件,随便上传个上传啊,包没有包任何问题,因为我这个本身环境有问题,所以他这里他也不提示是吧。
所以我只能在这里呢把那个圆的给他们改一下,只能在服务上面测试了哈。

这环境有问题,你说咋办呢,是不是覆盖一下。

然后这里呢上传到upload目录,我们在这里呢找一下upload目录,有没有啊没有,我们创建个,创建一个目录blog好,我们来看一下现在upload,但是为空的。

这个时候呢我们去访问一下这个网站,这里啊,来我们开始刷新一下啊,上传和文件来看一下能不能上成功呢。

上传好看,这里哎这啥情况啊。

怎么又错了呀。


好,low啊。

嗯这里呢就上传这个临时文件名,把它上传到这里,那我这里呢应该是怀疑是目录的问题啊,再来我就把直接上传到根目录,或者是这个路径结构,这里呢就看需要了啊,我怀疑是路径问题,现在我们这边的一个代码之前写好了。

上传到这个upload fish。

应该是对的啊,临时文件名加上去,直接用这个命令呢给他看一下啊。

刷新一下这里啊,看这里的upload目录,哦这里没给写入权限啊,不好意思,这个原因造成的,好干脆写进去了,刚才没有给这个目录权限来进去了是吧,能上墙啊,上去可以再试一下了。

那个提示我就不写了啊,这是带个文件,那随便上传个文件,再来看下来。

再来看看这里哪个先进啊,你看这谁都上下个pp引发了是吧,不要搞不要搞事啊,什么鬼,怎么都在上传来,我都上传上去了,好那这个人上船了哈。

那接下来的话我们就把这个代码给删掉了,能不能上船,第一步呢,我们现在要做什么事情呢,现在呢就是说哎只要做过滤了。

那过滤的话,一般文件上传的有三种过滤方式,一种黑名单,白名单,还有一种叫类型过滤,我们现在黑名单黑名单是啥意思呢,黑名单的一个过滤呢,简单来说,就是我们固定好一个不能上传的类型是吧。
那固定好一个不能上传的类型,一个不能上传好类型啊,什么叫不能上传类型的,不能上传类型,就比如说我们现在呢有的是TST是吧,有的是TST,那有的呢用的是什么呢,有的是其他的这个格式啊。

对不对,又是其他格式啊,好我们先来看一下黑名单的一个概念啊,那现在刷底黑名单的,先把这个删掉,这是正常的啊,这是正常的逻辑,那么现在看合订单的,有基于这个文件后缀呢进行验证的。
那首先我们定义的变量叫black qu,然后EST就代表后缀等于什么呢,一个数组里面写上一些黑名单,比如说p h p asp jsp asp x,对我上去这东西上去上去啊是吧,这里呢就是黑名单。
然后我怎么做呢,我只是要得到文件的这个后缀名啊,是要得到这个文件名字啊,名字里面进行拆分了,我这里可以用到这个expo p1,这个是干嘛的,拆分的,他怎么拆分呢,就是把这个接收到的文件里面把它拆分。
就是格雷姆嘛,把结束到把内蒙的进行拆分一点来拆分,就拆分到它的文件名是怎么个文件名,就上传获取的文件名,是不是就是叉叉点JPG或者叉叉点PNG,这种文件,是要把这个点后面这个PNG给它获取到。
然后呢进行对比,这个后面的文件后缀,来进行这个文件上传的判断了是吧,就是我们说的上传文件后缀的这个过滤是吧,然后采用黑名单机制来进行过滤,就是我定义好这些东西是不能上传的,因为这就是我们常见的一些脚本。
后面的文件格式对吧,我这个定义好,那这里呢就是拆分这个接收到的文件名啊,一点的来拆分,那这个东西又该怎么写呢,其实也非常简单啊,我们直接复制过来啊,那就这样写,那以这个点来拆分这个结束的文件名。
文件名变量赋值了,就是等等,是以点拆分啊,名字叫风格,我们可以输出一下这个风格。

这样我们可以运行一下啊,这个是可以上传接收到文件名的,好我们试一下啊,来访问一下这个阿波罗的,比如说上千个文件名啊,你看我上传上去这个点JPG的。

好他其实是个error,因为他是个数组啊,这个把它拆分拆分之后呢,他有个这个拆分的一个过程,我们用的再把它表示出来,嗯这里呢把它截取了,那这里呢这个把它操作一下,来看一下啊,来把这个运行起来看一下。

重新上传个人东西,JPG是不是测不出来JPGJPG啊。

大哥就你上传什么格式类型啊。

他就获取什么格式类型,比如TT的看到没,就是T2T对吧,那么你上传P1P,那就是P1P嘛,那1S1的那就是1S1。

他是把它拆分到了,来把数组里面的最后加上这个东西获取出来,然后等于这个变量,这就是获取的东西,然后呢,我们接下来就是不是判断一下,这个类型是不是在这里面,如果说灾,那就是黑名单嘛,那就不让上传是吧。
就衣服判断一下是吧,in a r a y判断,那就是判断这个两个参数leader和这个什么,第二个就是我们说的就是两个指向,一个是这个还是这个,就是判断这个格式在不在这个数组里面,对不对,如果他在。
那就提示,这个非法后缀文件,然后加上这个后缀名EXT,get到是不是,然后呢如果这个能够金就说不在这个file文件,那么接下来就是不是这个直接上传就完了呀,是吧,else进入这个什么正常的上传逻辑。
就把它进行上传就可以了,对不对,然后呢上下没有问题的话,就提示一个上下成功是吧,就这个情况是不是一下,提出一个这个CRIPT标签的这个弹窗,对就是他那个提示满画在这里呢。
如果说他在这里面就提示这个非法文件,再说不能上传嘛,对吧,我们可以来试一下吧,哈来我们来运行一下啊,我这个环境不能上传啊,所以只能看那个非法的文件。

就说我是搞个那个PNG的点卡的上成功。

他就进入这个正确的逻辑是吧,他就提示这里提示这里算什么了。

但是如果说你是pp文件的话,你看啊我们搞个黑名单文件给他试一下。

随便搞个这个pp文件啊,在这里随便创建个,那一点PD,这里要记得把这个文件的后缀名开上啊,不然的话你写错了一点。

上传加了一点pp的那非法后缀PP是不让上传,就是你内心的指甲是符合这上面的就不让上传,来说只能上传一些常规文件,这加个文件就不能上去了,所以这只是过滤机制的黑名单机制,这好理解啊,然后呢我给他看一下啊。
那演示到这个环境上面来看一下,不过这个环境本体有问题啊,所以无法看到这个文件上传的过程,那只能在这个上面来做做演示了,当然了,你如果这样操作呢,它也会带来一些安全隐患,还是有些过滤的啊。
就是我们后面说的什么商船绕锅呀,包括这种东西呢,它也是来源于这个上面的东西,那我们在这里做一下实验啊,把这个代码复制粘贴,粘贴修改一下,修改代码,这是他本来可以观察一下这个目录,默认是空的是吧。
我们先来访问一下这个路径,打开这个网站的,上传页面这个地方好,你看一下啊,我首先在上传一个增删文件啊,这上传一个非这个pp的文件,上传好,提示上传成功,然后让我们看一下这个路径,正面看不是不能上传啊。
这又是谁呀,那是不是又能上去啊,对吧好,当我们去上传这个脚本文件,提示非法后缀,这里有没有呢,没有了,对不对,你可能说那这样有什么意义呢,黑名单过滤有logo的问题,什么问题啊。
比如说我现在要搞个什么重新塞上选课,这样讲的话就和那个文件工坊有关的。

我搞个什么PP5。

上去是能上的上官,因为PP5不在黑名单里面的C5上官上上去,PP5能够访问到的,那他是能防刀的对吧,但是这里被当做什么了,被当做下载了,这个被当下载的是和环境有关的。

是和环境有关的,就比如像现在啊我自己的环境里面啊,我搞个这个搞个这个PP5,那取名叫特斯点PP里面写上pp代码。

你看我现在访问我这个PP5,那它能正常运行,我这个环境不能正常运行,这是环境决定的啊,不是说不是说这个其他的原因造成的啊,有些环境他就支持PP5,那如果支持PP5,那恭喜你就能绕过,能理解吧。
所以说这个黑名单机制呢,它是有不安全的隐患的,就是说如果说你没有考虑到任何变形的,这个后缀名的后门的话,也是能够上传后门的取得权限的是吧,所以这个黑名单机制呢它有缺陷,缺陷就是说你不上传的黑名单就完了。
只要这个格式呢,有其他格式呢能够上传脚本文件,也能执行脚本代码,那也是上传漏洞,所以这是第一种方式啊,我们说的黑名单机制,那么接下来呢我们再看白名单机制,这是过滤上面的啊,这个文件上传的白名单机制。
改编的戒指呢其实非常好理解,我们先把这个打码给他拉出来,然后简单改一下就可以了,改哪个东西呢,白名单机制这里有布莱克,就换成LLLL就是允许的EXP允许什么呢,比如说PNGJPGGIF。
或者这个JPEG,就是我们这种图像的一些格式对吧,然后呢这就刚好选个相反就完了,就是如果在这个数组里面啊,不在这个数组里面前面加个感叹号,不在这个数组里面是吧,不在这个允许的这个什么变量里面的类型。
我们就提示非法后缀,在的话就进入else,因为这写了个飞马是吧,就不在里面,就不是这几个后缀,那么就提这个,那么否则的话就是正常移动是吧,改一下就可以了,就是移动那是以标注黑名单来禁止。
还有一种呢就是要符合这个白名单,好理解吧,这有什么难的呢,对不对,那这种呢我们就把这个代码修改一下,开始测试一下,好保存一下,然后呢把那upload权限把它放开,我刚才把不放开。
就是怕有些人在上面乱搞啊,好那现在试一下,这边是齐的这个文件,好看啊。

现在呢我们来试一下啊,那我不搞一个这个白名单的,搞T2T非法后缀T2T不让上,就是你怎么删,你必须要符合一个图片,比如说图片的JPG的,他说上成功,这里就有了,是不是哎你们这个爱意是有多深啊。
啊我上船一次,你就搞个小李拉夫,这谁顶得住啊,这是吧,你看这种呢就就不能白名单,就是不是就只能上传JPGPNG这种东西啊,你看其他的文件就是你怎么删都不行,为什么呢,因为啊它只允许上传这几个后缀。
那我问你啊,你觉得白名单好还是黑名单好吧,你们觉得哪个好啊,这两种过滤机制哪个好啊,都说摆明了那就行了呗,那有人会说白名单有没有绕过的可能性有,但是现在不是我们要讲的,现在不是我们要讲的好。
这个反面单验证就到这里啊,再来看第三种类型,就是MIME类型的一个东西啊,除了我们今天讲的三种,还有很多,但是我们不可能都讲完,都讲完一节课就只能讲这个了啊,我们在到时候加上传漏洞的时候呢,会讲清楚的。
就是你搞东西方便了,后面的东西都好理解了,那这个是什么东西呢,就是文件类型,文件类型是啥东西啊,我给大家说一下啊,就是你在上传的时候呢,它会有一个数据包啊,我给看一下啊,我随便上传个文件给大家看一下。
那我随便上传个文件,他这里会有一个这个东西,就是我们说的这个提交值,这里,先上传个正常文件啊,啊大家看一下啊,这里啊,妈的这个不显示那个哎妈呀,这个上传这个表单,它不显示这啥情况,这真是莫名其妙。
这个表单代码都不给我显示,哎呀算了算了算了,我还是用那个抓包的吧。

怀疑这个音是出了win7的电脑来输都输不,输不了了不行,真是奇怪啊,每次讲课这环境随便有时候删一下,不小心把东西删了,那网站上本地环境就出问题了,妈的出问题就被骂,说什么翻车。

有些翻车里面真是神不知鬼,不觉不知道出啥问题,莫名其妙一些东西。


不是节目效果,我不想整这个节目效果。

这不是多此一举吗,要整这个节目效果干嘛呀。

我无聊啊,我真是,那你看啊我们现在上传个文件。

你说的我上传个这个图片的,我上这个图片的呢,我也上传啊,我们抓个包来看一下这个结果啊,来点看图片类型,它这里有个叫什么image j p g,那你是JPG,它变成JPG是吧,看到了啊。
好然后你看我现在再换个文件,比如说我现在上传个1S1看下他这里啊,就变成了什么文件,就变成了application,差什么ms dl,对不对啊,同样道理啊,我们再来加个包。
我再换一个什么这个这个这个一点PVP让他上传,商场那看一点pp的,那就变成了application ot t stream,啥情况,其实就是说你在上传不同类型的时候。

那个top类型呢它是不一样的,你就很简单啊。

我们这里就可以用这个来判定什么判定呢,就是文件类型的判定就怎么判定呢,就首先一样的道理,声明的变量变量叫m i m e alone,t arm等于什么呢,数组里面的比如说image g png。
然后依次写几个,就比如说图片的一些常见类型,就写几个啊,PNGPNG后缀的,JPGJPG后缀的,然后呢JPGJPG的是吧,还JPG的等等啊,这意思就是说那个类型等于这四个东西,就是图片的啊。
就是图片的如果等于其他的,就是其他的对吧,允许类型呢,然后呢这个时候就直接判断嘛是吧,就直接判断把这个代码复制一下,把注释修改去掉,来判断一下这个人群类型是不是在这里面对吧,在这里面的话对。
如果说这个类型的这个类型,这个是top,就是从前面获取的top,就这里获取的呢,获取top嘛,获取下类型等于这个类型,在这个里面的话就是吃这里面的类型的话是吧,就这个进入else就是这里是补码,对不对。
不,在这里面的话就进入OS就上传,如果是这里面的类型的话,那就不是这个类型的话,就提示非法,是这个类型就基本20前面是个非,对不对,那这里就是我们常见的图片类型,就是只允许上传图片,好对的吧,好。
那么现在呢我们就把它带回来复制,诶这里怎么有个错误啊,哪里有问题啊,说有个错误是什么错误啊,52行,因为这里少了个监控,用这个20在下面没写啊,好正常了啊,然后我把这个代码呢重新放到这个服务器这边。
来测试啊,看一下啊,就他呢就是通过这个文件自带的类型,就是不通过后缀了,刚才是用后缀来判断,现在呢就是说你上传文件的时候,会自带一个类型,通过这个类型的判定你是什么后缀。
其实就是这个换那个东西呢来检测啊,其实归根到底还是在检测文件,是什么文件而已啊,只是换了个思路去检测,就是检测这个互追打好,我们现在呢去访问一下,一样道理,来我们上传啊,就正常来讲。

这里呢我上传一个PP5非法后退,这就不是提法。

后后者就非法类型,我这里呢为了确保起见,我把代码也修改一下,就直接提示这个什么非法文件,然后呢拼接一下,把那个类型呢把它打印出来,就是什么类型。

来看一下,重新来访问相关网站,提示你看非常的是这个类型。

对不对,当你去换一张图片之后。

诶是不是能上成功了,他也不会进入那个逻辑了呀,因为呢就这几个,那可能大家会说那这个东西有没有安全隐患的。

有啊,改个包就完了呀,对不对,改个包就完了呀,很简单呀,来开一下带你如果是肉腌制的话啊。

我们来猜一下,那我在上传的时候呢,我先选择中一个疑点PP5。

他选择中对吧,然后这个时候呢抓个包点上全包抓到了,你不是检测这个东西吗,我改成和你复合就完了呀,你们几P啊,来把它放出去,不上的功能吗。

对不对,所以说这个验证呢你要安全的话就必须要做啊,必须要进行这个几步的操作,就说不是说哎搞一个搞两个是吧,就说你既要判断一部分,还要判断另外一部分,就是使这个验证逻辑啊,根啊燕子逻辑的更严谨。
就是没有这个空子可钻,那么这个上传的就是正常的啊,对不对,唉不这和前端没有任何意义,因为这个top呢是那个商船自带的,你把它改了之后,对方服务器就结束,是你那改的东西。

这不是说前端不前端的问题,和前端没有任何意义,他也不是说前端验证了你想哪里去了,所以说为什么上这个课啊,你们有些东西呢思维都混乱了啊。

因为它结束的值呢就是你那个数据包那里的值,你把它改成一个东西就完了呀,因为这个类型是可以改的啊,他只是说自带的从哪获取了,然后你把它改成一个东西。

它也会结束啊,他不是说什么前端不前端,前端是另外一种东西啊,不是这个东西好。

你说什么他刚才说的什么前端呢,还有一些各种各样的一些商圈的技巧,这个呢是在后面讲到文件上传漏洞的时候呢,我们再细细的讲来啊,今天呢就是说演示一下这个文件上传功能啊。
它的一些常见的代码和这个过滤代码的一些简,单编写,让大家知道这个过滤代码是什么一个模型,对不对,我们就举了这个常见的三种啊,包括还有其他的这个,我们就到时候呢再讲到这个上传漏洞的时候呢,再给大家一看啊。
看这个里面有很多过滤的啊,好这个呢就是文件上传这个模块的一个使用啊,啊这个东西呢就三个三个验证机制,包括这个功能的实现,那就讲到这里,那么接下来呢我们再来看这个文件管理快啊。

文件管理,那就是我们说的它的文件管理呢有四个地方,然后我们写一下啊,这个文件管理器啊,它的这个功能呢有这几个地方,就是上传,就刚才说的上传,然后呢这个下载35编辑,还有这个什么包含等啊,我们上传了。
就刚才文件上传下载都没有讲删除,没有讲编辑,没有讲列表还是怎么显示啊,显示就是显示这个整个架构啊,其实呀大家有没有发现一个道理啊,你像我们写的这些常见的这些代码呢。
它是和我们这个pp的一些好的功能极为相似,也就是说你把这个科学了之后,那你是可以完全的花点时间,去写一个这种屁屁的后门的这种脚本,后面就我们说什么屁屁打码这种东西啊是吧,如果你说你有编程开发经验。
那是可以尝试去写一些类似菜刀一样的工具,因为它都是这些零零散散的一些部分功能,你想大码里面或者说这种后门里面,他们都会有这个功能,就是文件管理功能,就可以通过这个后门单来实现。
对网站的目录结构的一些操作,当然我们讲是讲这个东西,并不是说为了设计这个功能啊,因为我们讲这个功能呢,其实更多的是偏向于这种真实网站应用,里面有这些功能,然后呢他是怎么写的。
方便我们后期通过代码分析漏洞,同时呢也是让我们了解一下,这个代码的作用是吧。

剖析一些漏洞呢都是展现在这些方面。

好这里呢我们再来说一下这个文件管理啊,这个文件管理呢它的编写的话分为四步,首先呢是读取目录,看一下目录里面有哪些文件,然后呢在递归循环去读,这个递归循环是啥意思呢,就是说一个文件夹下面有文件夹。
又有文件夹,又有什么文件,那么下面的文件夹我们要继续往下面翻看一下,他下面继续有哪些东西是吧,就递归循环,然后呢可以判断一下这个是文件,我们就显示文件的操作流程是文件夹呢,就选择文件夹的操作流程。
啥意思呢,那很简单,我们这里有个功能,比如说我们后面要写到这个删除功能,或者说这个编辑功能,就拿这个编辑功能来说吧,好这里还有个下功能,你下载的是文件和编辑的是文件,还是下载的是文件夹还是编辑的文件夹。
你下载文件夹好,这我们先不说编辑吧,编辑文件夹是改名字吧,文件夹里面有内容吗,没有内容啊,文件夹里面就是下面就是文件呀,所以他编辑文件,这个是针对于文件的编辑,而不是文件夹的编辑,文件夹只有改名字。
这重命名没有什么对它里面内容感好理解吧,所以说我为什么要进行一个判断,是文件夹还是文件的一个操作,就说你要写编辑功能的话,你肯定是要搞清楚这个文件是文件还是文件夹,是文件夹,你还需不需要编辑。
那只能改名字,那就不叫编辑,我们说的编辑是改里面的内容,所以针对的是文件,那么今天呢我们就写一部分功能,那么下节课呢我们把这个东西就完善,就像是用PP呢写一个文件管理器,在上面呢。
可以实现文件的商船和这个文件的列表读取,包括文件的删除,包括文件的编辑这些功能,那么现在呢我们就只搞这个文件的这个显示啊,包括他的一个循环,因为这个功能呢不是说一下子能解决的啊。
我们来看一下这个文件的操作,然后呢通过这个案例里面的话,我们就能看到它会带来哪些安全问题,它会带来哪些安全问题,同样呢也会给大家讲一下简单的防御,但是我讲的呢不是说唯一性,有很多方法防御和很多方法测试。
只是说给大家开个眼啊,后面呢大家学到相关漏洞的时候就能明了,那么现在呢我们来看一下这个文件的显示操作。

好来创建个这个。

文件夹叫做file manager,这个文件管理点pp嗯。

那哎这怎么是PP5啊,把去掉下。

删掉删掉pp5也能行啊,只是我还搞个PP的吧。

好那首先呢这里呢我们要使用功能,那先要打开文件目录,这里有几个函数啊,给大家看一下,这个函数叫一直掉啊,就是判断这个文件路径是否是一个目录,open dr呢是打开指定目录,并且返回句柄。
返回句柄呢用来读取目录的文件和子目录,通过V的DR来实现,从这个打开的句柄里面,再去读取里面的文件和子目录,所以它大概是先进行打开目录,在进行这个读取和显示。

所以啊他的第一步是先打开目录,首先呢我们可以声明一个目录结构,先看一下啊,DR等于什么,等于这个就拿这个当前目录来测试啊,先等他,然后呢我们进行open dr来进行打开这个DR。
打开之后再复制一个变量来解锁它的句柄,比如我们就叫这个D吧是吧,然后呢再用这个什么V的DR来打开这个D,打开这个D这个打开这个D之后,接下来的话啊,就是说打开这个目录,然后呢去读取这个东西。

然后你是不是还要进行显示的呀,要进行显示啊,这个相关的一个使用呢,你可以查一下这个函数的一个,大概的一个情况啊,pp里面那个目录操作的一个情况,它里面是有这个相关的,这个参数值和这些东西的啊。
来打开这个目录呢,他说打开一个文件夹,并且读下内容,这是读取的内容,我们来试一下,打开它之后呢,复制它,如果这里呢等于这个REDR啊,它等于它的话嗯,就循环,我们可以输出一下,看下啊,先运行一下。
看一下,简单的好,这里的为空,你看一个点啥情况,就因为呢他这个读取呢会读取一行里面有很多。

所以我这里要进行个什么判断,叫well调节判断,就是当他去打开这个东西的时候,它只要不等于false,就是说不为错误的话。

那我们就一直循环,然后呢读取这里面的什么东西啊。

你就等于这个值就读取它里面的这个值,那就是让fail了去结束这个打开过来的结果,结果判断是不是等于false,如果不等于的话,就说明还有文件和文件夹,我就打印,这样来看一下结果,运行一下。
你是不是结果出来了,然后呢以此让结果显示的增长一些。

DR换行,你看是不是出来呢,这就是当前这个什么,当前这个目录下面的文件是文件夹,这两个文件夹是吧,这是什么文件对吧,这下面的文件和文件夹的一个结构,但是呢这里显示的不太好,怎么不行不好呢。
哎就是这个文件夹呢没有文件夹的样子。

也不知道是文件夹,也不知道是文件对吧,所以这里呢可以再进行一个什么判断,是不是文件和文件夹的一个操作,对不对,现在怎么进行判断,如果一直DR判断一下这个fell是吧,如果他是这个文件夹。
我们就输出往前夹加上这个什么C对不对,else呢,如果是文件就输出这是文件。

那这样子呢就会有一个显示呢,这是文件,这是文件夹,对不对啊,同样道理,如果是文件夹的话,我们就可以怎么样呢,把它一点开,把它点开之后呢,他就像是在看这个文件夹里面的内容是吧,就很简单。
这个文件夹里下面还有东西啊,我们可以点进去看一看,这文件就没有了呀,所以我们还要实现功能,要对这个下面的文件夹呢,要进行操作是不是。



不加BRY。


把那个我这里他只是写了一个大概功能,包括这个页面的一个设计,我已经给他写好了啊,我等下给他看一下那个成品啊,那我先把功能实现啊,那功能呢后面改动都好改,是不是哎呀,这个东西怎么弄死,里面的搞不掉。
自动保护器,麻烦死。

所以说呀你还是正常打,你就说这个文件夹我们就可以怎么样呢。

点进去看,那如果说是文件夹的话,我们就可以怎么样呢,继续向下面进行啊,是不是继续向下面进行,那该怎么进行呢,对不对,其实就是说文件加,我们就继续把这个东西执行一遍不就完了嘛,对不对,就是如果是文件夹。
我继续执行一遍这个代码就完了呀,就像我点这个东西,那怎么搞呢,我可以怎么样把它定义成一个什么函数FUNACY,然后调用一下不就完了吗,调用一下呢,交出这个修file是吧,先是文件夹传这个电量。
电R看这个电量过去对不对,然后把这个把这个东西给他弄上去,楼景区,对吧,把它弄进去,那这个电压呢就是我们全参的值,function修改file对吧,传承值进去呢操作,如果这里呢他还有这个这个什么。
这个这个参数值的话,我又怎么办呢,对不对,我先把它进行一个显示,如果说这里面还是文件夹,我该怎么办呢,就是我给他一个点击的一个操作,让它进入这个文件夹,再去显示下面的这个内容,对不对,再显示内容。
而且我这里能给他截出个值,比如说叫dollar符,下回get,然后呢加上这个叫pinch路径,如果说它没有设置,我就为空,就把它表示为空,这个意思就是说12字,这里如果有截止到喷几次,就等于这个电压。
如果没有接收,就等于为空对吧对空,那么这里呢我们就赋值赋值,这里呢如果他是文件夹,就等于这个斜杠点,就等于这个啊,就像现在呢啊我就把它操作一遍,少了一个这个符号,现在正常了,这个符号是对应少了一个括号。
我们可以看一下,那我先给大家写个字修啊,我传递一个参数,比如说我传这个直角型调用函数。

就没有赋值的话,我们来看一下这里。



这怎么还死了呀,哦这里啊哎,啥情况,这我给他传一个,搞得有点昏嗯,先把这个,给这个传递一个值吧。

这个DR呢我给他服务这个参数试一下啊,喷漆等于一点点斜杠。

不对呀,这。


在哪里有问题啊,这刚才那正常的,唉这有些东西啊,混搞混了,等一下啊,我看看哪里有问题,我先把它搞成这个就搞一个东西吧,先先不不不就是变量啊,好这个呢呃我先不把这个东西去掉啊,先把这个索引类推下。

怎么现在不正常了,我这这发生了啥情况啊。


我当时是这样写的,他正常,怎么现在服务器打不开了,啊这真是你妈的莫名其妙,这个东西我刚吃的没改动啊,我看一下啊,这他妈的这是发生啥情况,怎么正面,我太爱呀。


你看啊这个调试的这边出了问题,调试都打不开了,那直接用这个环境打开了又正常,这他妈的我真是啊。

我一直以为我代码写错了,你们说这有时候这些事情这样发生了,你有什么办法啊,你说你有什么办法。

那现在正常的,妈的真是无语啊。

环境这个PP是多环境有问题了,他不能显示了,不知道啥情况,调试出了问题。

莫名其妙,好那直接这里看这个结构吧,只能看这个结果了,就是文件啊,不用这个调试调试他妈的出了问题,哎呀那这里那就还是把刚才那个弹幕剪辑,你们还一直在那个聊天框里面说我哪里写错了,哪里写错了。
来看看这里啊,那我不赋值的时候啊,他这边呢就是等于这个斜杠一,就当前目录,我如果给它赋值的话,我给赋值的起切个三,你看他是来到商机了,你看来到商机了吗,啊,继续呢,你比如说呢横向道理,他这里有个my。
我等于来喷几轮,全都计划等于艾德米,它有个进入艾米目录,这样的显示是不是出来了,那如何让它这里形成一个可以点击的,就是我现在手枪是没问题。

手敲是没问题,给他这个路径,他就读取这个下面路径的内容了,但如何说在这里的显示呢,样刀零啊,就给他一个这个操作,给他这个文件夹,这个操作操作之后呢,它会触发一个路径就完了呗,就这个路径这里写个什么。
给个给个什么东西啊,给个这个东西就完了呀,给个A标签啊,EF等于什么,等于一个弄好弄好什么pg等于dog file,是不是,然后这里谢哥诶,单引号啊,因为前面是双引号。

双引号呢是让这个变量执行的来写,这里我们看下,还用它,用它的描。

然后再给个这个嗯,不是不是写错了。

这个就是说这里呢你看啊,我点进去它就自动跳转的是米的,我点这个呢还是调整你的。

你看这不是给了,那这个AA他妈去了一下,就以这个文件名吧,把文件名字写在这来呀,这个文件名来来把它作为一个标签,哎呀这搞得他妈的拼接起来好麻烦的,这个文件名跳到这里啊,把它加到这里来,FS加进来。
连接下不连接也行。

来看一下这里啊,那是吧,他有一个录进来,你看我点击了是不显示啊,你看来在你这就是目录目录下面,有文件有文件有文件有文件是吧。

嗯就说这个那简单的功能,那我们就实现了啊。

简单功能就实现了,叫他访问他是吧,反正只有目录就进去看呀,没目录就就就这么搞好。

那这个呢是一个简单的一个功能实现,那这里呢我可以给大家看一下成品的啊,就是有这个界面美观的,给他搞个成品来看一下啊,这个成品呢我还加了一些上传下载的,但是这里那些没,这是我马上要讲的上下的。

今天不讲了,你看这个成品的啊,该看成品的,看成品的话,那这是我们写的成品,那前面多了这个目录,然后呢后面的是什么文件,就这种呢界面做了一些改观是吧。

然后呢就是引用了这个cs显示的功能都差不多,那就是那这里面加入在输出这个内容的时候呢,文件的时候,那就怎么样知识点是一样的啊,无非就是说改了一下这个界面的美观程度。

哎你看这有啊,比如点的显示出来是吧,来点这个index显出来。

那这个怎么设计的呢,其实就是在这里呢改一个这个标签,就是在前面加上,不是说我们写文件夹就直接搞个图标,这个图标用cs生成的,嗯啊这是源码啊。

那就这个结果是吧,那么这个会带来什么效果呢,就比如说你这些网站web应用中,经常会在一些后台,或者在一些这种资源下载的时候,会有这种文件的一个列表,就像我们说的,有些网站后台不是有这种功能吗。
那么你可以观察一下它的一些功能的实现,比如说这里有参数,完了你点他就发一个什么艾米啊,你点这个引IDA,他就发个IDA,对不对,那么如果你改这个东西呢,改点斜杠,当前目录两点斜杠。
商机目录栽两年斜杠是吧。

会怎么样呢,对不对,我现在呢给大家看一下啊。

我们在这个app里面有个安全机制。

里面是有一个东西的,PPI里面是有个设置的,这是我提前把四个了啊,如果没有设的话,会有什么效果啊,看一下啊。

有个叫open base dr的一个参数,就PPINI的啊,如果是其他的这个语言的话,他们同样都有这种类似功能,open base dr啊,这那有个这东西呢叫路径是吧,如果我把这里的封号加上去。
就让它不生效,不生效之后呢,我重新把这个东西启动一下,重启动一下之后啊。

我们看一下这边的一个情况,刚才那个路径的就是默认的是吧,那你看啊艾德米目录,进入艾德米目录,我挑上一级点斜杠啊,商业机加点斜杠没有了,然后就什么点点斜杠,上一级点斜杠是当前目录,是不是跳到上级目录了。
这是我们的上级目录,就像说呢现在呢我的文件目录呢是放在了这个,这个里面是吧,那我直接访问他是看的是这个目录,直接访问P他是看这个目录是吧,这是我当前目录的结构啊,他这里有,就加上一个什么。
就观察着点点斜杠,点斜杠就是商机目录,这就是商机目录,我继续点点斜杠,电子斜杠,你就是来到这级目录,来到这里,我再来电力斜杠,他是来D盘的,对不对,如果你想C盘,那就写个C盘,那跑到C盘去了。
那我就可以编辑C盘的这个数据是吧,那C盘windows,那么大家试想一下,这个其实就和我们一些这种web应用中,一些文件管理器的一些功能,这里就给测试有没有这种文件编辑漏洞。
它就是由于在编辑这个文件夹的时候呢,没有控制你输的参数,导致了,你可以通过这个点点斜杠,这种商机和下一季这种差异呢,对于这个就是他的这个网站本身的设,计和文件管理实装。
你那通过后台或者通过一些东西呢去来更新,修改你的一些文件,但是呢在显示这个文件结构的时候啊,它没有设置固定的权限和,没有设置这个过滤的参数,导入你的通过这个点斜杠和点点斜杠呢,来跨级目录。
来获取整个服务器的盘符造成的文件编辑内容,所以通过这个案例,那就和我们那个文件编辑的相关,通过我们刚才讲的商船呢,就是和文件商权相关,那同样道理,下载就是下载,删除就是删除,就是我们说的什么任意文件。
下载任意文件,删除,任意文件的读取就是和这个什么编辑呀,下载删除相关的,包括包含就是任意文件包含,所以说我们每讲一个这个案例呢,其实它都是有一些相应的安全问题的,就是在你开发的时候没有做好这样的措施。
就会导致这样的安全问题,那么如何堵上它呢,你想PP应用里面,它可以在代码中的来来实现这个安全修复。

就很简单啊,他可以在这个代码中呢是吧,在这里进行过滤啊,这这不是读取这个列表吧,它可以过滤检测到你书的参数是点斜杠的话,那么他就给你咔嚓掉,就不让你这种帆布就只能是一个文件夹,对不对啊。
这种是一种过滤机制,还有一种过滤机制,最好的过滤机制就是我说的第二种,就是在一些这种中间间和脚本语言里面,能够支持的配置,这个具体要看啊,你当前环境支不支持,你像PP里面。
PPI里面是有个叫open bgr的一个东西,我可以把这样写,这样写就是什么作用呢,就是打开文件是D盘pv study3W点,就是说我把它固定在这个目录,他就走不了了。
就是我们说的设置这个环境的访问控制目录,这个呢是这个pp支持的,如果说是java或者说是其他这个语言的,这个开发的话,那么有些是有些没有是吧,那个你要根据具体的情况对的啊,这个pp是有的。
java里面的也有是吧,同样的你也可以根据这个目录的权限进行设置,就是可以在电脑上面的,通过设置权限的一个是吧,对于用户的一个刻度条件来设置,也能阻止这类的这种安全问题。
当然你可以通过这个自带的这个功能,或者说通过代码中的来过滤啊,各种各样的方式呢去修复这样的安全问题,我们这里就只说这种,你看我这样子一写之后呢,啊,我把它限制到3W目录,那么我们把这个环境的重启一下。
再看一下啊,好我把环境重启一下之后呢。

我们再来这里啊,再来这个地方来,刚才是能跨到C盘是吧,你看现在我们先点斜杠,你看啊,那这是他的目录,现在目录呢是来到了这个目录下面,电竞显卡方信息啊,他是来到这个目录下面是吧,你看对不对,来到了啊。
你看来了之后呢,我刚才限制的就是这个目录嘛,对不对,就先指的是这个目录一个,我再往上面翻行不行啊,没有了空了,为什么限制访问了呀,是不是限制范围了,看不了了,那你看其他不能不能看到C盘也不能看了呀。
把你固定死了,在配置文件的修改的访问控制权限,那么这个这个设置,也极大地给我们解释了一个问题,这是什么问题啊,我给大家说一下啊,你们有时候在拿到一些这种网站的时候。
为什么有些网站可以看到什么C盘或者D盘,或者E盘,或者说LINUX的一些其他版本,为什么有些网站就固定死了,在某些目录就和这个相关的差不多的意思,是不是有这样的案例吧。
为什么有些网站连上去整个服务器都能看,而有些人就不能看,那就和这种类似的相关的设置导致的。

是吧,这个东西就说到这里吧,那么如果说你要过滤的话,就像这个啊,我可以打进过滤,就是我检测这个倒数DR是吧,我可以打进检测,怎么怎么检测呢,怎么检测呢,就是呢判断。
如果这个什么DODR里面这个就写个什么也是,比如说我也是一样道理,我也写个什么这个黑名单过滤是吧,黑名单过滤,前面的过滤是吧,我这里也写黑名单过滤,我把这个电脑进行判断,如果一直。
在数组里面就是这个生命两个,电量有后面的过滤啊,这个jr就是这里带这个路径的ACPI,等于什么ARAY然后呢我写几个呢,比如呢点写点点刚是吧,这种东西呢如果说你有这个东西是吧,好就直接写歌吧。
这数组就一个嘛,那就写歌吧,难搞了是吧,就判断一下呢,如果你接触到的电压等于等于,嗯还是把写进去吧,这样判断好一点啊,你可以用那个能判断,那如果他在这里面,就是你输入的这个路径里面有这个东西是吧。
有这个东西,那说明你在跨目录在搞事情是吧,我就直接怎么样呢,echo是吧,金子跨目录好啊,给个提示,对吧,这个提示啊,否则的话就else,就正常的这个通讯嘛是吧,就调用这个函数都可以这样写啊。

对不对,那这个时候你再看一下,我现在回来,现在正常了是吧,当你呢在这里那里看一下目录,等于它是正常的,一旦让你想夸的点点斜杠一加上去。

诶,什么鬼,怎么起反应啊,哦我知道知道这个是改错了文件啊,这个是pp是多吗,这个是改词pp。

来点这些吗,那你看禁止跨目录是吧,就能阻止你,对不对,就是说我们说的这种情况啊,他不让你再搞了,你可能说这怎么绕过呢,也好过呀,怎么着啊,写个东西,写个这反应不是又可以。
所以说呀这些东西呢我不能说怎么讲讲,讲个毛啊,很多这个CTF的一些这种技巧,也是这种各种各样的绕。

就你想得到的没想到的都给你,像这样搞哎,有些人就说我A啊,我我再把这个加上去行来,那有些人这样搞是吧,他说我搞这个那还行不行呢,对不对,这我把这个也加上去。

叫我把这个加上去行不行啊,他还有捞的呀,他有些还有LOD啊,他有些呢就搞两个写法,就搞四个点,加上这东西,搞四个点啊,什么三个点呢,如果说你这有加删除的,把它删掉啊,搞四个点呢,搞三个点呢还是重复的。
就这样很多种啊,就不是说只有肿啊。

不怎么地啊这种情况啊,就是简单来说呀,你把这些代码的一些东西,比如说那个过滤啊,这种开发呀过去了,搞清楚之后呢,对于打CCTF搞代码审计呢,包括你后期对这个漏洞的理解,漏洞的这个黑盒测试。
白盒测试都是大大的帮助,这也是我们为什么要花这个气力去讲的,我当然不是叫你去开发,我这开发的本身也是个拆啊,这个假如开发的这么简单的代码是吧,都容易翻车,所以啊我也是没办法。
这只能说为了让你呢对后面的漏洞啊,包括后面的课程呢有更深的认识啊,所以才会讲这个开发的啊,不是我想讲,我真不想讲啊,我自己开发的都很菜啊。

然后呢大家如果想学的话啊。

我们这里也给他找了个,前两天有个人呢啊,学生呢给我发了这两个文档,关于这个pp的开发文档,这个西数P和pp安全之道。

哎大家可以下去看一下,那么这里写了一些关于这个pp的一些开发中的。

一些安全问题啊,PDF给大家去打包到那个里面去啊。

针对pp项目的安全性呢还是有点参考价值的,java就没用了啊,那java的时候我们在到时候讲java的时候。



浙公网安备 33010602011771号