前言:
这是一篇关于月神SRC逻辑漏洞课程的学习笔记,因为我现在没有小钱钱所以买的是某宝的19期盗版课,如果后续赚钱了肯定是要支持一手正版的,但是现在嘛,先学吧,当然b站也有相关课程只不过需要包月充电
Fiddler安装及配置:
Fiddler安装:
随便选个用途,填写好邮箱,地区选择China,勾选“I accept the Fiddler End User License Agreement”,点击“DownLoad for windows”,下载
双击下载好的FiddlerSetup.exe安装fiddler,安装路径可以自行选择。安装好后,双击路径下的Fiddler.exe运行Fiddler,如果运行成功没有问题,就可以创建快捷方式了
因为我平常桌面都不放东西,要用工具直接utools搜,这里能够直接搜索到,我就不添加快捷方式了,如果utools搜索不到,可以将快捷方式添加到C:\ProgramData\Microsoft\Windows\Start Menu\Programs这个路径下
当然你们正常使用的话可以直接将快捷方式添加到桌面上
Fiddler插件安装:
下载链接:https://telerik-fiddler.s3.amazonaws.com/fiddler/addons/fiddlercertmaker.exe
下载好后直接运行安装即可
Fiddler配置:
双击Fiddler.exe后会弹出“AppContainer Configuration”对话框,点击“cancel”后续就不会出现了
然后在菜单栏中找到Tools选项,选择Options
在弹出的对话框中选择HTTPS和Connections这两个选项卡
按照下图修改即可,出现安装证书的部分直接全选是/确定
配置好后,点击HTTPS选项卡里面的Actions,选择第二个”Export Root Certificate to Desktop”导出证书
点击后弹出这个对话框就说明证书已经导出到桌面了
点击确定,然后打开浏览器的设置选项,在搜索框里面输入”证书”然后搜索,点击管理证书
在弹出的对话框中点击导入
然后就是按照向导一步一步来,一直点下一步就可以了
下一步,点击浏览,选择在你桌面上的那个证书文件
然后继续下一步,这里点击浏览
在弹出的对话框中选择第二个”受信任的根证书颁发机构”,然后点击确定
继续下一步,到这里点击完成就会导入证书了,然后就可以抓包HTTPS了
Fiddler过滤:
正常使用你会发现数据包太多了,完全看不多来,所以可以通过设置简单过滤一下不需要的包
点击菜单栏的Rules,然后依次勾选这四个即可,第四个”Request Japanese Content”勾选后再次打开Fiddler就取消勾选了,重新勾一下就好
鼠标右键一个URL地址,选择Filter Now,就可以看到其他的过滤选项,比如过滤这个浏览器,或者过滤这个端口,或者过滤这个网站,当然也可以设置仅展示这个端口的内容,还有其他的过滤,自行根据需要选择
如何抓包:
运行Fiddler后就开启抓包了,在浏览器搜索内容就可以在Fiddler看见对应的包
比如我这里搜索”法王”,可以看见右边有一个数据包,在其中有一个URL地址是search的,英文好一点的小伙伴肯定知道这是”搜索”的意思,然后双击这个包或者点击Inspectors然后点击WebFroms都可以查看这个包的内容,第一个参数q对应的值就是我们搜索的字
什么是返回值:
就是当我向服务器发起请求后,服务器返回给我们的内容
比如图片或者网页,就打上面那个例子来讲,我搜索法王后,页面显示了这些内容,这些就是服务器返回的内容,返回值就是数据,比如这个”法王定义”参考资料”等等,这些内容都是服务器返回给我们的值,其中会夹杂一些图片的数据
这个数据包下面的Raw里面的内容就是服务器返回的数据包,JSON是一种易于交换的数据格式,XML是一种用于传输和存储数据的标记语言,Cookie的英文意思是“曲奇”,这里指的是一些存储在本地电脑上的数据信息,主要用于帮助网站识别用户身份,例如保持登录状态、存储用户偏好等。HTTP是无状态协议,意思是通过这个协议访问网站,你上一秒访问跟下一秒访问,服务器是无法判断你是否是同一个人的,所以就要用到Cookie,每次请求对应网站,浏览器会自动带上响应的Cookie,从而让网站服务器知道你是谁
这里显示的是乱码可能是因为编码的问题
解决这个问题的办法就是开启Fiddler的自动解码功能,这里点击一下功能栏的Decode就可以了
然后在返回数据里面也可以点这个WebView查看返回的内容
这里可以看到跟我们在浏览器查看到底内容一样了
查看参数:
在请求网页或者刷新网页后,双击点开对应的包就可以看到请求的参数,这里还是搜索”法王”,可以看到我们请求的数据包里面就有这个参数,如果我们请求的内容是”月神”,那么这个q对应的值就是”月神”,Name指的是参数的名称,Value指的是这个参数对应的值
当然,在访问一些其他网站的时候还会有其他的参数名称,比如username(用户名),userid(用户id),password(密码),sign(签名校验参数)等等,这些都是网站传输过程中可能会出现的参数
比如我们要购买一个商品,那么一定会有商品id和用户id,一个是方便服务器查询商品的价格,一个是方便服务器查询用户信息和地址,当然地址有时候是单独的一个id也有可能,但是我们如果抓包修改其中的值,有些网站就会返回非法请求,因为sign值不对,这个值是在发送前,客户端对发送的数据整体进行一个加密得到的值,如果数据包里面的参数被抓包修改,sign值不做对应的修改,服务器校验数据包和sign不对应后,就会返回非法请求
修改,重发和并发:
修改:
方法一:
直接按F2修改数据包里面的内容,然后点击Replay重新发送
方法二:
鼠标左键点击这个小方块切换成抓包模式,然后就会有请求,如果没有我们想要的数据包点击GO直接发送,然后就会有新的数据包
抓包模式下打开网站一直是加载的状态,因为数据包没有发送的话,是一直卡在本地的
取消抓包模式只需要鼠标左键点击小方块两下或者右键一下都可以
重发:
重发数据包直接选中数据包后点击这个Repaly就可以了
并发:
并发是指一个系统能够同时处理多个任务。在单处理器系统中,多个任务交替执行,因为处理器在一段时间内只能执行一个任务。通过快速切换任务,使得在宏观上看起来像是多个任务同时进行
你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这就是并发
你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这是并行
而这里指的是我通过抓包拦截了正常请求,然后再在同一时间内点击GO发送这些请求,相隔非常短,这就实现了并发请求,有什么用呢?
就跟咱们人一样,如果同一时间你做的事情多了可能就会出现问题,比如前面提到的,吃着饭的时候说话,可能说着说着嘴瓢了都不知道,服务器也一样,如果并发的数据包非常多,都是请求某件事,比如使用同一张优惠卷,正常来讲这个账号只能用一次,我通过并发让服务器短时间接受大量的这个请求,不一定全部成功,但是总有那么一两个成功了,那我是不是就多次使用了这个优惠卷,绕过了一个账号只能使用一次优惠卷的逻辑,这就是并发漏洞
当然,这是我自己的理解,这才是官方的解释:
并发漏洞是指在多线程或多进程环境中,由于对共享资源的访问没有正确的同步控制,导致程序行为异常或安全问题的漏洞
当多个线程或进程并发访问共享资源,并且操作的执行顺序未被正确同步时,可能会导致不可预知的结果。例如,两个线程同时检查一个共享变量,然后尝试修改它,而没有任何锁机制,可能会导致数据不一致
利用竞争条件的主要障碍是确保多个请求同时处理,且它们的处理时间几乎没有差异—最好小于 1 毫秒