渗透测试技巧:宽字节注入与信息收集

需积分: 43 61 下载量 157 浏览量 更新于2024-08-07 收藏 1.09MB PDF 举报
"这篇资源主要涉及的是网络安全领域的渗透测试技术,特别是MySQL数据库的宽字节注入,同时也包含了一些渗透测试工程师面试中常见的问题及其解答。" 渗透测试是网络安全的重要环节,目的是评估系统的安全性并发现潜在漏洞。在这个领域,了解各种注入攻击手法至关重要,如报错注入、布尔型注入和宽字节注入等。这些方法常用于探测和利用数据库系统中的弱点。 1. **报错注入**: - 报错注入是通过使数据库产生错误信息来获取敏感数据的方法。例如,可以使用`and extractvalue(1, concat(0x7e,(select @@version),0x7e))`或`and updatexml(1, concat(0x7e,(secect @@version),0x7e),1)`等函数来触发错误,从而揭示数据库版本等信息。 2. **布尔型注入**: - 这种注入技术通常基于SQL语句返回结果的真伪(True/False)来获取数据。例如,通过调整查询条件使得结果影响页面的显示,从而推断出数据库的信息。 3. **延时注入**: - 在这种攻击中,攻击者通过构造特定的SQL语句,让数据库执行时间显著增加,以此来判断数据的性质。 4. **宽字节注入**: - 宽字节注入常见于GBK或UTF-8编码环境中,利用特殊字符编码差异绕过过滤机制,注入恶意SQL代码。 对于渗透测试工程师来说,了解并掌握这些技巧是基础技能。在面试中,可能会被问及如何处理不同环境下的注入攻击,以及如何收集目标网站的相关信息,如: - 收集信息阶段:包括了解域名注册信息、服务器IP、旁站、系统版本、程序版本、数据库类型、二级域名、防火墙配置以及维护者信息等。 - MySQL的版本差异:例如,MySQL 5.0以下没有`information_schema`表,这限制了信息收集的方式;5.0以上引入了多用户多操作的支持,增加了安全性但也可能带来新的攻击面。 - 注册邮箱的价值:可用于社会工程学攻击,比如查找关联信息、尝试登录后台、生成针对性的字典进行密码猜测等。 - 确定网站CMS的意义:可以帮助找到已知的漏洞,进行有针对性的渗透测试,如果CMS是开源的,还可以进行源码审计。 - 扫描目录的意义:寻找隐藏的敏感文件、二级目录,可能存在的备份文件或未公开的站点。 - 常见的Web服务器容器:如IIS、Apache、nginx、Tomcat等,它们的安全配置和漏洞也是测试的重点。 - MySQL注入点的写入操作:需要具备root权限、知道绝对路径、使用`load_file()`函数或`into outfile`操作,同时考虑过滤规则和文件写权限。 在实际渗透测试中,攻击者可能会使用十六进制表示法绕过过滤机制,如在路径中不使用单引号,或者直接写入文件到指定位置。了解这些细节对于防御和检测这类攻击至关重要。