黑客攻防技术宝典web实战篇:攻击验证机制习题

猫宁!!!

参考链接:http://www.ituring.com.cn/book/885

随书答案。

1. 在测试一个使用joe和pass证书登录的Web应用程序的过程中,在登录阶段,
在拦截代理服务器上看到一个要求访问以下 URL 的请求:
http://www.wahh-app.com/app?action=login&uname=joe&password=pass
如果不再进行其他探测,可以确定哪 3 种漏洞?

(a) 由于证书在该 URL 的查询字符串中传送,因此,这些证书将面临通过浏
览器历史记录、Web 服务器和 IDS 日志或直接在屏幕上显示而遭到未授权泄露的
风险。
(b) 证书通过未加密 HTTP 连接传送,因而易于被位于网络适当位置的攻击
者拦截。
(c) 密码为一个包含四个小写字母的英文单词。应用程序并未实施任何有效
的密码强度规则。

2. 自我注册功能如何会引入用户名枚举漏洞?如何防止这些漏洞?

通常,自我注册功能非常易于受到用户名枚举攻击,因为用户可以选择自己
的用户名,并且应用程序不允许用户注册现有用户名。
应用程序可以通过以下两种方法防止攻击者通过滥用自我注册功能来实施
用户名枚举攻击:
(a) 应用程序可以生成自己的用户名,然后在每名新用户提交了所需的个人
信息后向其分配一个无法预测的用户名。
(b) 可以在自我注册过程的第一个步骤要求用户输入他们的电子邮件地址。
然后,应用程序向用户发送一封电子邮件,该邮件包含一个 URL,用户可以使用
该 URL 继续注册过程。如果提供的电子邮件已注册,则在电子邮件中向用户通知
这一情况。

3. 某登录机制由以下步骤组成:
(a) 应用程序要求用户提交用户名和密码;
(b) 应用程序要求用户提交值得纪念的词中的两个随机选择的字母。
应用程序为何要求用户分两个阶段提供所需的信息?如果不这样做,登录机制将
存在什么缺陷?

要求用户提交值得纪念的词中的两个随机选择的字母,而不是整个单词,其
原理在于:即使攻击者截获了用户在一次登录过程中提交的所有证书,他仍然无
法使用这些证书再次登录,因为这时应用程序会要求用户提交另外两个字母。
如果应用程序在一个步骤中要求用户提交全部所需信息,那么它必须提前选
定随机选择的字母,而此时它并不知道正在进行验证的用户的身份。这意味着,
即使攻击者只知道值得纪念的词中的两个字母,他仍然可以通过重复加载登录表
单,直到应用程序请求那两个单词,从而使用截获的证书登录。
为避免这种缺陷,应用程序必须在用户每次成功登录后选择另外两个单词,
并将其存储在用户配置文件中,直到用户再次成功登录。当用户在登录的第一个
阶段确认自己的身份后,将从用户配置文件中检索这两个字母,并要求用户提交
相同的字母。这样,即使攻击者在一次登录中获取了用户证书,他仍然需要等待
非常长的一段时间,直到应用程序再次要求用户提交相同的字母。

4. 一个多阶段登录机制要求用户首先提交用户名,然后在后续阶段中提交其他
信息。如果用户提交了任何无效的数据,将立即返回到第一个阶段。
这种机制存在什么缺点?如何修复这种漏洞?

尝试猜测有效证书的攻击者可以轻松确定单个数据项是否有效。攻击者可以
利用应用程序的这种行为将蛮力攻击问题细分成一系列单独的问题。
要避免这种漏洞,可以要求应用程序即使在攻击者提交了无效数据项后仍继
续完成所有登录步骤,并在最后一个步骤完成后返回常规“登录失败”消息,而
不论是哪个数据项导致了登录失败。这样做可以显著增加攻击者使用蛮力猜测用
户证书时所需提交的请求数。

5. 应用程序在登录功能中整合了反钓鱼机制。在注册过程中,每名用户从应用
程序提供的大量图片中选择一幅特殊的图片。登录机制由以下步骤组成:
(1) 用户输入其用户名和出生日期;
(2) 如果这些信息无误,应用程序向用户显示他们选择的图片,如果信息有误,
则随机显示一幅图片;
(3) 用户核实应用程序显示的图片,如果图片正确,则输入他们的密码。
反钓鱼机制的作用在于:它向用户确认,他们使用的是真实而非“克隆”的应用
程序,因为只有真正的应用程序才能显示正确的图片。
反钓鱼机制给登录功能造成什么漏洞?这种机制是否能够有效阻止钓鱼攻击?

攻击者可以利用反钓鱼机制将用于猜测有效证书的过程划分成两个阶段。攻击者
可以通过两次完成步骤(1)来核实特定用户名和出生日期是否有效。如果两次
返回了同一幅反钓鱼图片,则说明猜测的证书肯定有效;否则即无效。攻击者可
以通过脚本攻击迅速遍历目标用户的所有出生日期,从而猜测出正确的值。
更糟糕的是,这种机制并不能有效阻止钓鱼攻击。克隆 Web 应用程序将收到用户
在步骤(1)中提交的用户名和出生日期,并可以将这些信息直接提交给原始应
用程序,以获取在步骤(2)中向用户显示的正确图片。如果告知用户通过该图
片来核实应用程序的真实性,则这种机制实际上可能会起到反作用,并可能导致
用户登录他们在其他情况下并不会信任的钓鱼网站。

原文地址:https://www.cnblogs.com/landesk/p/10888368.html

时间: 2024-10-28 18:56:41

