程序员在源代码中包含详细的注释和元数据是非常常见的,甚至是推荐的。但是,HTML代码中包含的注释和元数据可能会泄露潜在攻击者无法获得的内部信息。应该进行评论和元数据审查,以确定是否泄露了任何信息。
测试目标
查看网页评论和元数据,以便更好地了解应用程序并查找任何信息泄漏。
如何测试
开发人员经常使用HTML注释来包含有关应用程序的调试信息。有时他们会忘记评论,并将其留在生产中。测试人员应该查找以“”开头的HTML注释。
黑盒测试
检查HTML源代码以获取包含敏感信息的注释,这些注释可以帮助攻击者更深入地了解应用程序。它可能是SQL代码,用户名和密码,内部IP地址或调试信息。
...
<div class =“table2”>
<div class =“col1”> 1 </ div> <div class =“col2”> Mary </ div>
<div class =“col1”> 2 </ div> <div class =“col2”> Peter </ div>
<div class =“col1”> 3 </ div> <div class =“col2”> Joe </ div>
<! - 查询:SELECT id,name FROM app.users WHERE active ='1' - >
</ DIV>
...
测试人员甚至可能会发现这样的事情:
<! - 使用数据库管理员密码进行测试:f @ keP @ a $$ w0rD - >
检查HTML版本信息以获取有效的版本号和数据类型定义(DTD)URL
<!DOCTYPE HTML PUBLIC“ - // W3C // DTD HTML 4.01 // EN”“ http://www.w3.org/TR/html4/strict.dtd ”>
- “strict.dtd” - 默认严格DTD
- “loose.dtd” - 松散的DTD
- “frameset.dtd” - 框架集文档的DTD
某些Meta标签不提供主动攻击向量,而是允许攻击者对应用程序进行概要分析
<META name =“Author”content =“Andrew Muller”>
某些Meta标记会更改HTTP响应标头,例如http-equiv,它根据元素的content属性设置HTTP响应标头,例如:
<META http-equiv =“Expires”content =“Fri,21 Dec 2012 12:34:56 GMT”>
这将导致HTTP标头:
到期日:2012年12月21日星期五12:34:56 GMT
和
<META http-equiv =“Cache-Control”content =“no-cache”>
会导致
缓存控制:无缓存
测试是否可以用于进行注射攻击(例如CRLF攻击)。它还可以帮助确定通过浏览器缓存的数据泄漏级别。
一个常见的(但不符合WCAG标准)Meta标签是刷新。
<META http-equiv =“刷新”内容=“15;网址= https://www.owasp.org/index.html ”>
Meta标签的一个常见用途是指定搜索引擎可用于提高搜索结果质量的关键字。
<META name =“keywords”lang =“en-us”content =“OWASP,security,sunshine,lollipops”>
虽然大多数Web服务器通过robots.txt文件管理搜索引擎索引,但它也可以通过Meta标签进行管理。下面的代码会建议机器人不要编制索引,也不要关注包含标记的HTML页面上的链接。
<META name =“robots”content =“none”>
用于因特网内容选择的平台(PICS)和用于Web描述资源的协议(POWDER)提供用于将元数据与因特网内容相关联的基础结构。
灰盒测试
不适用。
工具
- wget的
- 浏览器“查看源”功能
- 眼球
- 卷曲
来源:oschina
链接:https://my.oschina.net/u/3447023/blog/3017497