什么是SQL注入? SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息 —-百度百科 寻找注入点 首先呢,在网站中寻找传递参数的页面,也就是寻找注入点。 判断注入 找到页面(注入点)之后呢,我们需要判断当前页面是否存在注入 传统的方法是: 语句 状态 链接后面加 ’ 报错 and 1=1 正常 and 1=2 报错 or 1=2 正常 or 1=1 SQL注入是一种常见的网络安全威胁,主要针对使用SQL语言的数据库系统,如Access和SQL Server。当一个Web应用程序未能充分验证用户输入的数据,攻击者可以利用这一漏洞,在查询语句的末尾添加恶意的SQL代码,从而在未经授权的情况下执行任意数据库操作,获取敏感信息。 在寻找SQL注入点时,首先需要在Web应用中识别那些接受用户输入并将其传递给数据库的页面。这些通常是带有参数的URL链接或者表单提交。一旦找到潜在的注入点,下一步是判断该页面是否存在SQL注入漏洞。传统的检测方法是通过在URL链接后添加特殊字符,如单引号 `'`,然后观察页面的响应。例如,如果URL原本是 `page?id=1`,可以尝试修改为 `page?id=1' and 1=1` 和 `page?id=1' and 1=2`,如果前者返回正常而后者报错,那么很可能存在注入漏洞。 然而,这种方法可能在Web应用防火墙(WAF)存在的情况下被拦截。因此,更隐蔽的技巧是使用 "–"(减号)来触发注释,比如 `page?id=1--`。如果页面变为空白,说明输入被传递到数据库并导致查询失败。如果在减号后面添加 "0"(`page?id=1--0`),页面恢复,这表明Web应用在处理输入时可能将减号作为字符串的一部分。 在确定存在注入点后,需要进一步识别数据库类型。对于Access和SQL Server,可以使用特定的SQL语句进行判断。在Access中,可以尝试 `and exists (select * from msysobjects)`,而在SQL Server中,对应的是 `and exists (select * from sysobjects)`。如果前者返回错误提示,提到“Microsoft Jet 数据库引擎找不到输入表或查询”,则可以确定目标数据库是Access。 在确定数据库类型后,攻击者会尝试猜测表名和列名。可以通过 `and exists (select 列名 from 表名)` 的方式逐个测试。例如,如果猜测表名为 `admin`,列名为 `password` 和 `username`,可以分别输入 `and exists (select password from admin)` 和 `and exists (select username from admin)` 来验证。 接下来,攻击者会通过`order by`语句来猜测列的长度。例如,如果 `order by 11` 显示正常,而 `order by 22` 报错,那么字段长度可能是22。 攻击者可以使用`union select`语句结合已知的列名和长度来暴露数据。例如,如果表名是 `admin`,列名是 `username` 和 `password`,可以输入 `union select 1,2,username,4,5,6,7,8,9,10,11,12,13,14,password,16,17,18,19,20,21,22 from admin` 来尝试显示和提取数据。 值得注意的是,SQL注入是一种极具破坏性的攻击手段,必须严格遵守道德和法律规范,只用于学习和防御性目的,不得用于非法活动。为了保护Web应用程序免受SQL注入攻击,开发者应当遵循参数化查询、输入验证、使用预编译语句等最佳实践,同时配置好Web应用防火墙,以提高系统的安全性。












- 粉丝: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 继电器在电气工程及自动化低压电器中的应用.docx
- 典型网络工程的案例分析.doc
- 全国计算机等考试二C笔试试卷.doc
- 大学计算机实验报告记录样本.doc
- 科大讯飞人工智能定义城市1.0版本发布.docx
- 软件学院软件工程硕士版培养方案终稿单证.doc
- 基于单片机的数字万用表研究设计.doc
- 集团公司大数据平台建设方案.docx
- 南京大学关于机器学习的 PPT 教学课件
- 热电厂建设项目管理控制研究.docx
- 项目管理的难点与对策.doc
- Oracle程序设计.docx
- 不依赖 sk-learn 库的纯 Python 机器学习算法实现
- 基于单片机的抢答器的方案设计书.doc
- 试论大数据环境下的企业财务管理改革路径.docx
- 初中英语教师基于网络平台的自主发展.docx



评论0