随书答案。

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

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

  1. 在测试以下 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 根目录中的项目的位置提供了线索。

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

应用程序可能易于受到 XML 外部实体(XXE)注入。检索任意文件的内容的
先决条件如下:

(a) 应用程序使用的 XML 解释器必须支持外部实体;

(b) 应用程序必须在其响应中回显请求中的 XML 元素的内容。

  1. 向 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。

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

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

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

服务器的回环 IP 地址有许多备选表示形式,可将其用于避开应用程序的过
滤。例如:

(a) 127.1

(b) 127.000.0.1

(c) 127.0.0.0 A 类子网中的任何其他地址

(d) 这些表示形式的二进制或八进制变体,如 017700000001

  1. 某应用程序使用一项用于用户提交反馈的功能。该功能允许用户提交他们的
    电子邮件地址、邮件主题及详细的反馈。然后,应用程序以用户提交的主题和反
    馈为邮件正文,从用户的电子邮件地址向 feedback@wahh-app.com 发送一封电子
    邮件。以下哪一种方法能够有效防御邮件注入攻击?

(a) 在邮件服务器上禁用邮件中继。

(b) 使用 feedback@wahh-app.com 硬编码 RCPT TO 字段。

(c) 确保用户提交的输入不包含任何换行符或其他 SMTP 元字符。

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

黑客攻防技术宝典web实战篇:测试后端组件习题答案的更多相关文章

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

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 黑客攻防技术宝典web实战篇是一本非常不错的书,它的著作人之一是burpsuite的作者,课后的习题值得关注 ...

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

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 一个应用程序可能通过使用 HTTP Referer 消息头实施访问控制,但它的正常行为并没 ...

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

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 指出使用自动技巧在应用程序中枚举标识符时用到的 3 个标识符“触点”. (a) HTTP ...

  4. 《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序

    读书笔记第一部分对应原书的第一章,主要介绍了Web应用程序的发展,功能,安全状况. Web应用程序的发展历程 早期的万维网仅由Web站点构成,只是包含静态文档的信息库,随后人们发明了Web浏览器用来检 ...

  5. 黑客攻防技术宝典web实战篇:测试后端组件习题

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 某网络设备提供用于执行设备配置的 Web 界面.为什么这种功能通常易于受到操作系统命令注入 ...

  6. 黑客攻防技术宝典Web实战篇(二)工具篇

    扫描工具.中间攻击工具.加密解密工具等. 1 TM Thread Module 2 burpsuite 代理.中间攻击.repeatur.spider.暴力破解(intrude).加密.解密.扫描器 ...

  7. 黑客攻防技术宝典Web实战篇(一)Web应用程序技术基础

    在开展Web应用程序渗透测试之前请先了解下面列出的这些内容,如果不是很懂的话,请读David Gourley & Brian Totty的HTTP权威指南也叫HTTP:The Definiti ...

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

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 假设受攻击的应用程序使用两台不同的服务器:一台应用程序服务器和一台数据库服务器.已经发现一 ...

  9. 黑客攻防技术宝典Web实战篇(二)工具篇DVWA Web漏洞学习

    DVWA是一个学习Web漏洞的很好的工具. DVWA全程是Damn Vulnerable Web Application,还有一个跟它一样好的工具尽在http://www.360doc.com/con ...

随机推荐

  1. Codeforces 1111C Creative Snap分治+贪心

    Creative Snap C. Creative Snap time limit per test 1 second memory limit per test 256 megabytes inpu ...

  2. UVA - 536 Tree Recovery (二叉树重建)

    题意:已知先序中序,输出后序. #pragma comment(linker, "/STACK:102400000, 102400000") #include<cstdio& ...

  3. 09.swoole学习笔记--进程事件

    <?php //进程数组 $workers=[]; //创建进程的数据量 $worker_num=; //创建启动进程 ;$i<$worker_num;$i++){ //创建单独新进程 $ ...

  4. zerone 01串博弈问题

    近日领到了老师的期末作业 其中有这道 01 串博弈问题: 刚开始读题我也是云里雾里 但是精读数遍 “细品” 之后,我发现这是一个 “动态规划” 问题.好嘞,硬着头皮上吧. 分析问题:可知对每个人有两手 ...

  5. C++使用 scanf函数

    最近看了下C++,有些地方和c语言 还是不太一样的,当我在做输入一个数字的时候发现了错误.. 所以在使用scanf()的时候需要加下面这段在头文件  顶部: #define _CRT_SECURE_N ...

  6. 19 — node 模块化 及 CommonJS规范 — CommonJS 的由来及各组织与 JS 的关系

    ECMAScript  对于不同的环境(运行平台),设计结构,理念,使用方式大相径庭. 1,浏览器 :DOM BOM 2,NodeJS :FS,HTTP 内置模块 :  第三方模块 : 内置模块 3, ...

  7. cf442 B.Andrey and Problem

    看题偷瞄到题解2333(以为是劲题呢..结果是乱贪心,奇怪) 排序之后,如果加入下一个比现在更优就更新答案(奇怪啊) t=ans*(1-a[i])+s*a[i];(ans*(1-a[i])是新的一位不 ...

  8. BZOJ:2815: [ZJOI2012]灾难

    题解: 构造灭绝树: x指向的点表示x的祖先死亡则x死亡 动态LCA: 可以用LCT维护或直接更新倍增数组 最后统计子树点的个数 坑: 我还不会序列型Toposort #include<iost ...

  9. Vulkan SDK 之 Instance

    上一篇 Vulkan SDK Demo 熟悉 粗略的了解了下,一个app是如何调用vulkan的api来展示一个立方体的,但是对其中的每一个api了解并不深刻,后面的系列会根据sample的tutor ...

  10. 剑指offer_1.18_Day_2

    怠惰怠惰,好好练练了要 二维数组中查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个 ...