SQL注入攻击及防御 手动注入+sqlmap自动化注入实战(网络安全学习12)

 

CONTENTS

1 项目实验环境

2 SQL注入概述

2.1 SQL注入简介

2.2 SQL注入的危害

3 SQL基础回顾

3.1 联合查询union

3.2 information_schema数据库

4 SQL注入流程

5 手动注入流程

5.1 基于错误的注入

5.2 基于时间的盲注

5.3 基于布尔的注入

5.4 基于UNION的注入

6 sqlmap自动化注入

6.1 GET方法注入

6.2 POST方法注入

6.3 提权操作

7 如何防御SQL注入


1 项目实验环境

测试渗透机:kali_linux-2020

链接:https://pan.baidu.com/s/1apN96nIcs1Fyx8YmFs24Xg 
提取码:32ve

目标靶机:owasp_Broken_Web_Apps

链接:https://pan.baidu.com/s/1CMJ2aERmDGlXXkhUmjDmtA 
提取码:9zsj

2 SQL注入概述

2.1 SQL注入简介

在owasp年度top 10安全问题中,注入高居榜首。SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

  • 1.对于Web应用程序而言,用户核心数据存储在数据库中,例如MySQL、SQL Server、 Oracle ;
  • 2.通过SQL注入攻击,可以获取、修改、删除数据库信息,并且通过提权来控制Web服务器等其他操作;
  • 3. SQL注入即攻击者通过构造特殊的SQL语句,入侵目标系统,致使后台数据库泄露数据的过程;
  • 4.因为SQL注入漏洞造成的严重危害性,所以常年稳居0WASP TOP10的榜首!
     

2.2 SQL注入的危害

  1. 拖库导致用户数据泄漏;
  2. 危害web等应用的安全;
  3. 失去操作系统的控制权;
  4. 用户信息被非法买卖;
  5. 危害企业及国家的安全!

3 SQL基础回顾

现实生产环境中mysql用的居多。对mysql没有基础的童鞋可以参考我这篇文章,简单了解一下mysql(主要了解mysql一些查询语句)。

https://blog.csdn.net/Until_U/article/details/105333489

下面补充一下:owasp的数据库账号:root    密码:owaspbwa

3.1 联合查询union

(1)联合查询常应用在SQL注入中,下面看一个例子,将下面的A和B这两个SQL语句联合,这样就可以执行查询到B里的内容。

A:select user,password from mysql.user;

B:select user_login,user_pass from wordpress.wp_users;

select user,password from mysql.user  union   select user_login,user_pass from wordpress.wp_users;

 

(2)需要注意的是union查询前后字段数必须相同,不一致的话就会报错,e.g.:

select user,password,host from mysql.user  union   select user_login,user_pass from wordpress.wp_user;

(3)判断union前后字段是否一致,可以猜字段数:

select * from dvwa.users union select 1;

select * from dvwa.users union select 1,2;

select * from dvwa.users union select 1,2,3;

select * from dvwa.users union select 1,2,3,4;

select * from dvwa.users union select 1,2,3,4,5;

select * from dvwa.users union select 1,2,3,4,5,6;

猜到之后就可以利用union查询了,多余的字段不想查询可以用数字代替:

select * from dvwa.users union select user_login,user_pass,1,2,3,4 from wordpress.wp_users;

3.2 information_schema数据库

mysql中默认有information_schema数据库,这个类似于数据字典,存放数据库中所有的数据库和表及columns等。

这个数据库中我们主要先关注tables和columns这两张表。

(1)查询数据库库名、表名(tables),下面几句SQL语句执行下熟悉下:

select * from information_schema.TABLES\G

select distinct table_schema from information_schema.TABLES;

select TABLE_SCHEMA,TABLE_NAME from information_schema.TABLES\G

select TABLE_SCHEMA,GROUP_CONCAT(TABLE_NAME) from information_schema.TABLES group by TABLE_SCHEMA\G

mysql> select TABLE_NAME from informatio

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硬核的无脸man~

你的鼓励是我创作的最大功力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值