SQL注入学习笔记

SQL注入是在学习网络安全时最先学到的一个漏洞知识点,难度不大,记录一些知识点,以后可以快速回顾。

首先,SQL是一门用来访问和操作数据库系统的标准计算机语言,而常见的数据库系统有MySQL, MS Access, MS SQL Server, Oracle 等等.
SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过Web应用程序来执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,导致非法语句执行.简单的讲,就是让用户随意输入内容是可能出现问题的.

但是SQL注入有什么用呢?首先,SQL注入和一般的SQL查询一样,可以读取数据库内容,进而获取管理员后台账号密码,然后进入后台,读取文件,甚至可以写入Webshell.
在一般的网站上都会有如下的登录页面,页面上会有两条输入框,一行是用户名也就是常说的账号,一行是密码。那么我们正常登录时,输入账号密码,点击登录就会发送验证请求到服务器


大致的SQL语句为:

select id from users where username= 'lm7' and password = '123'

而对于这种简单的SQL语句,我们常用的SQL注入有:

' or 1=1 --

组装好的SQL语句是:

select id from users where username=' ' or 1=1 -- and password = '123'

那么在这条语句中的 '-- ' 将会注释掉后面的' and password ='123' ' 因此被执行的只有

select id from users where username ='' or 1=1

而根据' or 1=1 '的判断条件可以知道where后面的运算结果是1,因此将会从users表中查询所有的id,

那么如何找到SQL注入漏洞呢?只能说在有输入的地方都有可能存在注入漏洞.而一般有以下三种情况:

  1. GET请求:该请求在URL中发送参数
  2. POST请求:数据被包含在请求体中
  3. 其他注入型数据: HTTP请求的其他内容也可能会触发注入漏洞,例如在COOKIE中、HOST头中等

最后分享以下SQL注入流程图


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 介绍 JDBC: 全称 Java Database Connectivity 是 Java 访问数据库的 API,...
    高级java架构师阅读 549评论 0 1
  • 什么是SQL注入攻击?引用百度百科的解释: sql注入_百度百科: 所谓SQL注入,就是通过把SQL命令插入到We...
    leftshine阅读 5,012评论 0 24
  • 随着当今世界网络技术与信息技术高速发展,Web应用程序具有界面统一,使用简单,易于维护,扩展性好,共享度高等优先。...
    高美丽阅读 4,081评论 0 4
  • [SQL注入攻击] SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式...
    James黄杰阅读 2,741评论 0 30
  • 1.过滤URL中的一些特殊字符,动态SQL语句使用PrepareStatement.. 2.注入的方式就是在查询条...
    Explorer_Mi阅读 1,322评论 0 0