WebGoat (A2) Broken Authentication -- Authentication Bypasses (认证绕过)

目录

一、奇怪的闯关

二、糊涂的代码

三、简单的脑图


一、奇怪的闯关

这道题的目的是绕过对安全问题的验证,获得修改密码的权限。

像上图这样随便乱填两个框,submit之后,burpsuite抓到下面这个报文,把这个报文send to repeater

由于这一页的题目上面举了个例子,是删掉secQuestion0和secQuestion1两个参数就可以的,所以一开始我以为这题也这么操作就好了。但实际上这样操作是要报错的,像下图这样。

既然不能删除,那应该有其他诡异。既然secQuestion后面是带数字的,那如果修改这个数字,改成不存在的,会不会任意值或者空值可以校验成功呢?

像下图这样,构造payload:secQuestion00=lily&secQuestion100=YN&jsEnabled=1&verifyMethod=SEC_QUESTIONS&userId=12309746

成功过关~

二、糊涂的代码

这题的服务器代码在下图这个路径,首先会在parseSecQuestions()函数中把前端传来的参数名包含secQuestion的参数名和参数值提取出来;

然后将这些键值对传入类AccountVerificationHelper的函数中进行校验

找到这个类的定义,发现文件中已经提示漏洞在函数verifyAccount()中了,仔细一看,是if分支覆盖不全,没考虑到参数名不是secQuestion0和secQuestion1的情况。

三、简单的脑图

猜你喜欢

转载自blog.csdn.net/elephantxiang/article/details/114494879
今日推荐