SQL注入入门

SQL基础

SQL注入:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。

原理

通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作。

产生原因

1.不当的类型处理;
2.不安全的数据库配置;
3.不合理的查询集处理;
4.不当的错误处理;
5.转义字符处理不合适;
6.多个提交处理不当。

危害

1.数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。
2.网页篡改:通过操作数据库对特定网页进行篡改。
3.网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。
4.数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。
5.服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。
6.破坏硬盘数据,瘫痪全系统。

成因

WEB浏览器表示向逻辑层发送请求,逻辑层通过查询更新数据库(存储层)响应请求。
从用户请求到在数据库中执行SQL语句,服务器未经过任何过滤校验,就把用户的请求直接在数据库中执行,导致数据库内的数据发生泄漏、更改等。

分类

根据语法分类:
报错型注入;
布尔型注入:
可联合查询注入;
可多语句查询注入;
基于时间注入。
根据数据类型分类:
整形注入;
字符串类型注入;
搜索类型注入。

判断注入类型

1.布尔类型:存在注入,但是没有显示位,而且没有数据库出错信息,只能通过页面返回正常/不正常进行判断。
2.报错注入:因为传递参数不正常引起数据库执行语句发生错误,脚本输出错误信息。
3.联合查询注入:页面根据参数值改变而改变,即有显示位的条件下,没有过滤单引号、双引号等特殊字符,及SQL命令;可以对SQL语句截断,使用UNION 添加。
4.查询语法注入:UNION两边列的数量相同,可使用order by 猜测获取列的数量。
5.基于时间注入:存在注入,但是没有显示位,而且没有数据库出错信息,页面的返回信息不会改变,可以在布尔语句上使用sleep(),猜解获取信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值