检测web应用程序身份验证和会话管理中一些最常见漏洞的过程

目录

说明

一、 小节一

1. 靶场&靶机

2. 在kali linux中开启Burp Suite Community Edition,并打开BP的Chromium浏览器。

3. 进入WebGoat后,点击start

4. 点击Authentication Flaws,会出现Forgot Password等下拉菜单 

5. 选择Forgot password,弹出输入User Name的页面,如果没有可以点击Restart this Lesson 

6. 提交任意用户名(例如xshell),而该用户在数据库中不存在,将收到一条消息,说该用户名无效: 

7. 然后可以假设,当提供了有效的用户名时,响应是不同的。下面要对此进行测试,请将请求发送Intruder模块。

 8. 对该数据包单机右键选择Send to Intruder

9. 进入Intruder模块,设置用户名作为唯一要破解的位置:

 9.2 在最后一行,Username=xshell处,选择xshell,在点击Add§按钮

10. 转到Payloads来设置将在攻击中使用的用户字典列表。

11. 现在知道了用户不存在时的响应,可以使用Burp告诉该消息何时出现在结果中。

12. 勾选Flag result items with responses matching these expressions,

再输入Not a valid username,然后点击Add。

13. 返回Intruder | Positions,点击Start attack,开始攻击。

总结


说明

当应用程序管理的信息不被公开时,需要一种机制来验证是否允许用户查看某些数据,这称为身份验证

当今web应用程序中最常见的身份验证方法是用户名(或标识符)和密码。 

HTTP是无状态的协议,这意味着它的每个请求都是独一无二的,因此应用程序还需要一种方法来区分来自不同用户的请求,并允许它们执行可能需要由同一用户执行的一系列请求和同时连接的多个用户执行的任务。这称为会话管理

尽管Token令牌(包含在每个请求的授权头中发送的用户标识信息的值)在某些类型的应用程序中日益流行,例如后端web服务,cookie中的会话标识符是现代web应用程序中最常用的会话管理方法。

在本章中,将介绍检测web应用程序身份验证和会话管理中一些最常见漏洞的过程,以及攻击者如何滥用这些漏洞以获得对受限制信息的访问。

一、 小节一

要破解用户/密码验证机制的第一步是发现有效的用户名。方法之一是通过枚举,枚举web应用程序中的用户是通过分析在登录、注册和密码恢复页面等位置提交用户名时的响应来完成的。 

在本节中,将使用一个普通用户名列表向应用程序提交多个请求,并通过比较响应来确定哪些提交的名称属于现有用户。

1. 靶场&靶机

靶场:OWASP BWA

靶机:WebGoat

Kali Linux上使用Burp Suite作为代理

几乎所有的应用程序都为用户提供了在忘记密码时恢复或重置密码的渠道。当不存在用户名时,这些应用程序也能识别出来,这可以用来枚举出的方式,现有名称的列表:

2. 在kali linux中开启Burp Suite Community Edition,并打开BP的Chromium浏览器。

Chromium登录:http://192.168.242.133/WebGoat/attack

 登录过程中使用的用户名和密码是:webgoat

3. 进入WebGoat后,点击start

 

4. 点击Authentication Flaws,会出现Forgot Password等下拉菜单 

 

 

5. 择Forgot password,弹出输入User Name的页面,如果没有可以点击Restart this Lesson 

 

6. 提交任意用户名(例如xshell),而该用户在数据库中不存在,将收到一条消息,说该用户名无效: 

 

7. 然后可以假设,当提供了有效的用户名时,响应是不同的。下面要对此进行测试,请将请求发送Intruder模块。

在Burp的Proxy/HTTP history中,我们找到刚才输入User-name是xshell的那个数据包,如下图示:

 

 8. 对该数据包单机右键选择Send to Intruder

 

9. 进入Intruder模块,设置用户名作为唯一要破解的位置:

9.1 点击Clear§

 

 9.2 在最后一行,Username=xshell处,选择xshell,在点击Add§按钮

 

 

10. 转到Payloads来设置将在攻击中使用的用户字典列表。

Payload type保持默认类型为Simple list简单列表,然后单击Load按钮来加载 /usr/share/wordlists/metasploit/http_default_users.txt文件:

 

11. 现在知道了用户不存在时的响应,可以使用Burp告诉该消息何时出现在结果中。

转到    Intruder | Settings | Grep – Match,全选列表内容,点击Remove清除列表。

 

12. 勾选Flag result items with responses matching these expressions,

再输入Not a valid username,然后点击Add。

 

 

 

13. 返回Intruder | Positions,点击Start attack,开始攻击。

请注意,有一些名称(如admin),其中无效用户名的消息没有使用Burp Suite标记,这些名称在应用程序中是有效的:

 

输入用户名admin,What is your favorite color?输入green,可以看到密码,也就是用户名admin是正确的,用户名root的颜色是green

总结

如果正在测试一个需要用户名和密码才能执行操作的web应用程序,需要寻找攻击者发现有效的用户名和密码的方法。在登录、注册和密码恢复页面中,对有效和无效用户的响应稍有不同,就会让找到一个有效信息。 分析对类似请求的响应差异是作为渗透测试人员需掌握的技能。可以使用Burp Suite等代理工具来记录原始请求,Intruder模块通过变量(用户名)的值的变化多次重放该请求。Intruder模块还允许自动搜索回包字符串,并指示在哪个响应中找到该字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
常见Web漏洞分析包括以下几类: 1. 跨站脚本攻击(XSS):攻击者通过在网页注入恶意脚本,使用户的浏览器执行该脚本,从而获取用户的敏感信息或控制用户的账户。 2. SQL注入攻击:攻击者通过在Web应用程序的输入字段注入恶意SQL代码,从而绕过身份验证、执行未授权操作或获取敏感信息。 3. 跨站请求伪造(CSRF):攻击者利用用户已登录的身份,在用户不知情的情况下发送恶意请求,执行未经授权的操作。 4. 文件包含漏洞:攻击者通过在Web应用程序包含可执行文件的路径注入恶意代码,从而执行任意命令或获取敏感信息。 5. 未经授权访问漏洞:包括目录遍历、未授权目录访问、未授权文件访问等漏洞,使攻击者可以访问应用程序未经授权的资源。 6. 不安全的直接对象引用:攻击者通过修改请求参数或URL的对象引用,绕过权限验证,访问或操作未经授权的对象。 7. 敏感信息泄露:包括在错误消息、日志文件、备份文件等泄露敏感信息,如数据库凭据、API密钥等。 8. 不正确的身份验证会话管理:包括密码弱验证、会话固定、会话劫持等问题,使攻击者能够绕过身份验证或获取其他用户的会话。 以上只是一些常见Web漏洞,实际情况还可能存在其他漏洞。为了保护Web应用程序安全,开发人员需要进行安全编码实践、输入验证、输出编码等措施,同时进行定期的漏洞扫描和安全测试。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2021计算机网络技术2班-zy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值