SQL注入——SQL注入漏洞讲解分类(零)

一、什么是SQL注入漏洞
攻击者利用Web应用程序对用户输入验证上的疏忽,在输入的数据中包含对某些数据库系
统有特殊意义的符号或命令,让攻击者有机会直接对后台数据库系统下达指令,进而实现对后
台数据库乃至整个应用系统的入侵

二、SQL注入原理
服务端没有过滤用户输入的恶意数据,直接把用户输入的数据当做SQL语句执行,从而影响
数据库安全和平台安全。

两个条件
用户能够控制输入
原本程序要执行的SQL语句,拼接了用户输入的恶意数据

三、SQL注入过程

①攻击者访问有SQL注入漏洞的网站,寻找注入点
②攻击者构造注入语句,注入语句和程序中的SoL语句结合生成新的sq1语句
③新的sql语句被提交到数据库中进行处理
④数据库执行了新的SQL语句,引发SQL注入攻击

四、SQL注入带来的危害
绕过登录验证:使用万能密码登录网站后台等
获取敏感数据:获取网站管理员帐号、密码等
文件系统操作:列目录,读取、写入文件等
注册表操作:读取、写入、删除注册表等
执行系统命令:远程执行命令

如通过在用户名处传入参数(' or 1=1 -- )进行万能密码登录(注意空格)

输入字符
formusr =' or 1=1--
formpwd = anything
实际的查询代码

SELECT*FROM users WHERE username =' or 1=1-- AND password ='anything'

五、判断一个HTTP请求是否存在SQL注入的方式
经典:and 1=1 | and 2>1 | or 1=1 |or 1<1
数据库函数:sleep(4)=1 | length(user())>3
特殊符号:单引号(')双引号(")

六、SQL注入分类
按照注入参数类型分类
数字型(整型)注入
字符型注入

搜索型注入
按照注入技术(执行效果)分类
基于布尔的盲注 即可以根据返回页面判断条件真假的注入。

基于时间的盲注 即不能根据页面返回内容判断任何信息,用条件语句查看时间延退语句是否执行

基于报错的注入 即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中
联合查询注入       可以使用union的情况下的注入
堆查询注入           同时执行多条语句的注入。

是否回显也可称分显注、盲注

或是请求方式分为

GE注入
POST注入
Cookie注入
HTTPHeader注入

七、SQL注入漏洞形成的原因
动态字符串构建引起
不正确的处理转义字符(宽字节注入)
不正确的处理错误(报错泄露信息)
不正确的处理联合查询
不正确的处理多次提交(二次注入)


后台存在的问题
后台无过滤或者编码用户数据
数据库可以拼接用户传递的恶意代码

错误处理不当
详细的内部错误消息显示给用户或攻击者
错误信息可以直接给攻击者提供下一步攻击帮助

不安全的数据库配置
>默认账户:
SQLServer“sa”作为数据库系统管理员账户;
MySQL使用“root”和“anonymous”用户账户;
Oracle则在创建数据库时通常默认会创建SYS、SYSTEMSDBSNMP和OUTLN账户。

八、权限:
问题:系统和数据库管理员在安装数据库服务器时允许以rootsSYSTEM或Administrator特权系统用户账户身份执行操作。
正确方法:应该始终以普通用户身份运行服务器上的服务,降低用户权限,将用户权限只限于本服务。

九、寻找SQL注入点
(1)GET方法
一种请求服务器的HTTP方法,使用该方法时,信息包含在URL中
点击一个链接时,一般会使用该方法
GET请求方法的格式
?text=value1&cat=value2&num=value3...
修改方法
浏览器的导航栏中直接修改即可操纵这些参数
HackBar插件

(2)POST方法
POST是一种用于向Web服务器发送信息的HTTP方法、数据信息无法在URL中看到、可以发送字节大的数据

修改POST包方法
浏览器修改扩展(Hackbar)代理服务器(Burpsuite)

其它注入点数据
Cookie、Host、UserAgent

关于注入点的总结
只要后台接收前端输入的数据,并且未对数据进行过滤处理,最后直接进入到数据库中,从而都能构成威胁。

十、手工注入过程
(1)判断是否存在注入点;
(2)判断字段长度(字段数)
(3)判断字段回显位置;
(4)判断数据库信息;
(5)查找数据库名;
(6)查找数据库表;
(7)查找数据库表中所有字段以及字段值;
(8)猜解账号密码;
(9)登录管理员后台。

十一、自动化注入工具
(1)SQL注入工具
Salmap、 Havij、Sqlid
(2)ASP\jSP注入工具
NBSI 阿D注入软件 明小子注入软件
(3)PHP注入工具
穿山甲注入软件 海阳顶端注入软件

SQL注入 ——sql数据库操作基础(一)_Gjqhs的博客-CSDN博客

SQL注入——SQLmap的进阶使用(十五)_Gjqhs的博客-CSDN博客

SQL注入-SQL注入的WAF绕过(十六)_Gjqhs的博客-CSDN博客

...

更多包括而不限于SQL注入的文章,关注我全部带走吧(≧∇≦)ノ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值