SQL注入与防护

一、 Web漏洞

  1. 漏洞产生的原理:
    SQL注入就是通过把SQL命令插入到WEB的表单中,提交它之后,将查血的语句传送到数据库,最终让数据库学习到一些恶意的命令。
  2. 那些地方胡产生问题:一切输入的地方,与数据交互的地方。
    二、 注入分类:
  3. 如何发现SQL注入:通过web漏洞扫描;在参数后面添加错误语句;大量的岁参数Fuzz测试;直觉。
  4. 注入分类:
    a. 数字型注入;
    b. 字符型注入;
  5. 注入提交的方式:
    GET POST COOKIE HTTP头部注入
  6. 注入的方式:
    a. 基于报错注入
    b. 基于布尔的盲注
    c. 基于时间的盲注
    d. 联合查询
    e. 内联查询
    f. 堆叠的查询

三、 MySQL手工注入

  1. 为什么要学习手工注入?
    工具sqlmp
    猜解字段;查看当前数据库;查询所有数据库;查询数据库中的表;查询表明中的所有字段
    四、 sqlmap学习使用
    五、 总结;
  2. POST如何使用sqlmap注入
  3. 如何防护SQL注入
    CDN隐藏真实IP地址;通过安全幻术进行过滤;对数据库最小权限设置;服务器针对性的WAF防火墙

原文地址:https://blog.51cto.com/yaoyao1314520/2391362

时间: 2024-10-09 02:18:52

SQL注入与防护的相关文章

sql注入的防护

一.严格的数据类型 在Java,C#等高级语言中,几乎不存在数字类型注入,而对于PHP,ASP等弱类型语言,就存在了危险. 防御数字型注入相对简单,如果不需要输入字符型数据,则可以用is_numeric().ctype_digit()等函数判断数据类型. 二.特殊字符转义 字符型注入一般需要单引号闭合,首先想到的应对方法,就是字符转义. 在PHP中可用addslashes()函数进行转义字符,可以将单双引号.反斜线及NULL加上反斜线转义.还可以通过过滤关键字,如:select,union se

【PHP代码审计】 那些年我们一起挖掘SQL注入 - 8.全局防护盲点的总结下篇

0x01 背景 现在的WEB应用对SQL注入的防护基本都是判断GPC是否开启,然后使用addlashes函数对单引号等特殊字符进行转义.但仅仅使用这样的防护是存在很多盲点的,接上篇http://www.cnbraid.com/2016/05/10/sql6/,这里介绍另外两种情况.盲点如下:①FILES注入,全局只转义掉GET.POST等传来的参数,遗漏了FILES:②变量覆盖,危险函数:extract().parse_str().$$. 0x02 漏洞分析 FILES注入 FILES注入一般情

【PHP代码审计】 那些年我们一起挖掘SQL注入 - 7.全局防护盲点的总结上篇

0x01 背景 现在的WEB应用对SQL注入的防护基本都是判断GPC是否开启,然后使用addlashes函数对单引号等特殊字符进行转义.但仅仅使用这样的防护是存在很多盲点的,比如最经典的整型参数传递,也即被带入数据库查询的参数是整型.数组中的key没过滤被带入了查询以及全局过滤了GET.POST但没过滤SERVER或COOKIE引发的注入.所以看似有全局防护,实则隐藏了很多“后门”-盲点如下:①注入点类似id=1这种整型的参数就会完全无视GPC的过滤:②注入点包含键值对的,那么这里只检测了val

报错型sql注入原理分析

0x00:前言 关于sql注入,经久不衰,现在的网站一般对sql注入的防护也相对加强了,2016年的渗透测试报告中,出现最多的是xss(跨站脚本攻击)和明文传输等,但是对sql注入的利用方式,也相对成熟,详细了解sql注入,可以参考之前的文章.http://wt7315.blog.51cto.com/10319657/1828167 今天主要分享下sql注入中的报错型,在大多网上的文章会列出类似于公式的句子,却没解释为什么要使用这样的函数,为什么使用这个函数会出现报错而导致sql注入. 0x01

那些年我们一起挖掘SQL注入 - 6.全局防护Bypass之一些函数的错误使用

0x01 背景 PHP程序员在开发过程中难免会使用一些字符替换函数(str_replace).反转义函数(stripslashes),但这些函数使用位置不当就会绕过全局的防护造成SQL注入漏洞. 0x02 漏洞分析 str_replace函数的错误使用 第一种情况是写程序时会使用str_replace函数将参数中的单引号.括号等字符替换为空,这样在一些双条件查询的情况就会引发注入问题.缺陷代码如下: <?phprequire_once('common.php');$conn = mysql_co

那些年我们一起挖掘SQL注入 - 2.全局防护Bypass之UrlDecode

0x01 背景 现在的WEB程序基本都有对SQL注入的全局过滤,像PHP开启了GPC或者在全局文件common.php上使用addslashes()函数对接收的参数进行过滤,尤其是单引号.遇到这种情况我们就需要找一些编码解码的函数来绕过全局防护,这篇文章讲urldecode()的情况,同样大牛请自觉绕道~漏洞来源于乌云:http://www.wooyun.org/bugs/wooyun-2014-050338 0x02 环境搭建 看背景我们使用了低版本的easytalk程序,版本为X2.4①源码

Oracle数据库SQL注入浅析与防护建议

作者:安华金和 思成 SQL注入是在信息安全领域一种常见的攻击手段.但是大部分人理解的SQL注入就是通过把SQL命令插入到Web表单提交或在输入域名.页面请求时加入的查询字符串,最终达到欺骗服务器执行偏离预期的SQL命令.这种情况下的SQL注入,引发原因基本是网页对用户输入的信息缺乏校验而导致. 很多人认为只有网页才可以进行 SQL 注入,才有注入点.这是一个普遍对SQL 注入的错误认识.SQL注入严格来讲应该叫做数据库SQL注入.SQL注入的最终目的是获取数据库中存储的敏感信息.事实上,任何可

【PHP代码审计】 那些年我们一起挖掘SQL注入 - 3.全局防护Bypass之Base64Decode

0x01 背景 现在的WEB程序基本都有对SQL注入的全局过滤,像PHP开启了GPC或者在全局文件common.php上使用addslashes()函数对接收的参数进行过滤,尤其是单引号.同上一篇,我们需要找一些编码解码的函数来绕过全局防护,本篇介绍base64decode()的情况.漏洞来源于乌云:http://www.wooyun.org/bugs/wooyun-2014-050338 0x02 环境搭建 看背景我们使用了低版本的easytalk程序,版本为X2.4①源码我打包了一份:htt

【PHP代码审计】 那些年我们一起挖掘SQL注入 - 6.全局防护Bypass之一些函数的错误使用

0x01 背景 PHP程序员在开发过程中难免会使用一些字符替换函数(str_replace).反转义函数(stripslashes),但这些函数使用位置不当就会绕过全局的防护造成SQL注入漏洞. 0x03 漏洞分析 str_replace函数的错误使用 第一种情况是写程序时会使用str_replace函数将参数中的单引号.括号等字符替换为空,这样在一些双条件查询的情况就会引发注入问题.缺陷代码如下: <?phprequire_once('common.php');$conn = mysql_co