黑客攻防技术宝典web实战篇:攻击验证机制习题的相关文章

黑客攻防技术宝典web实战篇:核心防御机制习题

猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 黑客攻防技术宝典web实战篇是一本非常不错的书,它的著作人之一是burpsuite的作者,课后的习题值得关注,而随书附带有答案. 1. 为什么说应用程序处理用户访问的机制是所有机制中最薄弱的机制? 典型的应用程序使用三重机制(身份验证.会话管理和访问控制)来处理访问.这些组件之间高度相互依赖,其中任何一个组件存在缺陷都会降低整个访问控制并访问他机制的效率.例如,攻击者可以利用身份验证机制中的漏洞以任何用户

《黑客攻防技术宝典Web实战篇》.Dafydd.Stuttard.第2版中文高清版pdf

下载地址:网盘下载 内容简介 编辑 <黑客攻防技术宝典(Web实战篇第2版)>从介绍当前Web应用程序安全概况开始,重点讨论渗透测试时使用的详细步骤和技巧,最后总结书中涵盖的主题.每章后还附有习题,便于读者巩固所学内容. <黑客攻防技术宝典(Web实战篇第2版)>适合各层次计算机安全人士和Web开发与管理领域的技术人员阅读.本书由斯图塔德.平托著. 目录 编辑 第1章 Web应用程序安全与风险 1.1 Web应用程序的发展历程 [1] 1.1.1 Web应用程序的常见功能 1.1.

黑客攻防技术宝典——web实战篇

第7章 攻击会话管理 在绝大多数Web应用程序中,会话管理机制是一个基本的安全组件.它帮助应用程序从大量不同的请求中确认特定的用户,并处理它收集的关于用户与应用程序交互状态的数据.会话管理在应用程序执行登录功能时显得特别重要,因为它可在用户通过请求提交他们的证书后,持续向应用程序保证任何特定用户身份的真实性. 由于会话管理机制所发挥的关键作用,它们成为针对应用程序的恶意攻击的主要目标.如果攻击者能够破坏应用程序的会话管理,他就能轻易避开其实施的验证机制,不需要用户证书即可伪装成其他应用程序用户.

黑客攻防技术宝典web实战篇:攻击应用程序架构习题

猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 假设受攻击的应用程序使用两台不同的服务器:一台应用程序服务器和一台数据库服务器.已经发现一个漏洞,可以在应用程序服务器上执行任意操作系统命令.是否可以利用这个漏洞获取保存在数据库中的敏感应用程序数据? 几乎可以肯定能够利用该漏洞获取保存在数据库中的应用程序数据.应用程序本身必须拥有访问自己的数据所需的证书和权限.可以检查服务器端应用程序的脚本和配置文件,以了解它如何访问应用程序.要对所发

黑客攻防技术宝典web实战篇:攻击其他用户习题

猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 在应用程序的行为中,有什么“明显特征”可用于确定大多数 XSS 漏洞? 用户提交的输入在应用程序对该输入的响应中原样返回. 2. 假设在应用程序未通过验证的功能区域发现了一个反射型 XSS 漏洞.如何利用这个漏洞攻破一个通过验证的应用程序会话?请想出两种不同的方法. 多数情况下,利用未通过验证的功能中的 XSS 漏洞一样可以针对已通过验证的用户实施有效攻击——这些功能与已通过验证的功能的

黑客攻防技术宝典web实战篇:攻击访问控制习题

猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 一个应用程序可能通过使用 HTTP Referer 消息头实施访问控制,但它的正常行为并没有公开表露这一点.如何检测出这种缺陷? 选择一系列你有权访问的重要应用程序功能.通过提交经过修改的 Referer消息头或不带该消息头的请求访问以上每一项功能.如果应用程序拒绝这些请求,则说明它很可能易于受到攻击.然后,尝试通过另一个不具有相关权限的用户提出相同的请求,但每次提交原始的 Refere

黑客攻防技术宝典web实战篇:攻击本地编译型应用程序习题

猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 如果不采用特殊的防御措施,为什么栈缓冲区溢出比堆溢出更容易被攻击者利用? 利用基于栈的溢出,通常可以立即控制栈上的已保存返回地址,并因此控制当前功能返回的指令指针.可以将指令指针指向包含 shellcode 的任意地址(通常位于触发溢出的同一缓冲区内).利用基于堆的溢出,通常可以将内存中的任意指针设置为任意值.正常情况下,利用这种修改来控制执行流还需要采取其他步骤.此外,使堆缓冲区溢出后

黑客攻防技术宝典web实战篇:攻击会话管理习题

猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 登录一个应用程序后,服务器建立以下 cookie:Set-cookie: sessid=amltMjM6MTI0MToxMTk0ODcwODYz;一个小时后,再次登录并得到以下 cookie:Set-cookie: sessid=amltMjM6MTI0MToxMTk0ODc1MTMy;通过这些 cookie,可以得出什么推论? sessid cookie 包含一个 Base64 编码的

黑客攻防技术宝典web实战篇:定制攻击自动化习题

猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 指出使用自动技巧在应用程序中枚举标识符时用到的 3 个标识符“触点”. (a) HTTP 状态码(b) 响应长度(c) 响应主体的内容(d) Location 消息头的内容(e) 任何 cookie 的设置(f) 出现的任何时间延迟 2. 对于下面的每一类漏洞,指出一个可用于确定该漏洞的模糊测试字符串:(a) SQL 注入(b) OS 命令注入(c) 路径遍历(d) 脚本文件包含 这个问