sqli-labs(42-45)

Less-42

1.打开页面,似曾相识,像极了前边的二次注入,但是这里忘记密码``创建帐号都是没用的功能,好像就没法二次注入了,只有尝试登录了(像极了现实生活的注入,先登陆,再注入),自己搭建的环境知道帐号密码吧,登陆后出现了修改密码的界面
sqli-labs(42-45)_第1张图片
2.出现了这个画面,尝试在三个框里注入,尝试了很多都失败了,猜想是'这些符号被过滤了,只好logout看看在登陆界面存不存在注入点了,先测试username框,构造永真式'or 1=1)or 1=1等,尝试了这些以后发现,都是一张大连的图片,说明username不存在注入

sqli-labs(42-45)_第2张图片
既然username不存在注入,就看看password框,同样构造永真式'or 1=1)or 1=1,发现当username=adminpassword=c‘or 1=1(这里正确密码是admin),登陆成功了,再来试试password=1’,出现报错提示了,闭合
在这里插入图片描述
3.既然存在报错提示,就可以用报错注入来爆数据了,构造password=1'or updatexml(1,concat('~',database()),0)#,出现数据库名
sqli-labs(42-45)_第3张图片
同样可以爆出其他数据了,来看看可不可以堆叠注入吧(这整篇page3都是堆叠注入相关的,所以试试)
先尝试改admin的密码(因为已经知道admin的密码是admin了,可以前后作对比,看看是否注入成功),构造语句1';update security.users set password='666'where id=8#,注入后打开mysql看看是否更改成功
sqli-labs(42-45)_第4张图片
果然成功了,存在堆叠注入。
4.最后实在想搞清楚那几个没有注入成功的地方是怎样过滤的,看了看源码,原来是这样,是用mysqli_real_escape_string()函数将特殊字符都转义了(这些特殊字符包括:\x00,\r,\n,,’,",\x1a)
登陆处:
在这里插入图片描述
改密码处:
在这里插入图片描述

Less-43

同Less-42一样的操作,只是password处的闭合方式为')

Less-44

1.重复Less-42的第一步,无果,再来测试登陆处,用样测试username后,发现它又不能注入,测试password,构造永真式’or 1=1,发现当password1'or 1=1#时登陆成功,说明是'闭合,看看和Less-42一样存在报错注入,构造1',结果如下,没有报错提示
sqli-labs(42-45)_第5张图片
再来看看能不能盲注,构造1’or 1=2#, 不能进入改密码页面,说明存在布尔注入了,可以采用脚本或者sqlmap将数据跑出来了,
sqlmap语句:sqlmap -r "/root/1.txt" -p "login_password" -dbs跑数据库
结果:
sqli-labs(42-45)_第6张图片
2.测试还是存在堆叠注入

Less-45

同Less-44一样布尔型盲注,闭合方式为'),存在堆叠注入

你可能感兴趣的:(sqli-labs,mysql,信息安全)