初次实战SQL注入

目录

1.判断漏洞是否存在

2.判断注入类型(数字型/字符型)

3.猜列数

4.联合查询判断回显位

6.获取数据库表明


此实验为本人学习内容,从未攻击任何网站!!!请伙伴们同样遵纪守法!!!

环境:虚拟机win10

靶场:dvwa

1.判断漏洞是否存在

根据客户端返回的结果来判断提交的测试语句是否成功被数据库引擎执行,如果测试语句被执行了,说明存在注入漏洞。
一般利用单引号( ' )或者双引号( " )来判断是否存在漏洞,如果出现SQL 语句错误说明有很大的可能会存在漏洞。
将dvwa靶场难度调为low
进入sql注入
第一步看到User ID可以先尝试输入数字,我尝试输入的1
第二步使用HackBar插件,点击LoadURL,就会在右方输入框内看到url
第三步点击Spit URL,方便查看
第四步在id=1后输入'或",查看是否报错 (因为sql语句中单引号或双引号都是成双成对,我们在这里输入单引号或者双引号后如果报错,很大可能存在此漏洞)
第五步点击Execute
可以看到报错信息里多出一个单引号,那么很大可能存在sql注入漏洞
我们可以查看数据库日志,进一步印证这一点(日志文件需要自行添加)
添加日志文件
添加
general_log = 1
general_log_file = "D:\phpStudy\PHPTutorial\MySQL\data\mysql.log"
回到添加路径下新建mysql.log即可
我们可以看到日志文件中我们在网页中做出的修改,一开始输入了1,第二次输入了1',可以看到这两句实际上就是sql查找语句(因为是学习阶段我们可以查看数据库日志文件来验证我们的想法)
第二次多输入一个单引号可以从语句中看出多了一个单引号,所以会报错
得出结论我们可以通过这里修改数据库从而得到更多有用信息

2.判断注入类型(数字型/字符型)

判断注入类型是 数字型 还是 字符型 ,这涉及到在注入的过程中是否 需要添加单引号,可以使用and ( 逻辑与)进行判断,当条件表 达式两边都为真才是真,有一边为假则是假
1 and 1=1
1 and 1=2
如果输入 1 and 1=1 1 and 1=2 页面的查询结果都返回相同的内 容,说明不是数字型注入。既然不是数字型,那就有很大的可能是 字符型注入了。
如果是字符型则需要对单引号( ' )进行闭合,因为 MySQL 中的引号 都是成双成对出现的。
输入以后可以看到 1 and 1=1, 1 and 1=2都能正常显示,这说明什么呢?说明这里不是数字型,数字型肯定会报错,很有可能是字符型
可以观察日志文件
既然已经判断不是数字型,我们就来验证一下是不是字符型
我们输入1' and 1=2--+,发现没有正常显示因为结果为假
(--+是注释的意思在数据库中注释为-- (有个空格),在url中会将+编码为空格)
我们输入--+是为了注释掉数据库中原本自带的单引号,让前面自带的单引号和我们输入 的单引号组成一对
我们再次查看日志文件
为了进一步验证,我们输入1' and 1=1--+
发现正常显示,这就形成了单引号闭合,符合字符型
我们可以在数据库中对比一下
首先是数字型,数字型正常来说是这两种结果,而在靶场中则是显示为相同的结果,原因是数据库将我们输入的1 and 1=1和1 and 1=2看做成'1 and 1=1'和'1 and 1=2',因为是字符型所以会自动的将我们输入的数据看成一体。
而我们后来输入的1' and 1=1--+和1' and 1=2--+,因为我们在末尾都输入了注释符将字符型它本身的后单引号给注释掉了所以会呈现两种状态。
这里还涉及到隐式类型转换
'1 and 1=1'和'1 and 1=2'是两个字符串从被单引号引起来就能看出这一点,
'1 and 1=1'会从左往右读首先是1然后空格后面就不会再读取了,就等价于1,如同c语言中strlen()函数计算字符串长度时遇到\0就会结束。
我们知道这里是单引号闭合以后可以开始下一步猜列数

3.猜列数

查看日志文件就明白了
SELECT first_name, last_name FROM users WHERE user_id = '1' order by 10 -- '
这条查询语句的意思是查询user_id=1,first_name, last_name这两列里的信息然后进行排序(order by)
这条查询语句中只选择了first_name, last_name这两列,所以我们根据列来查询只能是2,在实战中没有日志文件我们可以不断缩小列数来查询

4.联合查询判断回显位

这里我就不解释数据库查询语句了,不懂的伙伴可以学习一下数据库增删改查的知识

dvwa靶场中正常显示了两行但很多网站可能只会显示上面一行的内容不会显示我们输入的1,2

怎么解决呢我们输入id=-1' union select 1,2  --+,让id=-1,这样数据可在查询的时候发现没有匹配的就不会显示,则直接显示我们输入的查询

这好似我在数据库中演示的结果这样很好理解
确定回显位后我们则可以根据联合查询得到更多信息
如union select database(),version(),可以查询数据库名称和版本号

6.获取数据库表明

可以看到我们通过联合查询语句查出了dvwa数据库的两个表名

还是同样的问题,很多网站只会显示一条内容,这里我们的解决方法是group_concat()函数
第二种方式-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='dvwa' )%23
我们将查询标明的语句卸载括号里让他成为一条完整的查询语句这样对我们新手更加友好
查到表名后我们就要进一步查询表的字段了,这里我们查询users表的字段     %23也代表注释
-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='dvwa' and table_name='users' )%23
最后就可以去具体的数据了比如查询user字段的数据
-1' union select 1,(select group_concat(user) from users )%23
这样我们就查出了所有的用户名
接下来我们查询user 和 password
显示在一行唯一的缺陷就是会将所有数据写在一起,需要自己根据前面查出的用户来对照
这里的密码是经过加密的可以通过解密工具解密
#group_concat() 函数被过滤时,可以使用 limit n,1 来逐个输出查询内容

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

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

