SQL注入-简易+偏移+跨库+sqlmap

admin 2024年2月5日13:02:19评论12 views字数 1734阅读5分46秒阅读模式

SQL注入漏洞产生根本条件:可控变量 特定函数

脚本代码在实现代码与数据库进行数据通讯时(从数据库取出相关数据进行页面显示),将定义的SQL语句进行执行查询数据时。其中用户能通过参数传递自定义值来实现控制SQL语句,从而执行恶意的SQL语句,可以实现查询其他数据(数据库中的敏感数据,如管理员帐号密码)。这一个过程就可以叫做SQL注入漏洞。

SQL注入攻击流程:

1、猜测数据库类型

2、根据类型选择思路

ASP+Access-简易注入-字典猜解

1.ACCESS的数据库是独立存在的:以文件形式,连接数据库,就是指定一个数据库文件

2.ACCESS数据库特性:

没数据库用户,没数据库权限,没数据库查询函数,没有高权限注入说法

3.Access无高权限注入点-只能猜解,而且还是暴力猜解

4.数据库数据阶级:

数据库名——表名—— 列名—— 数据

5.由于Access数据库特性导致这个SQL注入是需要借助字典去猜解表名和列名的,那么就会出现表名或列名猜解不到,可以自定义社工字典或采用偏移注入!

本地搭建网站:iis中间件+asp脚本+access数据库

SQL注入-简易+偏移+跨库+sqlmap

网站演示:

猜测列数

SQL注入-简易+偏移+跨库+sqlmap

猜解表名和测试页面显示的列

SQL注入-简易+偏移+跨库+sqlmap

将页面显示的列替换为想要查询的列名

SQL注入-简易+偏移+跨库+sqlmap

成功查询

SQL注入-简易+偏移+跨库+sqlmap

ASP+Access-偏移注入-报错显示

偏移注入就是解决表名已知,列名未知的情况!

网站演示:

判断出显错位和列数

SQL注入-简易+偏移+跨库+sqlmap

浏览器搜索pyload

SQL注入-简易+偏移+跨库+sqlmap

使用pyload查询表数据

SQL注入-简易+偏移+跨库+sqlmap

查看页面代码,成功得到数据

SQL注入-简易+偏移+跨库+sqlmap

PHP+MYSQL-简易注入-存储特性

MYSQL的数据库是统一管理:多个数据库在一起,连接时需要指定数据库和用户名密码

数据库A=网站A=数据库用户A

数据库B=网站B=数据库用户B

数据库C=网站C=数据库用户C

还存在一个最高数据库用户---root用户:所有数据库皆可查看

数据库数据阶级:

数据库名——表名—— 列名—— 数据

为了网站和数据库的安全性,MYSQL内置有ROOT最高用户,划分等级,每个用户对应管理一个数据库,这样保证无不关联,从而不会影响到其他数据库的运行。

MYSQL两种思路:

1、 非ROOT的注入攻击:常规类的猜解

2、 ROOT用户的注入攻击:文件读写操作,跨库查询注入等

黑盒测试中可以采用user()获取当前用户权限,白盒中看连接用户即可!

MYSQL5.0以上版本:自带的数据库:information_schema

information_schema:存储数据库下的数据库名及表名和列名信息的数据库

information_schema.tables:记录表名信息的表

information_schema.columns:记录列名信息表

网站演示:

1.判断列数和显错位

SQL注入-简易+偏移+跨库+sqlmap

2.查询数据库---为后期猜解指定数据库下的表,列做准备

SQL注入-简易+偏移+跨库+sqlmap

3.查询当前用户权限---看是否符合ROOT型注入攻击

SQL注入-简易+偏移+跨库+sqlmap

使用ROOT类型攻击猜解数据

1.获取fcms数据库下面的全部表名信息:

?id=1 union select table_name,2 from information_schema.tables where table_schema='fcms'

SQL注入-简易+偏移+跨库+sqlmap

2.获取表名fn_adminuser的列名信息:

UNIONSELECT column_name,2 from information_schema.columns where table_name='fn_adminuser' and table_schema='fcms'

SQL注入-简易+偏移+跨库+sqlmap

3.获取指定数据:

UNIONSELECT username,passwordfrom fn_adminuser

SQL注入-简易+偏移+跨库+sqlmap

跨库注入:实现当前网站跨库查询其他数据库对应网站的数据

获取数据库名之后按照常规思路猜解即可,只是获取列内容时,查询条件需要指定数据库和表(如:from 数据库名.表名),因为默认查询当前网站的数据库。

获取当前mysql下的所有数据库名

SQL注入-简易+偏移+跨库+sqlmap

真实案例:

发现网站传递的参数进行了编码

SQL注入-简易+偏移+跨库+sqlmap

注入时,如果有加密,要把注入语句先加密再进行注入

SQL注入-简易+偏移+跨库+sqlmap

猜解列数和爆出显错位

SQL注入-简易+偏移+跨库+sqlmap

查询基本信息

SQL注入-简易+偏移+跨库+sqlmap

数据库版本4.1,没有information_schema数据库,只能暴力猜解

sqlmap扫描成功爆出数据库

SQL注入-简易+偏移+跨库+sqlmap

加入进群

想要加入

原文始发于微信公众号(小黑子安全):SQL注入-简易+偏移+跨库+sqlmap

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月5日13:02:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SQL注入-简易+偏移+跨库+sqlmaphttps://cn-sec.com/archives/2470699.html

发表评论

匿名网友 填写信息