逻辑漏洞学习-1

前提

之前学习了sql注入、xss、RCE,了解了逻辑漏洞等基础知识,也看了一些文章,复现了一些漏洞自己尝试。所以今天,准备试试zzcms8.1版本的逻辑漏洞

好的,进入正题。

环境介绍

在虚拟机中搭建了一个zzcms8.1,之前原本想用DC_1来测试来,但尝试了一下用户注册,发现必须要管理员同意才算注册成功,就想着先找个简单的下手,这里先留个坑,之后再去填吧。

渗透测试

挖掘一个站时,大概思路就是:

确定业务流程—>寻找流程中可以被操控的环节—>分析可被操控环节中可能产生的逻辑问题—>尝试修改参数触发逻辑问题

拿到一个站后,第一步可以看看,但真正的第一步,是注册,就业务逻辑漏洞来说,我个人的理解,就是因为逻辑程序不严谨或逻辑太过复杂,才导致了一些逻辑分支不能正常处理

逻辑分布主要分布在用户身份、业务一致性、用户信息方面。今天就尝试一下用户身份,关于注册和密码找回

恶意用户批量注册

先随意注册一个

在这里插入图片描述

成功登录

在这里插入图片描述

既然摸清了注册套路,直接抓包
在这里插入图片描述

然后直接将username更改为其他名字,进行提交尝试
在这里插入图片描述
提交

然后尝试用test4登录,成功
在这里插入图片描述

那反正意思就是,图形验证码是无效的,并且未对电话,联系人,邮箱等信息校验嘛,那就ok啊,用burp字典跑,批量注册跑不掉的。

批量用户名猜解

再注册了test以后,又接着尝试再注册一个test,发现它有用户名已存在的提示

在这里插入图片描述
这样的话,先用burp抓包看看它返回的数据有些什么吧

这是抓取的包,明显看到它有一个检验,然后后边id接的就是我们想要注册的用户名

在这里插入图片描述

看看返回的包
在这里插入图片描述
直接上burp跑字典,这里提前注册了test1、test2、test3、test4等用户,所以我只添加了一部分字符串进行猜解尝试
在这里插入图片描述

很ok的,都猜解出来了。

密码找回

既然注册的地方存在逻辑漏洞,未对图形验证码做任何防护。那大胆猜测一下,找回密码处也存在漏洞

好的,抓包

这是找回密码的界面,很简单,就一个图形验证,但刚刚已经发现,注册的地方图形验证好像也没什么用,那估计这里也一样。
在这里插入图片描述

继续下一步
在这里插入图片描述
发现需要验证码,但是邮箱地址是假的啊,上哪找去,emmm,在经过了一般思考后,我决定先把每一步用burp抓包看一下,然后发现它返回的包是这样的

在这里插入图片描述

这是一个JavaScript代码

题外话:刚刚检测用户是否存在也是这个提示,或许待会可以试试用户注册重置

先把这里完成吧

这里,我在大佬们的博客里面学到了,可以在***控制台***进行改变

window.document.userreg.yzm_mobile2.value=‘yes’;

在这里插入图片描述
在这里插入图片描述

啊,完全没想到这个,感觉之前自己学的都白进脑子了,不开心

成功修改
在这里插入图片描述

哎,这个也算邮箱验证码绕过吧,行吧,大概就是这样。

之前我是想用burp抓包然后修改"window.document.userreg.yzm_mobile2.value=‘yes’;"值,但是不知道为什么,我不能抓取返回包,可能是我太弱了,还不知道怎么获得

用户注册重置

好的,接下来回到刚刚那个题外话,也就是用户注册重置。

输入已注册的用户名,可以清楚看到下边的响应值有一样的参数。同样用控制台尝试修改。
在这里插入图片描述

虽然还是在报错,但尝试提交然后,发现是可以的。

在这里插入图片描述
然后,尝试登录

成功,密码是我重新注册的密码