堆叠注入:领取 iPad Pro
初学Web安全方面内容,做了一道由学长出的SQL注入题,难度不大,适合新手了解堆叠注入。这里简单介绍一下过程。
题目如下:
首先,可以在输入框内输入数据测试是否存在注入点。这里我们利用输入1’ and 1=2 #来判断是否存在注入点。
不过,输入的过程中会遇到无法继续输入的问题,这个是由于网页的源代码对该输入框的maxlength做了限定,我们可以通过F12调出开发者控制台来找到对应的maxlength代码部分,将设置值改为足够我们输入SQL语句的值。
(这里顺手把初始设置maxlength的10改成了100)
然后是完成判断注入点的输入。得到以下的结果:
(这说明在1’后的and语句确实被读取并生效了,也就是说这里是允许多条语句同时注入的)
那么,接下来我们可以尝试使用堆叠注入来查找数据库了。首先使用1;show databases;#来获得所有的数据库,得到了如下的结果:
(此处显示的是含有所有的数据库)
那么我们很自然地找到需要“领取”的ipadpro数据库,并且对这个数据库进行操作。所以输入1;use ipadpro;show tables;#来打开并展示ipadpro里含有的内容。
(这就是ipadpro库里含有的所有表了)
那么接着可以去找题目的flag,比如先从第一个表开始,输入1;show columns from 250250528520528520
;#来获取表单内容。(这里的数字表名需要用`符号括起来,然后平台原因使得被括起来的内容成为了红色表示,所以在这里注释一下。不过如果要获得名为up的表单的内容的话则不需要括起来)
(第一行出现了flag,说明已经完成了题目)
然后就可以欢快地拿着flag去提交了……
到这里题目就已经做完了,这是一道很简单的堆叠注入题,我目前水平也有限,只能解释成这样了。如果以后学习中发现这篇文章的解释有什么不周的地方,也会回来及时修改的。(#滑稽挠头)