学习笔记十一:SQL注入初探


SQL

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

SQL注入

SQL注入攻击是通过将恶意的SQL查询或添加语句插入到应用的输入参数中,再在后台SQL服务器上解析执行进行的攻击,它是目前黑客对数据库进行攻击的最常用手段之一。

当访问动态网页时,Web服务器会向数据库发起SQL查询请求,如果权限验证通过就会执行SQL语句。

这种网站内部直接发送的SQL请求一般不会有危险,但实际情况是很多时候需要结合用户的输入数据动态构造SQL语句,如果用户输入的数据被构造成恶意SQL代码,Web应用又未对动态构造的SQL语句使用的参数进行审查,则会带来意想不到的危险。

在使用SQL注入时要注意:

1.要有参数值的传递

2.参数值是可控的(就是说我输入的参数值不能被判定为不合法字符)

3.没有做防护过滤就带入数据库执行

SQL注入带来的威胁主要有如下几点

  • 猜解后台数据库,这是利用最多的方式,可盗取网站的敏感信息。
  • 绕过认证,例如绕过验证登录网站后台。
  • 注入可以借助数据库的存储过程进行提权等操作。

常见数据库的介绍

Access数据库

Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图 形?户界?两项特点,是 Microsoft Office 的系统程序之?。 Microsoft Office Access是微软把数据库引擎的图形?户界?和软件开发?具结合在?起的?个数据库管理系统。 它是微软OFFICE的?个成员。MS ACCESS以它??的格式将数据存储在基于Access Jet的数据库引擎?。它还可以直接导?或者链接数据(这些 数据存储在其他应?程序和数据库)。

Access数据库结构

表名---->列名---->内容数据 他不像其他的数据库?样、??创建多个数据库然后才是表再是内容、?access的话 只有?个库若?张表。

查看Access数据库

可以安装office套件进?查看、或者可以通过别的?具、如DbView、Easy Access等。

浏览测试所使用的表

使用数据库查看器打开Database目录下的#Data.mdb文件

MySQL数据库

MySQL是?种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使?最常?的数据库管理语?- -结构化查询语?(SQL)进?数据库管理。 由于MySQL是开放源代码的,因此任何?都可以在General Public License的许可下下载并根据个性化的需要对其 进?修改。MySQL因为其速度、可靠性和适应性?备受关注。?多数?都认为在不需要事务化处理的情况 下,MySQL是管理内容最好的选择。

MSSQL数据库

美国Microsoft公司推出的?种关系型数据库系统。SQLServer是?个可扩展的、?性能的、为分布式客户机/服务器 计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统?案。

其主要特点如下:

(1)?性能设计,可充分利?WindowsNT的优势

(2)系统管理先进,?持Windows图形化管理?具,?持本地和远程的系统管理和配置。

(3)强壮的事务处理功能,采?各种?法保证数据的完整性。

(4)?持对称多处理器结构、存储过程、ODBC,并具有?主的SQL语?。 SQLServer以其内置的数据复制功 能、强?的管理?具、与Internet的紧密集成和开放的系统 结构为??的?户、开发?员和系统集成商提供了?个出 众的数据库平台。

MSSQL数据库测试环境搭建可以用Gsql

1 本地连接服务器请使?界?中“服务器名”?本框中的?本作为服务器名连接服务器(MDAC版本必须为2.6或以上版 本)。

默认?户名: sa 默认 密码: 123456

2 远程连接请使?“IP,端?”连接,连接前请关闭服务器防?墙!(端?在服务器启动后,可以在状态页看到。)

例如:192.168.0.X,7788

3 数据库转换为相对路径后需要重新启动绿?SQL?可任意移动。

4 数据库?件 (*.mdf + *.ldf)直接复制到 MYDB ?录,重新启动SQL,即可?动附加到SQLSERVER中(数据库名 已经存在的不予理会,?志?件、库?件对应不上的不予理会)。

5 数据库只有在绝对路径模式下才可以?软件?带的恢复数据库?具恢复数据库。

Sql server 2008  

https://jingyan.baidu.com/article/948f592434b407d80ef5f97d.html

MSSQL数据库的相关补充

权限介绍

  • sa权限:数据库操作,?件管理,命令执?,注册表读取等 system
  • db权限:?件管理,数据库操作等 users-adminstrators
  • public权限:数据库操作 guest-users

判断权限的语句

  • and 1=(select is_srvrolemember('sysadmin')) //判断是否是系统管理员
  • and 1=(select is_srvrolemember('db_owner')) //判断是否是库权限
  • and 1=(select is_srvrolemember('public')) //判断是否为public权限

调用数据库的代码

<%

     set conn =server.createobject("adodb.connection") 

     conn.open "provider=sqloledb;source=local;uid=sa;pwd=******;database=database-name"

%>

Oracle数据库

Oracle Database,?名Oracle RDBMS,或简称Oracle。是甲??公司的?款关系数据库管理系统。它是在数据 库领域?直处于领先地位的产品。可以说Oracle数据库系统是?前世界上流?的关系数据库管理系统,系统可移植 性好、使??便、功能强,适?于各类?、中、?、微机环境。它是?种?效率、可靠性好的、适应?吞吐量的数 据库解决?案。

?般物流和旅游的站点,会?oracle,政府的站点也有可能,但是需要授权。

PostgreSQL数据库

PostgreSQL是?种特性?常齐全的?由软件的对象-关系型数据库管理系统(ORDBMS),是以加州?学计算机系 开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在?较迟的时 候才出现在商业?站数据库中。PostgreSQL?持?部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外 键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以?许多?法扩展,例如通过增加新 的数据类型、函数、操作符、聚集函数、索引?法、过程语?等。另外,因为许可证的灵活,任何?都可以以任何 ?的免费使?、修改和分发PostgreSQL。

?般国外站点?的?较多?些,搭配php。

相关