12.SQL注入之简要SQL注入

332 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

在本系列课程学习中,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 注入演示