一、什么是SQL注入漏洞
攻击者利用Web应用程序对用户输入验证上的疏忽,在输入的数据中包含对某些数据库系
统有特殊意义的符号或命令,让攻击者有机会直接对后台数据库系统下达指令,进而实现对后
台数据库乃至整个应用系统的入侵

二、SQL注入原理
服务端没有过滤用户输入的恶意数据,直接把用户输入的数据当做SQL语句执行,从而影响
数据库安全和平台安全。

两个条件
用户能够控制输入
原本程序要执行的SQL语句,拼接了用户输入的恶意数据

三、SQL注入过程

①攻击者访问有SQL注入漏洞的网站,寻找注入点
②攻击者构造注入语句,注入语句和程序中的SoL语句结合生成新的sq1语句
③新的sql语句被提交到数据库中进行处理
④数据库执行了新的SQL语句,引发SQL注入攻击

四、SQL注入带来的危害
绕过登录验证:使用万能密码登录网站后台等
获取敏感数据:获取网站管理员帐号、密码等
文件系统操作:列目录,读取、写入文件等
注册表操作:读取、写入、删除注册表等
执行系统命令:远程执行命令

如通过在用户名处传入参数(' or 1=1 -- )进行万能密码登录(注意空格)

输入字符
formusr =' or 1=1--
formpwd = anything
实际的查询代码

SELECT*FROM users WHERE username =' or 1=1-- AND password ='anything'

五、判断一个HTTP请求是否存在SQL注入的方式
经典:and 1=1 | and 2>1 | or 1=1 |or 1<1
数据库函数:sleep(4)=1 | length(user())>3
特殊符号:单引号(')双引号(")

六、SQL注入分类
按照注入点类型分类
数字型(整型)注入
字符型注入

搜索型注入
按照注入技术(执行效果)分类
基于布尔的盲注 即可以根据返回页面判断条件真假的注入。

基于时间的盲注 即不能根据页面返回内容判断任何信息,用条件语句查看时间延退语句是否执行

基于报错的注入 即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中
联合查询注入       可以使用union的情况下的注入
堆查询注入           同时执行多条语句的注入。

七、SQL注入漏洞形成的原因
动态字符串构建引起
不正确的处理转义字符(宽字节注入)
不正确的处理错误(报错泄露信息)
不正确的处理联合查询
不正确的处理多次提交(二次注入)

后台存在的问题
后台无过滤或者编码用户数据
数据库可以拼接用户传递的恶意代码

错误处理不当
详细的内部错误消息显示给用户或攻击者
错误信息可以直接给攻击者提供下一步攻击帮助

不安全的数据库配置
>默认账户:
SQLServer“sa”作为数据库系统管理员账户;
MySQL使用“root”和“anonymous”用户账户;
Oracle则在创建数据库时通常默认会创建SYS、SYSTEMSDBSNMP和OUTLN账户。

八、权限:
问题:系统和数据库管理员在安装数据库服务器时允许以rootsSYSTEM或Administrator特权系统用户账户身份执行操作。
正确方法:应该始终以普通用户身份运行服务器上的服务,降低用户权限,将用户权限只限于本服务。

九、寻找SQL注入点
(1)GET方法
一种请求服务器的HTTP方法,使用该方法时,信息包含在URL中
点击一个链接时,一般会使用该方法
GET请求方法的格式
?text=value1&cat=value2&num=value3...
修改方法
浏览器的导航栏中直接修改即可操纵这些参数
HackBar插件

(2)POST方法
POST是一种用于向Web服务器发送信息的HTTP方法、数据信息无法在URL中看到、可以发送字节大的数据

修改POST包方法
浏览器修改扩展(Hackbar)、代理服务器(Burpsuite)

其它注入点数据
Cookie、Host、UserAgent

关于注入点的总结
只要后台接收前端输入的数据,并且未对数据进行过滤处理,最后直接进入到数据库中,从而都能构成威胁。

十、手工注入过程
(1)判断是否存在注入点;
(2)判断字段长度(字段数)
(3)判断字段回显位置;
(4)判断数据库信息;
(5)查找数据库名;
(6)查找数据库表;
(7)查找数据库表中所有字段以及字段值;
(8)猜解账号密码;
(9)登录管理员后台。

十一、自动化注入工具
(1)SQL注入工具
Salmap、 Havij、Sqlid
(2)ASP\jSP注入工具
NBSI 阿D注入软件 明小子注入软件
(3)PHP注入工具
穿山甲注入软件 海阳顶端注入软件

SQL注入 ——sql数据库操作基础(一)_Gjqhs的博客-CSDN博客

SQL注入——SQLmap的进阶使用(十五)_Gjqhs的博客-CSDN博客

SQL注入-SQL注入的WAF绕过(十六)_Gjqhs的博客-CSDN博客

...

更多包括而不限于SQL注入的文章,关注我全部带走吧(≧∇≦)ノ

SQL注入——SQL注入漏洞利用(零)(值得收藏)相关推荐

  1. php Wrapper LFI,LFI漏洞利用总结(转载)

    主要涉及到的函数 include(),require().include_once(),require_once() magic_quotes_gpc().allow_url_fopen().allo ...

  2. /plus/recommend.php sql注入漏洞,DedeCMS 全版本通杀SQL注入漏洞利用代码及工具 -

    DedeCMS 全版本通杀SQL注入漏洞利用代码及工具 目前官方最新版已修复该漏洞 V5.7.37 GBK正式版20140228常规更新补丁 http://www.dedecms.com/pl/ ht ...

  3. kali linux扫描sql注入,Kali Linux系统利用DVWA靶场进测试SQL注入漏洞:

    手工盲注:手工盲注分为基于布尔的盲注.基于时间的盲注以及基于报错的盲注,手工盲注步骤:1.判断是否存在注入,注入是字符型还是数字型;2.猜解当前数据库名;3.猜解数据库中表名;4.猜解表中的字段名;5 ...

  4. pikachu SQL注入 (皮卡丘漏洞平台通关系列)

    目录 一.官方的戏精引言 二.仙女在认真闯关 一重天 数字型注入 二重天 字符型注入 三重天 搜索型注入 四重天 xx型注入 五重天 insert/update注入 (1)insert注入 (2)up ...

  5. SQL注入之什么是加密注入|二次漏洞注入|DNSlog注入

    加密注入.二次漏洞注入.DNSlog注入 加密注入: 什么是加密注入??下面将由一个例子阐述: 以sqlilabs-less-21为例 1.在登录界面输入账户密码提交抓包 2.在抓到这条数据,将uma ...

  6. sql注入的攻击与利用

    前言 本文叙述了在Mysql.MSsql.Oracle.PostgreSQL平台下的sql注入探测方式与利用,作为个人笔记,没有框架以及中间件的参与. 文章的内容并不全面,日后有接触新的方法会有补充. ...

  7. SQL 注入漏洞(八)时间注入/延时注入

    一.时间注入 时间注入又名延时注入,属于盲注入的一种,通常是某个注入点无法通过布尔型注入获取数据,而采用一种突破注入的技巧. 在 mysql 里 函数 sleep() 是延时的意思,sleep(10) ...

  8. mysql %3c%3e sql优化_SQL注入技术和跨站脚本攻击的检测(2)

    2.3 典型的 SQL 注入攻击的正则表达式 /\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix 解释: \w* - 零个或多个字符或者下划线 ...

  9. SQL注入-SQL注入的WAF绕过(十六)

    实验目的 普及熟悉利用重写等方式绕过WAF关键字过滤.以实现SQL注入的方法.PS:面试时不要说打WAF靶场什么东西,就说重复大小写编码什么之类的 基本概念 WAF(WebApplicationFir ...

最新文章

  1. 视觉SLAM前端特征检测与跟踪的思考
  2. 招人信息,请斟酌后联系偶!
  3. Java如何接收前端传来的多层嵌套的复杂json串
  4. 网易云信SDK V3.1.0版本发布啦
  5. just函数python_提升 Python 性能 Numba 与 Cython
  6. python 进程池阻塞和非阻塞_python 之 并发编程(进程池与线程池、同步异步阻塞非阻塞、线程queue)...
  7. C#串口通信工作笔记0001---上位机开发_嵌入式_串口助手_收发数据开发
  8. json for java
  9. c++求矩阵的秩_利用Python矩阵求逆、特征值及特征向量
  10. 【小窍门tip】oracle sequence 修改增量值
  11. C#万年历dll插件
  12. 公众号常用的排版软件有哪些?
  13. Windows下安装Ruby及配置镜像源
  14. 百度cdn几时能入币_影响汇率的因素有哪些
  15. 解决can't find -lGL的问题
  16. Highmaps 经纬度转换为svg图上坐标
  17. 全国中小学教师计算机水平考试,中小学教师计算机水平考试笔试试题
  18. 【5G系列】PDCP (Packet Data Convergence Protocol)协议详解
  19. 最小生成树模板 POJ——1258
  20. linux磁盘变为raw,磁盘变成RAW格式的两种解决办法

热门文章

  1. 高性能mysql 第六章_第六章 查询性能优化
  2. python数据科学指南是什么_《Python数据科学指南》——导读
  3. 能用python做信号处理吗_Python中的信号处理
  4. STM32跑分?看看你的能跑多少分!
  5. HDLBits答案(4)_如何避免生成锁存器?
  6. python怎么输出一个数组_python中实现将多个print输出合成一个数组
  7. nodejs redis 过期时间_别在为Redis面试而烦恼了?看完暴答【面试管】
  8. java 对象的解释过程
  9. GO语言-基础语法:循环
  10. mac apache服务器