相关文章

转录组总结

1. 软件安装 2.转录组分析步骤: ① 建立环境 #建立python2.7的环境,大部分的转录组信息都需要在Python2的环境下进行 conda create -n py2env python2.7 source activate py2env ② 获取fastqc报告 #单个报告 fastqc -t 15 /home/yinwen/biosoft/DN…

2024年数据库系统工程师全套资料

2024年5月数据库系统工程师全套视频、历年真题及解析、历年真题视频解析、教材、模拟题、重点笔记等资料 1、2023年5月、2022年5月、2021年5月数据库系统工程师全套基础精讲视频。2024年5月全套精讲视频持续更新中。 2、数据库系统工程师2004-2023年历年真题及解析文档&#x…

如何在Win系统部署Tomcat服务并实现远程访问内网站点

文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学…

读架构整洁之道的一些感悟

做产品开发时,我们经常跌落在一种无法打破的轮回中。 我们经常说,产品上线最重要,可以未来再重构代码, 但是结果大家都知道,产品上线以后重构工作就再没人提起了。首先,线上跑的好好的,动出问题…

动态规划(算法竞赛、蓝桥杯)--树形DP树的中心

1、B站视频链接&#xff1a;E34 树形DP 树的中心_哔哩哔哩_bilibili #include <bits/stdc.h> using namespace std; const int N20010; int n,a,b,c,ans2e9; struct edge{int v,w;}; vector<edge> e[N]; int d1[N],d2[N],path[N],up[N];//path记录d1 void dfs1(in…

【Vue】sessionStorage存取数据

一. 需求 1.1 模板 Vab Admin Pro 1.2 组件 ElementUI 1.3 阐述 列表页面搜索【关键词】点击【查询】后&#xff0c;点击【查看】按钮跳转到【详情页】&#xff0c;详情页【返回】【保留原搜索关键词】 原图 搜索查询【关键词】 详情 返回后【保留】【搜索查询关键词…

潜水耳机哪个牌子好?认准这几个游泳耳机品牌就对了!

在科技日益发达的今天&#xff0c;人们对于运动设备的需求也在不断提升。作为一项独特的水上运动&#xff0c;潜水爱好者们对耳机的要求也越来越高。一款优秀的潜水耳机不仅能够提供卓越的防水性能和舒适度&#xff0c;还必须具备出色的音质。那么&#xff0c;在众多品牌中&…

2024宠物行业未来发展趋势:京东宠物健康(宠物营养保健和医疗)市场品类数据分析报告

近段时间&#xff0c;广州某知名宠物医院的医疗事故正在被大众热议&#xff0c;也让越来越多从业者开始关心宠物医疗行业的未来形势。 在2022年下半年&#xff0c;京东平台专门设立了一个一级大类目&#xff1a;宠物健康&#xff08;将其从原本的宠物生活类目中独立出来&#…

【C++】c++入门之递归上 数值类

文章目录 前言一、 递归1.1 基本概念1.2 递归的过程1.3 使用场景 二、例题讲解问题一&#xff1a;1002 - 编程求解123...n问题二&#xff1a;1241 - 角谷猜想问题三&#xff1a;1108 - 正整数N转换成一个二进制数问题四&#xff1a;1088 - 求两个数M和N的最大公约数 三、练习问…

