Web安全攻防的学习——05—(sqlmap检索DBMS信息、sqlmap暴力破解数据、SQL注入原理、SQL注入过程、get基于报错的SQL注入、get基于报错的SQL注入利用)(重点)

1、sqlmap检索DBMS信息

sqlmap检索DBMS banner
获取后端数据库banner信息

参数 --banner或者-b

在这里插入图片描述
sqlmap检索DBMS当前数据库
获取当前数据库名

  • 参数 --current-db

在这里插入图片描述

sqlmap检索DBMS当前主机名

获取主机名

  • 参数 --hostname

在这里插入图片描述
sqlmap检索DBMS用户信息
sqlmap探测当前用DBA
探测当前用户是否是数据库管理员

  • 参数 --is-dba在这里插入图片描述

sqlmap枚举DBMS用户密码
Sqlmap会先列举用户,再列举用户密码Hash值。()

  • 参数 --passwords
    在这里插入图片描述

自动默认选项

  • –batch 自动默认选项
    在这里插入图片描述

sqlmap枚举DBMS用户
获取DBMS所有用户

  • 参数 --users
    在这里插入图片描述

sqlmap枚举DBMS权限

  • 参数:–privileges
    当前用户有读取包含了数据库管理系统中用户信息的系统表的权限时使用这一参数可以列举数据库管理系统中用户的权限。通过用户权限可以判断哪些用户是管理员。
    若想只枚举特定用户的权限使用参数"-U"指定用户,可用"CU"来代表当前用户。(current-user)

python sqlmap.py -u “http://127.0.0.1/sqli/Less-1/?id=1” --privileges U root

sqlmap枚举信息
sqlmap列举数据库名
列举数据库名称

  • 参数 --dbs
    在这里插入图片描述

sqlmap枚举数据库表
列举数据库表名

  • 参数: --tables
  • -D 数据库名字 指定具体数据库
    在这里插入图片描述

sqlmap枚举数据表列

  • 参数 – columns
    在这里插入图片描述

sqlmap枚举数据值

  • 参数 --dump
    在这里插入图片描述

sqlmap枚举schema信息
用户可用此选项列举数据库管理系统的模式。模式列表包含所有数据库、表、列、触发器 和他们各自的类型。 同样地,可使用参数–exclude-sysdbs排除系统数据库。

  • 参数 --schema
    在这里插入图片描述

sqlmap检索数据表数量
如果用户只想知道表的条目数,则可以使用此参数

  • 参数 --count
    在这里插入图片描述

sqlmap获取数据信息

  • 参数 --start --stop
    –start 1 --stop 3 返回当前数据库表的前三条记录
    在这里插入图片描述
    在这里插入图片描述

sqlmap设置条件获取信息

  • 参数 --where

python sqlmap.py -u “http://127.0.0.1/sqli/Less-1/?id=1” -D security -T users --where=“id>3” --dump
在这里插入图片描述

sqlmap暴力破解数据
暴力破解表名

  • 参数 --common-tables
    暴力破解中使用的文件路径在…\sqlmap\sqlmapproject-sqlmap-3b7dd2c\txt这个文件夹下是检索的所有项目

有些情况下用–tables不能列出数据库中表名来比如:
1.版本小于5.0的MySQL没有information_schema表
2.数据库用户权限过低无法读取表名
在这里插入图片描述

sqlmap检索所有信息
返回所有的检索信息

  • 参数 -a 或者–all
    返回所有的检索项目,一般不用,容易被发现

2、SQL注入原理

介绍SQL注入
SQL注入就是指web应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是攻击者可控的,并且参数代入数据库查询,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。

SQL注入漏洞的产生需要满足两个条件

  • 参数用户可控
  • 参数带入数据库查询,传入的参数拼接到SQL语句,并且带入数据库查询

SQL注入的危害

  • 1.数据库敏感信息泄露
  • 2.页面被窜改
  • 3.数据库被恶意操作
  • 4.服务器被远程控制

SQL注入的分类

  • 根据注入位置数据类型可将SQL注入分为两类:数字型和字符串型
    – 字符串注入
    – 数字注入
    在这里插入图片描述
    在这里插入图片描述
  • 根据返回结果可以分为
    – 显错注入(error-based)
    – 盲注(boolean/time-based blind)
    显错注入

SQL注入的形成原因:

  • 1.数据与代码未严格分离
  • 2.用户提交的参数数据未做充分检查过滤及被带入到SQL命令中,改变了原有SQL命令的’语义’ ,且成功被数据库执行

3、SQL注入过程

在这里插入图片描述

火狐浏览器插件安装

hackbar破解安装
先下载火狐浏览器和上面的插件:
在这里插入图片描述
在这里插入图片描述
安装成功:包含多种工具
在这里插入图片描述
关闭自动更新:
在这里插入图片描述

4、SQL注入

GET和POST请求

  • GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL 和传输数据,多个参数用&连接。 (大多数网站采用GET方式)
  • POST提交:把提交的数据放置在是HTTP包的包体中。 (POST方式更安全)

因此,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变
在这里插入图片描述

5、get基于报错的SQL注入

通过url中修改对应的ID值,为正常数字、字符(单引号,双引号,括号)、反斜线来探测url中是否存在注入点。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、get基于报错的SQL注入利用

  • 1.order by判断字段数
  • 2.利用union select联合查询,获取表名
  • 3.利用union select联合查询,获取字段名
  • 4.利用union select联合查询,获取字段值

在这里插入图片描述
1、order by判断字段数
在这里插入图片描述
在这里插入图片描述
order by测试出数据库中含有3个字段
在这里插入图片描述
2、利用union select联合查询,获取表名
在这里插入图片描述
在这里插入图片描述
获取表名
在这里插入图片描述
3、利用union select联合查询,获取字段名
在这里插入图片描述
4、利用union select联合查询,获取字段值

获得字段值,即账号密码:
在这里插入图片描述

发布了50 篇原创文章 · 获赞 9 · 访问量 2052

猜你喜欢

转载自blog.csdn.net/weixin_42118531/article/details/104562649