简介:文章分为三部分:1、概要;2详细的思维导图;3、详细的解说。
描述:概要包括该文介绍的知识点;详细的思维导图更好地理清思路,方便记忆,但对于有些对于作者比较基础的内容不会有详细的解释,建议主动了解;详细的解说作者会根据思维导图的纲要添加代码语句等内容,有时间会添加具体操作,具体步骤,操作结果等内容,添加需要注意的Tips(蓝色字体怎样)。
前面的话:操作学习的环境----Linux环境+docker+sqli-labs。环境配置请看:第一章:SQL注入基础--1.1Web应用架构分析&1.2 SQLi注入环境搭建或私信我亲测有效的资源给你。
Tips:这些都是作者学习过的内容,文字、思维导图等都是一双手,后续会连载这系列以及丰富流程说明,欢迎沟通交流、留言,觉得必要的也可收藏关注Tips2:磨刀不误砍柴工,后面小节真正开始带大家sql注入:
1.4 MySQL注入方法逻辑运算及常用函数;1.5;1.6...
1、概要:
1.3 SQL注入原理分析
SQL注入背景介绍
SQL语言介绍
SQl注入产生原因
SQL注入核心原理
查看数据库信息操作
2、详细的思维导图:
3、详细的解说:
1.3 SQL注入原理分析
SQL注入背景介绍
SQL语言介绍(简要了解)
SQL全称是“结构化查询语言(StructuredQueryLanguage)",最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IB/M公司1981年推出以来,SQL语言得到了广泛的应用。
结构化查询语言SQL是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的功能极强的关系数据库标准语言。在SQL语言中不需要告诉SQL如何访问数据库,只要告诉SQL需要数据库做什么。
SQl注入产生原因(简要了解)
网络技术与信息技术高速发展,B/S模式具有界面统一,使用简单,易于维护,扩展性好,共享度高等优点,B/S模式越来越多的被应用于程序编写中。
由于B/S建立在互联网之上,对安全的控制能力较弱,且开发人员的水平和经验参差不齐,相当一部分的程序员在编写代码时没有对用户的输入数据或者是页面中所携带的信息进行必要的合法性判断。攻击者利用这个机会提交一段数据库查询代码,根据程序返回的结果,就可以获得一些数据库信息。
SQL注入核心原理(建议了解)
SQL注入是一种将恶意的SQL代码插入或添加到应用(用户)的输入参数的攻击,攻击者探测出开发者编程过程中的漏洞,利用这些漏洞,巧妙的构造SQL语句,对数据库系统的内容进行直接检索或修改。
灵活的SQL查询语句+用户输入的数据带入了SQL语句=用户直接操作数据库->SQL注入漏洞
查看数据库信息操作(需要掌握。若未安装docker,未部属sqli-labs请看上一篇文章:第一章:SQL注入基础--1.1Web应用架构分析&1.2 SQLi注入环境搭建)
docker ps -a(在Linux终端模拟器执行)
docker exec -it 'id' /bin/bash(id,替换为查询结果值,上图为a7b6a6...)
mysql(进入mysql)
show databases;(查看数据库的库信息)
use security;(使用security库)
show tables;(查表)
select * from users; (查数据)
select username,password from users where id=1 union select 1,version();(必须掌握union的使用,union后面返回的列要与前面语句返回列相同---前面username,password;后面1,版本信息(5.5.44-0ubantu...))
Less-1(在浏览器访问sqli-labs)
?id=-1' union select 1,2,version()%23(注入成功,回显版本信息)