实例讲解 SQL 注入攻击
来源:互联网 发布:公司网络被限制怎么办 编辑:程序博客网 时间:2024/05/17 22:08
这是一篇讲解SQL注入的实例文章,一步一步跟着作者脚步探索如何注入成功,展现了一次完整的渗透流程,值得一读。翻译水平有限,见谅!
一位客户让我们针对只有他们企业员工和顾客能使用的企业内网进行渗透测试。这是安全评估的一个部分,所以尽管我们之前没有使用过SQL注入来渗透网络,但对其概念也相当熟悉了。最后我们在这项任务中大获成功,现在来回顾一下这个过程的每一步,将它记录为一个案例。
“SQL注入”是一种利用未过滤/未审核用户输入的攻击方法(“缓存溢出”和这个不同),意思就是让应用运行本不应该运行的SQL代码。如果应用毫无防备地创建了SQL字符串并且运行了它们,就会造成一些出人意料的结果。
我们记录下了在多次错误的转折后经历的曲折过程,而一个更有经验的人会有这不同的 — 甚至更好的 — 方法。但事实上我们成功以后才明白,我们并没有完全被误导。
其他的SQL文章包含了更多的细节,但是这篇文章不仅展示了漏洞利用的过程,还讲述了发现漏洞的原理。
目标内网
展现在我们眼前的是一个完整定制网站,我们之前没见过这个网站,也无权查看它的源代码:这是一次“黑盒”攻击。‘刺探’结果显示这台服务器运行在微软的IIS6上,并且是ASP.NET架构。这就暗示我们数据库是微软的SQL server:我们相信我们的技巧可以应用在任何web应用上,无论它使用的是哪种SQL 服务器。
登陆页有传统的用户-密码表单,但多了一个 “把我的密码邮给我”的链接;后来,这个地方被证实是整个系统陷落的关键。
当键入邮件地址时,系统假定邮件存在,就会在用户数据库里查询邮件地址,然后邮寄一些内容给这个地址。但我的邮件地址无法找到,所以它什么也不会发给我。
对于任何SQL化的表单而言,第一步测试,是输入一个带有单引号的数据:目的是看看他们是否对构造SQL的字符串进行了过滤。当把单引号作为邮件地址提交以后,我们得到了500错误(服务器错误),这意味着“有害”输入实际上是被直接用于SQL语句了。就是这了!
我猜测SQL代码可能是这样:
- 实例讲解SQL注入攻击
- 实例讲解 SQL 注入攻击
- 实例讲解 SQL 注入攻击
- 实例讲解 SQL 注入攻击
- 实例讲解SQL注入攻击
- 实例讲解 SQL 注入攻击
- SQL注入式攻击实例讲解
- 实例讲解黑客如何执行SQL注入攻击
- 实例讲解黑客如何执行SQL注入攻击
- SQL注入攻击实例
- 实例讲解SQL注入
- SQL注入网站入侵攻击实例
- ASP.NET-SQL注入攻击初级实例
- 实例讲解SQL注入攻击 http://www.csdn.net/article/2015-01-13/2823533-SQL?reload=1 作者zer0Black
- 注入攻击--SQL注入
- 讲解ASP.NET中如何防范SQL注入式攻击
- 讲解ASP.NET中如何防范SQL注入式攻击
- 注入攻击之sql注入
- 20150123 N2
- nginx+tomcat实现动静分离
- Metro UI CSS 学习笔记之组件(菜单与导航)
- Python编码格式说明及转码函数encode和decode的使用
- jQuery Tween缓动算法
- 实例讲解 SQL 注入攻击
- 软件架构师应该知道的 97 件事笔记
- poj 3469 Dual Core CPU 最小割
- Json学习笔记
- 通信 CSMA/CD工作原理
- Linux内核编译详解_01
- iOS 删除文件夹下所有文件
- Entityframework的简单应用
- 编译Linux2.6内核_02