猫宁!!!

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

随书答案。

1. 某网络设备提供用于执行设备配置的 Web 界面。为什么这种功能通常易于受
到操作系统命令注入攻击?

用于配置网络设备的应用程序通常包含使用正常的 Web 脚本 API 无法轻松实
现的功能,如用于重新启动设备、循环访问日志文件或重新配置 SNMP 的功能。
通常,使用一行操作系统命令可以轻松执行这些任务。因此,许多时候,应用程
序开发者通过将相关用户输入直接合并到 shell 命令字符串中来实现这些功能。

2. 在测试以下 URL 时:
http://wahh-app.com/home/statsmgr.aspx?country=US
将 country 参数的值更改为 foo 导致了以下错误消息:
Could not open file: D:\app\default\home\logs\foo.log (invalid file).
可以采取哪些步骤对应用程序实施攻击?

应用程序似乎将用户提交的输入合并到用于文件系统操作的文件路径中,并
且可以通过提交专门设计的输入来访问服务器上的任意文件。因此,应尝试使
用../遍历序列访问不同的目录。由于.log 将被附加到输入之后,因此应尝试使
用 NULL 字节终止文件名。请注意,出现在错误消息中的 home 目录可能与出现在
URL 中的 home 目录为同一目录,这为 Web 根目录中的项目的位置提供了线索。

3. 在对一个在 POST 请求中以 XML 格式传送数据的应用程序进行测试时,可以利
用哪种漏洞从服务器的文件系统中读取任意文件?要成功实施攻击,必须满足哪
些先决条件?

应用程序可能易于受到 XML 外部实体(XXE)注入。检索任意文件的内容的
先决条件如下:
(a) 应用程序使用的 XML 解释器必须支持外部实体;
(b) 应用程序必须在其响应中回显请求中的 XML 元素的内容。

4. 向 ASP.NET 平台上运行的应用程序提出以下请求:
POST /home.aspx?p=urlparam1&p=urlparam2 HTTP/1.1
Host: wahh-app.com
Cookie: p=cookieparam
Content-Type: application/x-www-form-urlencoded
Content-Length: 15
p=bodyparam
应用程序执行以下代码:
String param = Request.Params[“p”];
请问 param 变量的值是什么?

param 变量的值为 urlparam1,urlparam2,bodyparam,cookieparam。

5. HPP 是 HPI 的前提,还是 HPI 是 HPP 的前提?

严格来说,这两种攻击都不是对方的前提。
虽然 HPI 攻击通常包含 HPP,但这不是必须的。例如,HPI 攻击可能会将某个全
新的参数注入到后端请求中,以干扰应用程序的处理过程。但这种类型的攻击并
不依赖于应用程序在处理多个同名参数时表现的任何特殊行为。
通常,HPP 攻击可以不包括 HPI,特别是在对用户输入执行多层处理的情况下。
例如,一些针对 Internet Explorer XSS 过滤器的攻击使用 HPP 技巧,但并不在
后端请求中注入任何参数。

6. 某应用程序包含一项功能,该功能向外部域提出请求,并返回这些请求的响
应。为防止服务器端重定向攻击检索应用程序自己的 Web 服务器上的受保护资
源,应用程序阻止了以 localhost 或 127.0.0.1 为目标的请求。如何突破这种防
御,以访问服务器上的资源?

服务器的回环 IP 地址有许多备选表示形式,可将其用于避开应用程序的过
滤。例如:
(a) 127.1
(b) 127.000.0.1
(c) 127.0.0.0 A 类子网中的任何其他地址
(d) 这些表示形式的二进制或八进制变体,如 017700000001

7. 某应用程序使用一项用于用户提交反馈的功能。该功能允许用户提交他们的
电子邮件地址、邮件主题及详细的反馈。然后,应用程序以用户提交的主题和反
馈为邮件正文,从用户的电子邮件地址向 feedback@wahh-app.com 发送一封电子
邮件。以下哪一种方法能够有效防御邮件注入攻击?
(a) 在邮件服务器上禁用邮件中继。
(b) 使用 feedback@wahh-app.com 硬编码 RCPT TO 字段。
(c) 确保用户提交的输入不包含任何换行符或其他 SMTP 元字符。

针对此应用程序功能的邮件注入攻击不需要邮件服务器支持邮件中继。如果其他
邮件标头包含用户可控制的输入,硬编码 RCPT TO 字段也无法防范邮件注入,因
为攻击者可以使用另一个 RCPT TO 行注入另一个收件人。在这种情况下,最有效
的防御是严格确认所有用户提交的输入,以确保其中不包含任何转行符或其他
SMTP 元字符。

最新文章

  1. python sproto支持64位有符号整数
  2. 【mysql启动Innodb的方法】
  3. ruby基础语法
  4. 用vector容器代替数组 ——使用数组初始化vector对象
  5. intanceof以及引出的__proto__和prototype
  6. layoutSubviews 浅尝
  7. PHP学习笔记04——数组
  8. ios自定义选择器ActionSheetPicker改进版
  9. windows 与fedora时间差
  10. librarynotfoundforlPodsAFNetworking解决放案
  11. 小学生之使用Mybatis反向生成dao,entity,xml
  12. SQL Server 对dbcc checkdb的优化
  13. Mysql存储过程使用LEAVE实现MSSQL存储过程中return语法
  14. webservice04#对象与xml转换-jaxb#Stax解析xml#新建修改xml
  15. vue-cli+webpack在生成的项目中使用bootstrap的方法
  16. Codefoces909E Coprocessor(拓扑排序)
  17. vue如何加搜狗联盟广告
  18. 如何修改WordPress网站默认登录地址wp-admin
  19. 【leetcode】 Spiral Matrix
  20. Objective-C-类(static)方法、实例方法、overwrite(覆写)、属性(property)复习

热门文章

  1. JSP简明教程:汇总
  2. 【转载】java sleep和wait的区别的疑惑?
  3. 读写锁(pthread)
  4. LVM+NBD实现VM数据备份和迁移
  5. Chrome浏览器 js 关闭窗口失效解决方法
  6. UVA - 12338 Anti-Rhyme Pairs 二分+hash
  7. 【bzoj4653】[Noi2016]区间
  8. springboot对传参的拦截统一处理
  9. Hadoop MapReduce输入输出类型
  10. vue中如何实现后台管理系统的权限控制