bWAPP Broken Auth. & Session Mgmt

0x01、Broken Auth - CAPTCHA Bypassing

Low

验证码绕过,本题验证码没有时间限制,所以提交一次验证码后,可以暴力破解用户名和密码了

Medium&High

方法如上,依然可以暴力破解。

所以及时销毁验证码的有效性是很必要的。



 

0x02、Broken Auth. - Forgotten Function

Low

在源码中使用了mysqli_real_escape_string()函数,进行了防sql注入验证;

且验证了输入是否为email格式:

只能通过暴力破解邮箱了,挂上你的字典试试看吧
邮箱正确了,会提示你的安全问题,也不会直接显示密码。

Medium

通过源码得知,在中级难度时,安全问题会发送邮箱。

也就是我们平时经常遇到的:  忘记密码需要更改时,  要通过发送修改密码的邮件到绑定的邮箱来修改。

High

会将sha1的随机哈希值发送到邮箱,通过安全问题找回页面重置安全问题

 

 

 

0x03、Broken Auth. - Insecure Login Forms

Low

查看网页源代码, 发现敏感(用户)信息泄露:

Medium

查看网页源代码,  同样发现了用户名的泄露;  通过发现unlock按钮的事件:

继续在网页源代码中找到 unlock_secret()函数:

将关键解密代码复制到浏览器控制台执行,  得到密码:

High

没什么解法了,只剩下 bee/bug 了:

 

 

 

0x04、Broken Auth. - Logout Management

这个通过源码可以发现,Low/Medium/High三个级别的区别:

switch($_COOKIE["security_level"])
{ 
    case "0" :       
        // Do nothing
        break;  
    case "1" :               
        // Destroys the session        
        session_destroy();        
        break;  
    case "2" :                         
        // Unsets all of the session variables
        $_SESSION = array();
        // Destroys the session    
        session_destroy();    
        break;
    default :
        // Do nothing
        break;
}

Low

退出登录时,session没有销毁,可以账号依然有效:

Medium

退出登录时,session已经销毁,需重新登录

High

退出登录时,session先被清空,然后销毁,需要重新登录

 

 

 

0x05、Broken Auth. - Password Attacks

Low

用burpsuite或者hydra爆破即可

Medium

增加了一个随机salt值来验证,  类似与token的作用。

这里用burpsuite演示:

1. 先选取爆破参数 password 和salt:

2. 从相应的页面中获取salt值:

3. 将redirection设为always:

4. 添加密码字典:

5. 将salt设置好,  并且给第一次访问的salt赋值 (不然开始就被不合法验证了, 无法开始):

6. 由于设置了sale,  是一对一的验证, 只有获取上一个请求返回的salt值才能,做下一次请求, 因此只能单线程, 在option中设置线程为1:

7. start attack,  长度不同的那个即为正确密码:

High

加了图片验证码, 也是我们现实中经常遇到的:

 

 

 

0x06、Broken Auth. - Weak Passwords

弱口令,没啥说的,挂字典吧。

Low

test / test

Medium

test / test123

High

test / Test123

 

 

 

0x07、Session Mgmt. - Administrative Portals

Low

admin参数控制页面,  直接修改即可:

Medium

同样,  只不过控制的admin参数在cookie中: 

High

需要修改session中的admin值为1, 或者直接用管理员账号bee/bug登录也可以。

 

 

0x08、Session Mgmt. - Cookies (HTTPOnly)

Low

观察源码,  Cookies中httponly字段设置为false:

  • setcookie(name,value,expire,path,domain,secure)
参数描述
name必需。规定 cookie 的名称。
value必需。规定 cookie 的值。
expire可选。规定 cookie 的有效期。
path可选。规定 cookie 的服务器路径。
domain可选。规定 cookie 的域名。
secure可选。规定是否通过安全的 HTTPS 连接来传输 cookie。

点击 Click Here ,本地JS脚本可以直接访问到top_security这个变量值:

Medium

Cookies中httponly字段设置为true:


点击Click Here,本地JS脚本无法访问top_security变量值了:

High

Cookies中httponly字段设置为ture,同时缩短了cookies的生存时间


与中级难度的区别在于,调整了Cookie的生存时间,仅有300秒(5分钟):

 

 

 

0x09、Session Mgmt. - Session ID in URL

三个等级的难度都一样,  Session ID 暴露在URL中:


Session ID 永远不要暴露在URL中。

 

 

 

0x0A、Session Mgmt. - Strong Sessions

本题主要是通过观察top_security_nossltop_security_ssl的情况,
来了解Session的安全存储

Low

没有任何安全可言

Medium

可以观察到top_security_nossl的值是使用了HASH处理

High

在非SSL情况下,看不到top_security_ssl的值
改用HTTPS后,可以观察到top_security_nossl


参考链接:https://www.jianshu.com/p/2bae182bb407

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值