SQL注入基础原理

       好像有几个月没有写博客了,很抱歉没有续更学习笔记!

       前段时生活状态发生比较大的变化,2019年6月24号刚刚办理好离职手续,然后坐高铁回贵阳领毕业证,又折腾了几天弄档案和毕业证,最后庆幸毕业证如期拿到手,嘻嘻(●'◡'●)!

       好像有点跑题,回归正转接下来我会把这段时间做的笔记整理下发上来,可能学习的前后顺序回有点乱,但不要怕,等到后面这整篇教程写完后,我会写个渗透测试教程汇总的课纲链接,给大家使用。

      本人水平有限,写的烂的地方,大佬们不要喷我.... 我只是个萌新

     接下来我们来了解一哈,什么是SQL注入?

———————————————————————————————————————————————————————

目录

SQL注入基础原理

一、什么是SQL注入


SQL注入基础原理

一、什么是SQL注入

Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击

 

  • Web 程序三层架构
  1. 三层架构(3-tier architecture)

通常意义上就是将整个业务应用划分为:

界面层(User Interface layer)

业务逻辑层(Business Logic Layer)

数据访问层(Data access layer)。

区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构被应用于众多类型的软件开发。 由数据库驱动的Web应用程序依从三层架构的思想也分为了三层:

表示层

业务逻辑层(又称领域层)

数据访问层(又称存储层)

 

拓扑结构如下图所示,借实验楼的网络拓展图: 

SQL注入基础原理_第1张图片

在上图中,例如用户访问实验楼主页进行了如下过程:

在 Web 浏览器中输入 www.shiyanlou.com 连接到实验楼服务器。

业务逻辑层的 Web 服务器从本地存储中加载 index.php 脚本并解析。

脚本连接位于数据访问层的 DBMS(数据库管理系统),并执行 Sql 语句。

数据访问层的数据库管理系统返回 Sql 语句执行结果给 Web 服务器。

业务逻辑层的 Web 服务器将 Web 页面封装成 HTML 格式发送给表示层的 Web 浏览器。

表示层的 Web 浏览器解析 HTML 文件,将内容展示给用户。

 

在三层架构中,所有通信都必须要经过中间层,简单地说,三层架构是一种线性关系

  • SQL注入产生原因及威胁

1、刚刚讲过当我们访问动态网页时, Web 服务器会向数据访问层发起 Sql 查询请求,如果权限验证通过就会执行 Sql 语句。 这种网站内部直接发送的Sql请求一般不会有危险,但实际情况是很多时候需要结合用户的输入数据动态构造 Sql 语句,如果用户输入的数据被构造成恶意 Sql 代码,Web 应用又未对动态构造的 Sql 语句使用的参数进行审查,则会带来意想不到的危险。

2、Sql 注入带来的威胁主要有如下几点

猜解后台数据库,这是利用最多的方式,盗取网站的敏感信息。

绕过认证,列如绕过验证登录网站后台。

注入可以借助数据库的存储过程进行提权等操作

 

———————————————————————————————————————————————————————

我不需要自由,只想背着她的梦

一步步向前走,她给的永远不重

———————————————————————————————————————————————————————

你可能感兴趣的:(渗透测试,SQL注入,前渗透篇,SQL注入)