Web应用程序黑客的方法论(2)--Analyze the Application

Posted by D on February 9, 2020

Web应用程序黑客的方法论来自书本 The Web Application Hacker’s Handbook

分析应用程序(analyze the application)

analyzing the application

2.1 识别功能(Identify Functionality)

2.1.1
识别为应用程序创建的核心功能,以及每个功能在按预期使用时要执行的操作。

2.1.2
确定应用程序使用的核心安全机制及其工作方式。特别是,要了解处理身份验证会话管理访问控制的密钥机制,以及支持这些机制的功能,如用户注册帐户恢复

2.1.3
识别所有更外围的功能和行为,如使用重定向站点外链接错误消息管理日志记录功能.

2.1.4
识别与应用程序中其他地方使用的标准GUI外观、参数命名导航机制不同的任何功能,并将其挑出来进行深入测试.

2.2 识别数据入口点(Identify Data Entry Points)

2.2.1
识别用于将用户输入引入应用程序处理的所有不同入口点,包括URLs、query string parameters、POST数据、cookies和应用程序处理的其他HTTP headers.

2.2.2
检查应用程序使用的任何自定义数据传输或编码机制,如非标准查询字符串格式。了解提交的数据是否封装了参数名称和值,或者是否使用了替代的表示方法。

2.2.3
识别user-controllable或其他third-party数据被引入应用程序处理的任何out-of-band通道.一个示例是处理并呈现通过SMTP接收到的消息的web邮件应用程序。

2.3 识别使用的技术(Identify the Technologies Used)

2.3.1
识别客户端使用的不同技术,如forms、scripts、cookie、Java applet、ActiveX控件和Flash对象.

2.3.2
尽可能确定服务器端正在使用哪些技术,包括脚本语言、应用程序平台以及与后端组件(如数据库和电子邮件系统)的交互。

2.3.3
检查应用程序响应中返回的HTTP Server header,并检查自定义HTTP标头或HTML源代码注释中包含的任何其他软件标识符。注意,在某些情况下,应用程序的不同区域由不同的后端组件处理,因此可能接收到不同的标识。

2.3.4
运行Httprint工具来识别 web server.

2.3.5
检查content-mapping习的结果,以确定任何看起来有趣的文件扩展名、目录或其他URL子序列,它们可能提供关于服务器上使用的技术的线索。检查任何会话tokens和发出的其他cookies的names。使用谷歌搜索与这些项相关的技术.

2.3.6
识别可能属于第三方代码组件的任何有趣的脚本名称和查询字符串参数.使用inurl: qualifier在谷歌上搜索这些,以找到使用相同脚本和参数的其他应用程序,因此可能使用相同的第三方组件.对这些站点进行非侵入性检查,因为这可能会发现在您要攻击的应用程序上没有显式链接的其他内容和功能.

2.4 映射攻击面(Map the Attack Surface)

2.4.1
尝试确定服务器端应用程序可能的内部结构和功能,以及它在幕后用于交付从客户端角度可见的行为的机制。 例如,检索客户订单的函数可能与数据库交互.

2.4.2
对于每个功能项,确定经常与之相关的常见漏洞的类型。例如,file upload函数可能容易受到路径遍历的攻击,用户间消息传递可能容易受到XSS的攻击,而Contact Us函数可能容易受到SMTP injection的攻击。

2.4.3
制定一个攻击计划,优先考虑最有趣的功能和与之相关的最严重的潜在漏洞.使用您的计划来指导您在此方法的每个剩余领域中所投入的时间和精力.

Web应用程序黑客的方法论(1)
Web应用程序黑客的方法论(3)

: