Lesson 50 GET - Error based - Numeric - ORDER BY CLAUSE - Stacked injection
(1)先测试
SELECT * FROM users ORDER BY 1
乍一看,与46关没有什么区别
查看一下源代码
使用的是这个函数进行处理
而48关则用的是这个函数
我们看一下有什么不同的地方
***
mysqli_fetch_assoc() 函数从结果集中取得一行作为关联数组。
注释:该函数返回的字段名是区分大小写的。
mysqli_multi_query() 函数执行一个或多个针对数据库的查询。多个查询用分号进行分隔。
而本关使用的是mysqli_multi_query()函数,说明可以使用堆叠注入。
(2)我们有多种方法可以测试,这里只展示一种(报错注入,其他看总结)
(3)报错注入
?sort=1 and updatexml(1,concat(0x7e,(database())), 1)
Lesson 50结束
Lesson 51 GET - Error based - String - ORDER BY CLAUSE - Stacked injection
(1)先测试
SELECT * FROM users ORDER BY '1'
显示正常,1被单引号包裹。这是它和50关唯一不同的地方。其他均相同,不再展示。
Lesson 51结束
Lesson 52 GET - Blind based - Numeric - ORDER BY CLAUSE - Stacked injection
(1)先测试
SELECT * FROM users ORDER BY 1
显示正常,1没有被包裹。看看与50关有何不同
(2)输入一个错的
从这可以看出,这是盲注,不会返回错误信息,所以无法使用报错注入。
我们可以使用时间注入或者堆叠注入(一句话木马)
Lesson 52结束
Lesson 53 GET - Blind based - String - ORDER BY CLAUSE - Stacked injection
(1)先测试
SELECT * FROM users ORDER BY '1'
显示正常,1被单引号包裹。这是唯一与52关不同的地方。
(2)继续测试
能看出是盲注,无法进行报错注入
Lesson 53结束