免责声明

该文章仅用于信息防御技术的交流和学习,请勿用于其他用途; 在未得到网站授权前提下,禁止对政府、事业单位、企业或其他单位网站及系统进行渗透测试;技术是把双刃剑,请遵纪守法,做一名合格的白帽子安全专家,为国家的网络安全事业做出贡献

SQL注入-防御绕过

WAF概念

WAF是英文”Web Applicaton Firewall“的缩写,中文意思是”Web应用防火墙“,也称为”网站应用级入侵防御系统“。 ​ WAF是集WEB防护、网页保护、负载均衡、应用交付于一体的WEB整体安全防护设备。WAF需要部署在Web服务器的前面,串行接入,不仅在硬件上性能要求高,而且不能影响web服务,所以HA功能、Bypass功能都是必须的,而且还要与负载均衡、WebCache等Web服务器入侵的检测能力。常见的实现形式包括代理服务、特征识别、算法识别、模式匹配。

WAF分类

安全防护软件划分为:云WAF、硬件WAF、主机防护软件、软件waf等。 在攻防实战中,我们往往需要掌握一些特征,比如服务器、数据库、编程语言等等,以便更灵活的去构造payload,从而绕过安全防护进行漏洞利用

SQL注入绕过常见方式

1、绕过空格(注释符/**/,%a0)
2、括号绕过空格
3、引号绕过(使用十六进制)
4、逗号绕过(limit使用from或者offset)(substr使用from for属于逗号)
5、比较符号(< >)绕过(使用greatest())
6、or and 绕过
7、绕过注释符号(#,--)过滤
8、= 绕过 like
9、绕过union,select,where等
(1)使用注释符绕过
(2)使用大小写绕过
(3)内联注释绕过
(4)双关键字绕过
10、通用绕过(编码)
11、等价函数绕过
12、宽字节绕过

大小写绕过

使用注释绕过

空格绕过

垃圾数据绕过

跟换提交方式绕过

使用hackbar插件

双写绕过

思路讲解: ··举例:?id=1 ··访问?id=1 and 1=1 页面报错 1=1,发现and被过滤,这时候尝试使用双写的方式绕过,例如:anandd 1=1(切记不是 aa nn dd,是 an and d)变成了and,所以这时传输数据库的语句时and 1=1,如果当访问order by错误信息为‘der by’这发现过滤了or,这双写or,后面注入和union注入的一致。 其他关键字也是,如果过滤select关键字,可以使用selselectect,双写绕过。

双写绕过始终都是头跟尾双写,例:sel select ect、p php hp,过滤后变成sel ect、p hp

HTTP参数污染绕过

思路讲解: HTTP参数污染,简单的讲就是给相同名称参数附上两个或者两个以上的值,导致应用程序以意外方式解释而出现漏洞,现在的HTTP标准没有提及在遇到相同参数多个赋值时应该怎样处理,因此web程序组件在遇到这类问题时采取的方法也不完全相同。

如以下案例: search.php?id=110&id=911 这就是典型的相同参数,多个赋值的情况,针对于这种情况,由于HTTP标准没有规定如何处理,是由Werserver来护理这个事情,但是每个Webserver处理时又不相同,针对于这种情况我们可以进行攻击。 语法:?id=1&id=2' and 1=1 --+

URL编码绕过

一次不行,可使用Burp Suite多次编码

等价函数绕过

思路讲解: hex()、bin() ==> ascii() sleep() ==>benchmark() concat_ws ==> group_concat() mid()、substr() ==> substring() @@user ==>user() @@datadir ==> datadir()

举例:substring()和substr()无法使用时: ?id=1+and+ascii(lower(min((select+pwd+from+users+limit+1,1),1,1))) = 74 或者:substr((select'passwordd'),1,1)=0x70 strcmp(left('password',1),0x69) = 1 strcmp(left('password',1),0x70)=0 strcmp(left('password',1),0x71) = -1

云锁及安全狗绕过

绕过原理与上面类似,利用各种绕过方法即可实现云锁绕过和安全狗绕过

SQL注入防御

1、普通用户与系统管理员用户的权限要有严格区分。 在权限设计中,对于终端用户,即应用软件的使用者,没有必要给他们数据库对象的建立,删除等权限。那么即使在它们使用SQL语句中带有嵌入式的恶意代码,由于其用户权限的限制,这些代码也将无法被执行。故应用程序在设计的时候,最好把系统管理员的用户与普通用户区分开来。如此可以最大限度的减少注入式攻击对数据库带来的危害;

2、强迫使用参数化语句。 如果在编写SQL语句的时候,用户输入的变量不是直接嵌入到SQL语句。而是通过参数来传递这个变量的话,那么就可以有效的防治SQL注入式攻击。

3、加强对用户输入的验证。 总体来说,防止SQL注入式攻击可以采用两种方法,一是加强对用户输入的内容的检查与验证;二是强迫使用参数化语句来传递用户输入的内容。

4、多层环境如何防治SQL注入式攻击? 在多层应用环境中,用户输入的所有数据都应该在验证之后才能被允许进入到可信区域。未通过验证过程的数据应被数据库拒绝,并向上一层返回一个错误信息。实现多层验证。

5、增加专业的WAF设备

SQL注入10之防御绕过相关推荐

  1. Kali Linux Web 渗透测试视频教程—第十一课-扫描、sql注入、上传绕过

    Kali Linux Web 渗透测试视频教程-第十一课-扫描.sql注入.上传绕过 文/玄魂 原文链接:http://www.xuanhun521.com/Blog/2014/10/25/kali- ...

  2. sql注入关于waf的绕过

    sql注入关于waf的绕过 关于Waf绕过可大致分为三类: 一.白盒绕过 二.黑盒绕过 1.架构层面绕过waf 1.1.寻找源网站绕过waf检测 1.2.通过同网段绕过waf防护 2.资源限制角度绕过 ...

  3. sql注入(三)绕过方法及防御手段

    一.sql注入的绕过方法 1.注释符过滤绕过 常用的注释符有: 1)-- 注释内容 2)# 注释内容 3)/* 注释内容 */ 绕过方法 构造闭合: ?id=1' and sql语句 and '1'= ...

  4. SQL注入分类、防御

    一.SQL注入分类 按数据类型分 数字类型 后台语句可能为: $id=$_POST['id'] select user,password from users where id=$id 字符类型 $i ...

  5. SQL注入原理与防御姿势(问答方式 描述)

    SQL注入原理? 通过把SQL命令插入到Web表单提交或者输入域名或者页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令 SQL注入危害? 数据库层面 非法读取.篡改.添加.删除数据库中数据 ...

  6. 【SQL注入技巧拓展】————4、高级SQL注入:混淆和绕过

    [0×01] – 简介 大家好,这是一篇致力于文档化我们所从事的高级SQL注入技术的文章. 本文将要揭示能用于现实CMSs和WAFs程序中的高级绕过技术和混淆技术.文中所提到的SQL注入语句仅仅是一些 ...

  7. SQL注入攻击及防御 手动注入+sqlmap自动化注入实战(网络安全学习12)

    CONTENTS 1 项目实验环境 2 SQL注入概述 2.1 SQL注入简介 2.2 SQL注入的危害 3 SQL基础回顾 3.1 联合查询union 3.2 information_schema数 ...

  8. SQL注入一些过滤及绕过总结

    前言: 前几天做了几道SQL注入的题,一上去就遇到这样那样的过滤,弄得我很难受,所以这里写一篇关于过滤一些的总结. 1.过滤关键字 过滤关键字应该是最常见的过滤了,因为只要把关键字一过滤,你的注入语句 ...

  9. B站小迪安全笔记第十八天-SQL注入堆叠及waf绕过注入

    堆叠查询注入 Stacked injections(堆叠注入)从名词的含义就可以看到应该是一堆 sql 语句(多条)一起执行.而在真实 的运用中也是这样的, 我们知道在 mysql 中, 主要是命令行 ...

