黑客攻防技术宝典web实战篇:攻击数据存储区习题
猫宁!!!
参考链接:http://www.ituring.com.cn/book/885
随书答案。
1. 如果要通过实施 UNION 攻击、利用 SQL 注入漏洞获取数据,但是并不知道最
初的查询返回的列数,如何才能查明这个值?
可以通过两个简单的方法确定列数。其一,可以 SELECT 每个列中的类型中
性值 NULL,并逐渐递增列数,直到应用程序返回数据,表明指定了正确的列数,
例如:
' UNION SELECT NULL--
' UNION SELECT NULL, NULL--
' UNION SELECT NULL, NULL, NULL--
请注意,在 Oracle 上,需要在上述每种情况的最后一个 NULL 后添加 FROM DUAL。
另外,可以注入 ORDER BY 子句并递增指定列,直到引发错误,表明请求了
无效的列:
' ORDER BY 1--
' ORDER BY 2--
' ORDER BY 3--
2. 已经确定一个字符串参数中的 SQL 注入漏洞,已经确信数据库为 MS-SQL 或
Oracle,但当前无法获得任何数据或错误消息确定到底是哪个数据库。如何才能
查明这一点?
一种确认数据库类型的简单方法,是使用数据库特定的字符串串联语法在所控制
的查询中构建某个良性输入。例如,如果原始参数值为 London,则可以轮流提
交以下数据项:
'||' London
'+'London
如果第一个数据项导致和原始参数值相同的行为,说明数据库可能为 Oracle。
如果第二个数据项导致和原始参数值相同的行为,说明数据库可能为 MS-SQL。
3. 已经在应用程序的许多位置提交了一个单引号,并通过得到的错误消息确定
几个潜在的 SQL 注入漏洞。下列哪一种方法能够以最快的速度确定专门设计的输
入是否会对应用程序的处理过程造成影响?
(a) 注册一个新用户
(b) 更新个人资料
(c) 注销服务
虽然看似违背常理,但用户注册功能可能是最安全的。注册功能通常使用
INSERT 语句,如果修改这些语句,并不会影响到其他记录。用于更新个人资料
的功能可能使用条件性 UPDATE 语句,如果注入' or 1=1--之类的有效载荷,可
能会导致数据表中的所有记录遭到修改。同样,注销功能可能使用条件性 DELETE
语句,如果操作不当,也可能影响到其他用户。
也就是,我们不可能提前确定某个功能会执行哪些语句;在执行测试之前,应向
应用程序所有者警告可能导致的风险。
4. 在登录功能中发现了一个 SQL 注入漏洞,并尝试使用输入' or 1=1--来避开
登录,但攻击没有成功,生成的错误消息表明--字符串被应用程序的输入过滤删
除。如何解决这个问题?
有一种简单的方法可以达到相同的效果,即使用输入' or 'a'='a,而无需
使用注释符号。
5. 已经发现了一个 SQL 注入漏洞,但由于应用程序允许任何包含空白符的输入,
因而无法实施任何有效的攻击。如何解除这种限制?
可以使用 SQL 注释字符分隔注入的有效载荷中的关键字和其他项目。例如:
'UNIONSELECTusername,passwordFROMusers--
6. 在将其合并到 SQL 查询之前,应用程序并不配对用户输入中出现的所有单引
号。假设已经在一个数字字段中发现了一个 SQL 注入漏洞,但需要在攻击有效载
荷中使用一个字符串值。不使用单引号,如何在查询中插入字符串?
可以使用 CHAR 命令通过 ASCII 数字字符代码返回字符串。例如,在 Oracle
上,字符串 FOO 可以表示为:
CHAR(70)||CHAR(79)||CHAR(79)
7. 在极少数情况下,应用程序在用户提交的输入中使用参数化查询,以不安全
的方式建立动态 SQL 查询。什么时候会出现这种情况?
在将用户提交的输入置入查询的其他元素(如表和列名称),而非查询参数
中时,将会出现这种情况。参数化查询无法使用这些项目的占位符进行预编译,
因此需要采用不同的解决方案(可能需要基于严格的输入确认)。
8. 假设已经提升了在应用程序中的权限,现在完全拥有管理员访问权限,这时
如果在某个用户管理功能中发现了一个 SQL 注入漏洞,如何利用这个漏洞进一步
扩大攻击范围?
因为已经具有管理员访问权限,因此可以使用应用程序本身检索所需的任何
数据,也就是说,不必通过 SQL 注入攻击来获取应用程序本身的数据。但是,仍
然可以利用这种攻击来访问任何与保存在同一数据库中的其他应用程序有关的
数据,或者提升自己在数据库或基础操作系统中的权限,或者攻破数据库服务并
将攻击范围扩大到更广泛的内部网络。
9. 在攻击一个并未保存任何敏感数据、也未实施任何身份验证或访问控制机制
的应用程序的情况下,如何排列下列漏洞的重要性?
(a) SQL 注入
(b) XPath 注入
(c) OS 命令注入
XPath 注入仅可用于从目标 XML 文件中检索数据。因此,如果应用程序不包含任
何敏感数据,则这种漏洞并不会导致严重的后果。同样,利用 SQL 注入漏洞并不
能从数据库中提取任何敏感数据。但是,有时可以利用这类攻击提升在数据库中
的权限,并以其他方式实施攻击。
在某些情况下,SQL 注入漏洞可能是一个更加严重的漏洞。另一方面,OS 命令注
入则始终是一个高风险的漏洞,因为攻击者可以利用它直接攻破基础服务器,并
可将其作为针对内部系统的其他攻击的起点。
10. 假如正在检测一个允许搜索个人资料的应用程序功能,并且怀疑该功能正访
问某数据库或 Active Directory 后端。如何确定到底是哪一种情况?
如果该功能正访问数据库,则提交 SQL 通配符%作为搜索查询可能会返回大量记
录。同样,如果该功能正访问 Active Directory,则提交通配符*作为搜索查询
可能会返回大量记录。在其他系统中,这两个通配符都不会造成相同的效果。
黑客攻防技术宝典web实战篇:攻击数据存储区习题的更多相关文章
- 黑客攻防技术宝典web实战篇:利用信息泄露习题
猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 当探查 SQL 注入漏洞时,如果请求以下 URL:https://wahh-app.com ...
- 黑客攻防技术宝典web实战篇:测试后端组件习题
猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 某网络设备提供用于执行设备配置的 Web 界面.为什么这种功能通常易于受到操作系统命令注入 ...
- 黑客攻防技术宝典web实战篇:解析应用程序习题
猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 当解析一个应用程序时,会遇到以下 URL:https://wahh-app.com/Coo ...
- 黑客攻防技术宝典web实战篇:测试后端组件习题答案
随书答案. 某网络设备提供用于执行设备配置的 Web 界面.为什么这种功能通常易于受 到操作系统命令注入攻击? 用于配置网络设备的应用程序通常包含使用正常的 Web 脚本 API 无法轻松实 现的功能 ...
- 《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序
读书笔记第一部分对应原书的第一章,主要介绍了Web应用程序的发展,功能,安全状况. Web应用程序的发展历程 早期的万维网仅由Web站点构成,只是包含静态文档的信息库,随后人们发明了Web浏览器用来检 ...
- 黑客攻防技术宝典web实战篇:核心防御机制习题
猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 黑客攻防技术宝典web实战篇是一本非常不错的书,它的著作人之一是burpsuite的作者,课后的习题值得关注 ...
- 黑客攻防技术宝典web实战篇:攻击应用程序架构习题
猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 假设受攻击的应用程序使用两台不同的服务器:一台应用程序服务器和一台数据库服务器.已经发现一 ...
- 黑客攻防技术宝典web实战篇:攻击其他用户习题
猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 在应用程序的行为中,有什么“明显特征”可用于确定大多数 XSS 漏洞? 用户提交的输入在应 ...
- 黑客攻防技术宝典Web实战篇(三)web攻击方式总结
web攻击的手段无非就是使服务器资源耗尽,使服务器无法接收正常请求. 一.DDos攻击 二.DRDos攻击 三.慢攻击 与Ddos攻击相反,慢攻击并不是以多取胜,而是靠保持连接.
- 黑客攻防技术宝典web实战篇:攻击本地编译型应用程序习题
猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 如果不采用特殊的防御措施,为什么栈缓冲区溢出比堆溢出更容易被攻击者利用? 利用基于栈的溢出 ...
随机推荐
- linux系列之-—03 压缩和解压缩命令
tar命令 解包:tar zxvf FileName.tar 打包:tar czvf FileName.tar DirName gz命令 解压1:gunzip FileName.gz 解压2:gzip ...
- 作为iOS程序员,最核心的60%能力有哪些?
作为iOS程序员,最核心的60%能力有哪些? 一个合格的iOS程序员需要掌握多少核心技能?你和专业的开发工程师的差距有多大?你现在的水平能开发一个功能完整性能高效的iOS APP吗?一起来看看下面 ...
- 拒绝干扰 解决Wi-Fi的最大问题
本文转载至:http://www.ciotimes.com/net/rdjs/WI-FI/201006301920.html 射频干扰英文:RFI,(Radio Frequency Interfere ...
- linux下提示command not found
首先就要考虑root 的$PATH里是否已经包含了这些环境变量. 主要是这四个:/bin ,/usr/bin,/sbin,/usr/sbin. 四个主要存放的东东: ./bin: bin为binary ...
- Python 003- 小知识汇总(更新中)
#查询key是否存在,可以在使用未知的字典的时候使用 #-*- coding:utf-8 -*- D={'a':1,'c':3,'b':2} for key in sorted(D): print(k ...
- Vue 之 npm 及 安装的包
1 npm相关 1.1 npm 是 基于Node.js 的,所以要先安装Node.js 在浏览器地址栏输入https://nodejs.org/en/, 进入Node.js官网后,点击下载左边的稳定 ...
- jvm 调优(2)垃圾回收算法
可以从不同的的角度去划分垃圾回收算法: 按照基本回收策略分 引用计数(Reference Counting): 比较古老的回收算法.原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数. ...
- asp.net连接Access数据库实现登陆功能
这里话就不多说了,直接演示代码. 连接access数据库首先需要配置web.config <appSettings> <add key="AccessConnString& ...
- Android 单击跳转到打电话发短信界面,长按打电话发短信
<uses-permission android:name="android.permission.CALL_PHONE"/><uses-permission a ...
- [RK3399][Android7.1] 调试笔记 --- 模块编译32位动态库【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/78923784 Platform: RK3399 OS: Android 7.1 Board: ...