注入攻击的本质:将用户输入的数据当做代码执行。
有2个限制条件:
1、用户能够控制输入。
2、原本程序要执行的代码,拼接了用户输入的数据后进行执行。
定义:用户输入的数据被当做SQL语句执行。
以下面的PHP语句为例。
$query = "select * from users where id = $_GET['id']";
由于这里的参数ID可控,且带入数据库查询,所以非法用户可以任意拼接SQL语句进行攻击。
当然,SQL注入按照不同的分类方法可以分为很多种,如报错注入、盲注、union注入等。
判断注入点的方法 :1、and 1=1 正常回显 ,and1=2则页面显示不正常。说明存在SQL注入。
2、页面后面加 '  ,看是否报错。
3、如果是数字型传参,可以尝试-1.不要+1。因为“+”可能会被当做空格。
传参的数据后页面报错,一般都存在注入
显错注入-联合查询(MySQL数据库)的基本流程:
是否存在注入点--》猜解字段数-》联合查询寻找输出点-》然后去系统自带库查询表名、字段名--》查询我们需要的字段的值。
 
 
 
检测SQL注入最古老的办法:?id=1 and 1=2
 
加单引号的话判断是否存在SQL注入不精准
但and 1=2容易被拦截,可改为and 1=3、1<0等等。或者用id=1 or sleep(5)
联合查询:将2个查询的数据输出到一起
要求:字段数必须相同。当前表的字段数order by 排序
 
输入order by 3页面消失了,说明存在2个字段
 
数据表里面不是说有数据都要输出。(选择性输出,由开发控制)
 
正常而言,一个网站用一个数据库。网站有时候如果数据库查询多行数据,它只会输出一行。
MYSQL在5。0以上的版本比老版本多了一个系统自带库information_schema,其中保存着。若低于5.0只能通过爆破。

SQL注入的原理及分析的更多相关文章

  1. Sql注入基础原理介绍

    说明:文章所有内容均截选自实验楼教程[Sql注入基础原理介绍]~ 实验原理 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击, ...

  2. 【荐】PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

    我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...

  3. PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

    我们都知道,只要合理正确使用PDO(PDO一是PHP数据对象(PHP Data Object)的缩写),可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_ ...

  4. 【漏洞复现】CVE-2022–21661 WordPress核心框架WP_Query SQL注入漏洞原理分析与复现

    影响版本 wordpress < 5.8.3 分析 参考:https://blog.csdn.net/qq_46717339/article/details/122431779 在 5.8.3 ...

  5. 【渗透课程】第五篇-SQL注入的原理

    哈哈哈,讲到注入了.我想给大家讲注入的原理.这个我们前面的前言篇就说过,所谓的SQL注入就是,绕过数据库验证机制直接执行SQL语句.怎么说呢,我们先讲一个概念吧! 网站和网页的区别 单纯的网页是静态的 ...

  6. SQL注入的原理及一般步骤

    原理 SQL注入是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后该字符串传递到SQL Server的实例以进行分析和执行.任何构成SQL语句的过程都应进行注入检查,因为SQL Serv ...

  7. SQL注入的原理以及危害

    SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符 ...

  8. 初级安全入门——SQL注入的原理与利用

    工具简介 SQLMAP: 一个开放源码的渗透测试工具,它可以自动探测和利用SQL注入漏洞来接管数据库服务器.它配备了一个强大的探测引擎,为最终渗透测试人员提供很多强大的功能,可以拖库,可以访问底层的文 ...

  9. 简单说说mybatis是防止SQL注入的原理

    mybatis是如何防止SQL注入的 1.首先看一下下面两个sql语句的区别: <select id="selectByNameAndPassword" parameterT ...

随机推荐

  1. Fiddler一次性发多个请求

    Fiddler一次发送多个请求 选中某个请求: 选中 : Raw, 将request数据拷出: 包含请求header和request body 替换request header里面的ASP.NET_S ...

  2. DC-DC芯片

    KIS-3R33S:同步整流7V-24V转5V/3A DC-DC降压模块 稳压电源模块 效率超过LM2576

  3. C语言-断言

    1 作用: 断言常做语言处理的高级形式,自动处理软件隐藏很深其且它手段不易发现的错误,快速进行异常定位.同时这也是软件单元测试必须的技术. 2 使用范围: 2.1放在函数入口对入口参数进行合法性检查( ...

  4. 研究Zookeeper的原理(二)

    阅读声明:以下内容是结合网上材料及工作内容所写的个人理解,如有不当,欢迎大家指正~~~谢谢啦 一.ZooKeeper的选举机制.FailOver机制 我们知道ZooKeeper在分布式环境中协调服务, ...

  5. 解决方法:Could not load file or assembly 'WebGrease, Version=1.5.1.25624, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.

    最近使用VS2015调试ASP.NET 程序遇到了该问题: 在网上找了很多方法都不能解决,最后自己解决了,方法如下: 在project -> NuGet管理中找到已安装的所有程序:将Web Op ...

  6. 「JSOI2014」学生选课

    「JSOI2014」学生选课 传送门 看到这题首先可以二分. 考虑对于当前的 \(mid\) 如何 \(\text{check}\) 我们用 \(f_{i,j}\) 来表示 \(i\) 对 \(j\) ...

  7. Swift3.0-基础知识

    本文对Swift做一个从OC的角度的基础知识简单概要. Swift OC 说明 let.var const 在OC中不用const声明的常量,都认为是变量 Float.Double CGFloat   ...

  8. PAT T1001 Battle Over Cities-Hard Version

    按题意枚举每个点,建立缺少该点情况下的最小生成树,取权值最大的~ #include<bits/stdc++.h> using namespace std; ; const int inf= ...

  9. 【转】python创建和删除文件

    #!/usr/bin/python #-*-coding:utf-8-*- #指定编码格式,python默认unicode编码 import os directory = "./dir&qu ...

  10. Java基础 -4.2

    Switch分支语句 switch是一个开关语句,它主要是根据内容来进行判断的,需要注意的是switch中可以判断的只能够是数据(int.char.枚举.String)而不能够使用逻辑判断 publi ...