最新文章

  1. 远程桌面服务坏了如何修复
  2. 用美颜照当广告犯法!要么就标注“照骗”,挪威针对明星网红出手了
  3. UITableView样式和UITableViewCell样式
  4. C++ Primer 5th笔记(chap 14 重载运算和类型转换)递增和递减运算符
  5. Redis 总结精讲 看一篇成高手系统 四
  6. LoadRunner测试下载功能点脚本(方法一)
  7. Detection of Extraterrestrial KMP匹配 重复k次子串 好题
  8. SSH网上商城:回首网上商城
  9. Grafana 仪表盘和图形编辑器
  10. Python 的版本与虚拟环境管理
  11. php怎么文字加粗体代码,html字体加粗用css设置文字粗体样式
  12. matlab求解全微分函数,Matlab求解一元函数,再求全微分的错误,表达式复杂不会........
  13. 如何调整gif动图的速度?1分钟在线调节gif动图速度
  14. 从贫穷到富有——我的修行之路
  15. Bean with name ‘XX‘ has been injected into other beans [XX,XX] in its raw version.......... 错误分析及解决
  16. Java网课基础笔记(25)19-08-07
  17. 防刷新网站访问量计数器
  18. rest-work-eat-study-rest-work-eat or rest-rest-work-work-eat-eat..
  19. 井字游戏(shell高级版)
  20. 粗读Image Projection Network: 3D to 2D Image Segmentation in OCTA Images

热门文章

  1. 8.6 【实例】文件切割器开发实例
  2. 与多家奥运协会达成合作  用影像记录中国体育  IC photo布局“奥运计划”
  3. rasa_nlu_chi 测试不成功 “error“: “y should be a 1d array, got an array of shape (1, 5) instead.
  4. html5让字以打字形式出现,基于 HTML5的打字练习系统设计与实现
  5. 重装系统会怎么样有影响吗
  6. 安卓基于adb命令使用和安装apk程序,程序支持自启动
  7. Derek Sivers:宁可行动起来以验证理论(译)
  8. JSP指令--Page指令
  9. 【.net+jquery】绘制自定义表单(含源码)
  10. 数字图像处理:OpenCV直方图均衡算法研究及模拟实现