5.bWAPP Broken Auth. & Session Mgmt

admin 2023年1月25日23:57:58评论22 views字数 4364阅读14分32秒阅读模式

5.bWAPP Broken Auth. & Session Mgmt

0x01、Broken Auth - CAPTCHA Bypassing

Low

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

5.bWAPP Broken Auth. & Session Mgmt

爆破结果如下

5.bWAPP Broken Auth. & Session Mgmt

Medium&High

方法同上,依旧可以暴力破解。

因此及时销毁验证码的有效性,添加时间限制是很必要的。

0x02、Broken Auth. - Forgotten Function

Low

首先我们审查源码,可以发现源码中使用了mysqli_real_escape_string()函数,来进行防sql注入验证;

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

5.bWAPP Broken Auth. & Session Mgmt

暴力破解邮箱,邮箱正确了,会提示你的安全问题,也不会直接显示密码。

5.bWAPP Broken Auth. & Session Mgmt

Medium

Medium

同样我们通过审查源码得知,在中级难度时,安全问题会发送邮箱。

5.bWAPP Broken Auth. & Session Mgmt

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

High

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

0x03、Broken Auth. - Insecure Login Forms

Low

右键审查元素, 发现用户账号密码信息泄露:

5.bWAPP Broken Auth. & Session Mgmt

账号:tonystark,密码:I am Iron Man,成功登录

5.bWAPP Broken Auth. & Session Mgmt

Medium

右键审查元素, 同样发现了用户名的泄露, 通过查找发现unlock按钮的事件:

5.bWAPP Broken Auth. & Session Mgmt

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

5.bWAPP Broken Auth. & Session Mgmt

var bWAPP = "bash update killed my shells!"

  var a = bWAPP.charAt(0); var d = bWAPP.charAt(3); var r = bWAPP.charAt(16);
  var b = bWAPP.charAt(1); var e = bWAPP.charAt(4); var j = bWAPP.charAt(9);
  var c = bWAPP.charAt(2); var f = bWAPP.charAt(5); var g = bWAPP.charAt(4);
  var j = bWAPP.charAt(9); var h = bWAPP.charAt(6); var l = bWAPP.charAt(11);
  var g = bWAPP.charAt(4); var i = bWAPP.charAt(7); var x = bWAPP.charAt(4);
  var l = bWAPP.charAt(11); var p = bWAPP.charAt(23); var m = bWAPP.charAt(4);
  var s = bWAPP.charAt(17); var k = bWAPP.charAt(10); var d = bWAPP.charAt(23);
  var t = bWAPP.charAt(2); var n = bWAPP.charAt(12); var e = bWAPP.charAt(4);
  var a = bWAPP.charAt(1); var o = bWAPP.charAt(13); var f = bWAPP.charAt(5);
  var b = bWAPP.charAt(1); var q = bWAPP.charAt(15); var h = bWAPP.charAt(9);
  var c = bWAPP.charAt(2); var h = bWAPP.charAt(2); var i = bWAPP.charAt(7);
  var j = bWAPP.charAt(5); var i = bWAPP.charAt(7); var y = bWAPP.charAt(22);
  var g = bWAPP.charAt(1); var p = bWAPP.charAt(4); var p = bWAPP.charAt(28);
  var l = bWAPP.charAt(11); var k = bWAPP.charAt(14);
  var q = bWAPP.charAt(12); var n = bWAPP.charAt(12);
  var m = bWAPP.charAt(4); var o = bWAPP.charAt(19);

  var secret = (d + "" + j + "" + k + "" + q + "" + x + "" + t + "" +o + "" + g + "" + h + "" + d + "" + p);secret

将如上关键代码进行解密

5.bWAPP Broken Auth. & Session Mgmt

得到密码为hulk smash! 成功登录

5.bWAPP Broken Auth. & Session Mgmt

High

没有什么别的解法,只有默认账号密码 bee/bug,提示也是如此

5.bWAPP Broken Auth. & Session Mgmt

成功登录

5.bWAPP Broken Auth. & Session Mgmt

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没有销毁,可以账号依然有效:

5.bWAPP Broken Auth. & Session Mgmt

重新加载刚刚注销的url

x.x.x./ba_logout.php

发现仍然有效

5.bWAPP Broken Auth. & Session Mgmt

Medium

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

High

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

0x05、Broken Auth. - Password Attacks

Low

用burpsuite等工具爆破即可

Medium

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

第一种方法:

审查元素我们可以得到salt的值为7-mawE

5.bWAPP Broken Auth. & Session Mgmt

构造post请求,即可登陆成功

5.bWAPP Broken Auth. & Session Mgmt

第二种方法:

这里用burpsuite演示:

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

5.bWAPP Broken Auth. & Session Mgmt

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

5.bWAPP Broken Auth. & Session Mgmt

3. 将redirection设为always:

5.bWAPP Broken Auth. & Session Mgmt

4. 添加密码字典:

5.bWAPP Broken Auth. & Session Mgmt

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

5.bWAPP Broken Auth. & Session Mgmt

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

5.bWAPP Broken Auth. & Session Mgmt

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

5.bWAPP Broken Auth. & Session Mgmt

High

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

0x06、Broken Auth. - Weak Passwords

弱口令,直接挂字典用burp爆破。

Low

test / test

Medium

test / test123

High

test / Test123

0x07、Session Mgmt. - Administrative Portals

Low

5.bWAPP Broken Auth. & Session Mgmt

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

5.bWAPP Broken Auth. & Session Mgmt

Medium

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

5.bWAPP Broken Auth. & Session Mgmt

直接修改为1即可:

5.bWAPP Broken Auth. & Session Mgmt

High

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

0x08、Session Mgmt. - Cookies (HTTPOnly)

Low

审查源码, 发现 Cookies中httponly字段设置为false:

5.bWAPP Broken Auth. & Session Mgmt

  • 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这个变量值:

5.bWAPP Broken Auth. & Session Mgmt

Medium

Cookies中httponly字段设置为true:

5.bWAPP Broken Auth. & Session Mgmt

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

5.bWAPP Broken Auth. & Session Mgmt

High

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

5.bWAPP Broken Auth. & Session Mgmt

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

5.bWAPP Broken Auth. & Session Mgmt

0x09、Session Mgmt. - Session ID in URL

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

5.bWAPP Broken Auth. & Session Mgmt

Session ID 应该从不暴露在URL中。

0x10、Session Mgmt. - Strong Sessions

本题主要是通过观察top_security_nossl和top_security_ssl的情况,

来了解Session的安全存储

Low

没有任何安全可言

Medium

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

5.bWAPP Broken Auth. & Session Mgmt

High

在非SSL情况下,看不到top_security_ssl的值

改用HTTPS后,可以观察到top_security_nossl值

5.bWAPP Broken Auth. & Session Mgmt

文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。

转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。


博客:

https://rdyx0.github.io/

先知社区:

https://xz.aliyun.com/u/37846

SecIN:

https://www.sec-in.com/author/3097

CSDN:

https://blog.csdn.net/weixin_48899364?type=blog

公众号:

https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect

FreeBuf:

https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85


原文始发于微信公众号(儒道易行):5.bWAPP Broken Auth. & Session Mgmt

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月25日23:57:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   5.bWAPP Broken Auth. & Session Mgmthttp://cn-sec.com/archives/1525713.html

发表评论

匿名网友 填写信息