Chrome禁止自动升级

一、关闭计划任务 1、首先我们需要右键点击我的电脑&#xff0c;在打开的选项里选择管理。   2、在打开的对话框中选择任务计划程序。   3、在任务计划程序库中找到两个和chrome自动更新相关的任务计划GoogleUpdateTaskMachineCore与GoogleUpdateTaskMachineUA。     4…

onlyOffice-windows 安装说明(二)

onlyoffice windows 安装 onlyoffice 支持多个平台比如&#xff1a;Windows Server、Linux、Docker 以下内容是对官网安装说明做了简单翻译&#xff0c;仅供参考&#xff0c;原文链接地址参见文末。 社区版允许您在本地服务器上安装ONLYOFFICE文档&#xff0c;并将在线编辑器…

【李沐精读系列】BERT精读

论文&#xff1a;BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 参考&#xff1a;BERT论文逐段精读、李沐精读系列、李宏毅版BERT讲解 一、介绍 BERT(Bidirectional EncoderRepresentation Transformer&#xff0c;双向Transformer编码器…

JAVA 用二分法查找数组中是否存在某个值

二分法查找的概念 二分查找也称折半查找&#xff08;Binary Search&#xff09;&#xff0c;它是一种效率较高的查找方法。首先&#xff0c;将表中间位置记录的关键字与查找关键字比较&#xff0c;如果两者相等&#xff0c;则查找成功&#xff1b;否则利用中间位置记录将表分成…

pinia报错does not provide an export named ‘hasInjectionContext

你们好&#xff0c;我是金金金。 场景 我这里是uniappvue3编写的一个小程序项目&#xff0c;在集成pinia过程当中遇到此问题&#xff0c;报错请求的模块 未提供 导出名hasInjectionContext&#xff08;位于 pinia.mjs:6:10&#xff09; 以下我项目当中vue和pinia的具体依赖版本…

selenium等待机制

selenium等待机制 影响元素加载的外部因素1.计算机的性能2.服务器的性能3.浏览器的性能4.网络因素 强制等待1.强制等待2.页面加载超时机制 隐性等待显性等待1.WebDriverWait类2.WebDriverWait类提供的方法untileuntile_not显性等待的语法格式 3.expected_conditions模块方法exp…

「Mybatis深入三」:高级查询-模糊查询

一、需求 根据username 模糊查询user 表 二、代码演示 1、方式1 数据库环境 CREATE DATABASE mybatis_db; USE mybatis_db; CREATE TABLE user (id INT(11) NOT NULL AUTO_INCREMENT,username VARCHAR(32) NOT NULL COMMENT 用户名称,birthday DATETIME DEFAULT NULL COMMEN…

Java开发从入门到精通(一):Java的基础语法进阶

Java大数据开发和安全开发 &#xff08;一&#xff09;Java注释符1.1 单行注释 //1.2 多行注释 /* */1.3 文档注释 /** */1.4 各种注释区别1.5 注释的特点1.5 注释的快捷键 &#xff08;二&#xff09;Java的字面量&#xff08;三&#xff09;Java的变量3.1 认识变量3.2 为什么…

【宏观经济】全国各地级市及上市公司“信息惠民国家试点”DID(2010-2024)

数据说明&#xff1a;信息惠民国家试点城市是&#xff0c;2014年6月23日&#xff0c;根据国家发改委网站发布的通知&#xff0c;国家发展改革委等12部门决定的&#xff0c;将全国80个城市列为信息惠民国家试点城市。推进信息惠民国家试点城市建设&#xff0c;有利于加快提升公共…

vue+Nodejs+Koa搭建前后端系统(九)-- 上传图片

web2.0的到来使网页世界正式进入了寒武纪&#xff0c;各式各样的多媒体资源屡见不鲜&#xff0c;上传资源变得刻不容缓&#xff01; 前言 本文是在该系列的基础上&#xff0c;针对前后端代码的修改。 准备 HTTP上传图片时Content-Type值常见的有2种&#xff1a;application…

Django模型层(附带test环境)

Django模型层(附带test环境) 目录 Django模型层(附带test环境)开启测试环境数据的增加数据的删除修改数据查询数据查询所有数据去重查询排序查询统计剔除指定数据多表查询校验数据是否存在字段的筛选查询 开启测试环境 首先在app下找到tests.py文件并进入 MyDJ.settings要换成…