开发者学堂课程【网络安全攻防 - Web渗透测试:SQL 注入攻击_1】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/630/detail/9904
SQL 注入攻击_1
目录:
一、概述
二、含义
三、实践
一、概述
SQL 注入可以说在整个 owasp 在2013年和2017年度统计中注入漏洞排在第一位,注入漏洞所带来的危害很大,SQL注入可以说是其中一种,也是最常见的一种。
所谓 SQL 注入所造成的危害,比如说暴库,拖库,将数据库的内容荡下来,在业界发生很多类似的事件,2016年山东高考信息系统、游戏网站被破等事件,导致用户信息泄露。用户信息都是依托于数据库的存储,包括后台管理员账号都存储在数据库,所以数据库的安全都是黑客重点防御和攻击的一个方面。
常见数据库:MySQL,SQL Server,Oracle
无论是双十一还是天猫、京东在去检索一些产品的时候,例如买一台笔记本,我们会筛选一些条件,联想、苹果;
硬盘类型:固态的还是机械的;内存选择16G 还是32G 这样一些条件,点击按钮后,就是一条 SQL 语句,只不过 SQL 语句加了很多条件,包括下单也是 SQL 语 句,是 updata 操作。
二、含义
SQL 注入是通过特殊构建 SQL 语句,入侵目标系统,致使后台数据库泄露数据的过程。
SQL 语句是写在后端代码中的,前端代码是可以任意修改的,而后段代码是看不见修改不了的。例如数据框只允许输入50个字符,在前端发送请求的时候就可以将其改掉。
打开任意一个网站,此处举例百度,点击 F12 ,点中查看器,从页面上选择一个元素,下方代码就会显示出来,其中的 maxlength 就可以修改最长字符。
SQL 语句存在后端中,后端代码看不见更修改不了,后端代码是通过中间键处理交给 Web Server,Web Server 给相应响应。
打开靶机,来到 web 应用中,进到低安全级别 dvwa,进入 SQL Injection,输入 ID,将你输入的 id 带入到 SQL 语句中去,查询到你的 ID,以及名字,下方 view Source 查看后端。
看到数据库的筛查过程,但是并不能将其修改,而所谓的 SQL 注入就是在看起来不能修改的情况下将其进行修改。
首先是不能删除原本的内容,只能想办法在输入的地方进行特殊构造,来实现你不可告人的目的。
三、实践
1、项目实验环境
目标靶机:OWASP_Broken_Web_Apps_VM_1.2
测试渗透机:Kali_Linux-2018.2-vm-amd64
2、SQL 注入危害
A、拖库导致用户数据泄露
B、危害 web 等应用的安全
C、失去操作系统的控制权
D、用户信息被非法买卖
E、危害企业及国家的安全
3、SQL 基础回顾
3.1登录 OWASP
项目环境:OWASP
表1:dvwa.users
表2:wordpress.wp.users
表3:mysql.user
3.2查看数据库:show databases
Show tables 是不支持显示现在所处库
Select databases 返回到所在的数据库
Select user 返回当前登录用户
Select now 返回当前时间
进入库 use dvwa
3.3查看表
Show tables 查看表
查看表的结构:
DESC/DESCRIBE 注意大写才能补全,小写不能补全
Field 字段名 type 字段类型 null 字段是否为空
Key 是否是主键 Dwfault 默认值 Extra 注释拓展属性
插入数据时需要依托数据结构插入。
3.4查看表的详细属性:show create table users\G
3.5查看表的详细记录 select *from users
3.6查询指定字段首先知道表的结构采取 desc users,在进行指定字段查询 select user_id,first_name from users,字段需要用逗号隔开









