前言
在本系列课程学习中,SQL 注入漏洞将是重点部分,其中 SQL 注入 又非常复杂,区分各种数据库类型,提交方法,数据类型等注入,我们需 要按部就班的学习,才能学会相关 SQL 注入的核心。同样此类漏洞是WEB 安全中严重的安全漏洞,学习如何利用,挖掘,修复也是很重要的。
知识点
忍者安全测试系统
SQL注入安全测试中的危害
SQL注入产生原理详细分析
可控变量,带入数据库查询,变量未存在过滤或过滤不严谨
数据库分类
网站A 表名->列名->数据
网站B
如何判断注入点?
老办法:
and 且 or 或 xor 非
and 1=1 正确
and 1=2 错误
新方法:
id=1asdfwefrga
跟 id=1页面不一样的话,说明输入的乱符影响了查询数据库
说明有注入点
有可能报错404,跳转页面,这部分是没有漏洞的
必要知识点
在MYSQL5.0以上版本中,mysql存在一个自带数据库名为information_schema,它是一个存储记录所有数据库名,表名,列名的数据库,也相当于可以通过查询它获取指定数据库下面的表名和列名信息。
数据库中,符号“.”代表下一级,如12.3表示123数据库下的3表名
information_schema.tables:记录所有表名信息的表 information_schema.columns:记录所有列名信息的表
tables_name:表名 columns_name:列名
流程
判断注入
猜列名数量(字段数)
order by x 错误与正常的正常值
报错猜解准备
id=-1
信息收集
数据库版本 version() 名字 database() 用户 user() 操作系统 @@version_compile_os
案例演示
简易代码分析 SQL 注入原理
id=-1 union select 1,2,3 from emails
Sqlilabs 注入靶场搭建简要使用
sqli-labs
墨者靶机真实 MYSQL 注入演示