第一关
https://redtiger.labs.overthewire.org/level1.php?第一关的目标是获取Hornoxe的登录密码
1.首先寻找注入点
寻找页面的注入点,打开页面发现页面能操作的地方一个是第一关,登录账号密码输入后的LOGIN按钮,分别点击看看页面是否变化
点击第一关,发现页面变化,连接参数也发生了变化 cat=1
判断其是否是注入点直接输入单引号判断是否为注入点 cat=1'
输入单引号后,页面信息发生变化,存在注入点,参数cat=1。根据经验,应该为数值型注入。
2.使用函数order by判断其字段数,以及回显位置
尝试更改order by 后参数,为4时未变化,5时页面变化,由此判断,字段数为4,然后尝试判断回显点位置
https://redtiger.labs.overthewire.org/level1.php?cat=1%20union%20select%20%201,2,3,4--+
根据页面回显可以知道,回显位置在3,4
3.根据页面回显位置,以及已知数据库表名,查询Hornoxe的密码
https://redtiger.labs.overthewire.org/level1.php?cat=-1%20union%20select%201,2,3,password%20from%20level1_users#
cat=-1 构造报错注入 ,改变联查询的结果,得到我们想要的数据
这里解释一下大家都会忽略,但是可能解释不了的问题
为什么要将参数构造为-1,来报错注入?
这里我们采用的注入方法是 union 联合注入,这个参数为负数是根据union方法的特性来的,前面查询语句的执行结果 和 后面查询语句的结果是互不干扰的,而且我们只想获得后面语句执行的结果,不想获得第一条语句的执行结果,因此构造的是负数来报错。
输入用户名,密码登录,通过第一关