SQL注入之注入检测总结
简介
SQL注入是一种代码注入技术,用于攻击数据驱动的应用程序。 在应用程序中,如果没有做恰当的过滤,则可能使得恶意的SQL语句被插入输入字段中执行(例如将数据库内容转储给攻击者)。
按技巧分类
根据使用的技巧,SQL注入类型可分为
- 盲注
- 布尔盲注:只能从应用返回中推断语句执行后的布尔值
- 时间盲注:应用没有明确的回显,只能使用特定的时间函数来判断
- 报错注入:应用会显示全部或者部分的报错信息
- 堆叠注入:有的应用可以加入
;
后一次执行多条语句 - 其他
按获取数据的方式分类
另外也可以根据获取数据的方式分为3类
inband
利用Web应用来直接获取数据,如报错注入,这类注入都是通过站点的响应或者错误反馈来提取数据。
inference
通过Web的一些反映来推断数据,如布尔盲注,也就是我们通俗的盲注, 通过web应用的其他改变来推断数据。
out of band (OOB)
通过其他传输方式来获得数据,比如DNS解析协议和电子邮件。
常见的注入点
- GET/POST/PUT/DELETE参数
- X-Forwarded-For
- 文件名
判断数据
dbtype = {'MySQL':' AND QUARTER(NULL) IS NULL','Oracle':' AND ROWNUM=ROWNUM','PostgreSQL':' AND 7290::int=7290','Microsoft SQL Server':' AND UNICODE(SQUARE(NULL)) IS NULL','SQLite':' AND LAST_INSERT_ROWID()=LAST_INSERT_ROWID()','Microsoft Access':' AND VAL(CVAR(1))=1','Firebird':' AND (SELECT COUNT(*) FROM RDB$DATABASE WHERE 5869=5869)>0','SAP MaxDB':' AND ALPHA(NULL) IS NULL','Sybase':' AND @@transtate=@@transtate','IBM DB2':' AND 4866=(SELECT 4866 FROM SYSIBM.SYSDUMMY1)','HSQLDB':' AND CASEWHEN(1=1,1,0)=1','Informix':' AND 6899=(SELECT 6899 FROM SYSMASTER:SYSDUAL)','mysql':' and (select count(*) from information_schema.tables)>0','mssql':' and (select count(*) from sysobjects)>0','access':' and (select count(*) from msysobjects)>0'}
或者使用数据库特有函数来判断
MySQL:ascii(),length(),sleep()
Mssql:ascii(),len(),waitfor delay '0:0:1'
Oracle:ascii(),length()
Access:asc(),len()
Sqlite:length(),ascii()和asc()都不存在
注意:
oracle数据库和MySQL数据库的两个函数是一样的,所以MySQL数据库如果没有拦sleep()函数的话,最好多做一下延迟的判断;
oracle数据库一定要带一个表,一般测试都是带dual这个,因为这个一般都有的
我一般用上面的函数来判断,而且一般waf不拦,上面的函数,两个结合使用,那就可以判断出数据库类型了
参考
readthedocs
还有万能的聂聂大佬的小本本
我的博客
欢迎有缘人访问:blog
SQL注入之注入检测总结相关推荐
- SQL注入漏洞的检测与防范技术
提 要 本文从SQL注入的基本概念和注入原理入手,分析总结了SQL注入漏洞的检测及其防范技术措施. 关键词 SQL注入漏洞 检测 防范技术 引 言 近几年来随着计算机网络和WEB技术的飞速 ...
- 服务器怎么修复插件,如何修复服务器状态代码:302由SQL发现我注入了Firefox插件...
我使用SQL Inject Me Firefox插件扫描了登录脚本 根据测试结果,我的脚本容易受到SQL注入的攻击.结果示例 Results: Server Status Code: 302 Foun ...
- SQL注入_1-6_user-agent注入
SQL注入_1-6_user-agent注入 一.概念 User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本.CPU 类型.浏览器及版本. ...
- sql 整改措施 注入_防止SQL注入的五种方法
一.SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库. 二.SQL注入攻击的总体 ...
- sql注入pythonpoco_SQL注入原理与解决方法代码示例
一.什么是sql注入? 1.什么是sql注入呢? 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网 ...
- SQL 注入漏洞(八)时间注入/延时注入
一.时间注入 时间注入又名延时注入,属于盲注入的一种,通常是某个注入点无法通过布尔型注入获取数据,而采用一种突破注入的技巧. 在 mysql 里 函数 sleep() 是延时的意思,sleep(10) ...
- concat mysql sql注入_sql注入-mysql注入基础及常用注入语句
最近在教学中,关于SQL注入,总发现学生理解起来有些难度,其实主要的原因是对各类数据库以及SQL语句不熟悉,今天先介绍mysql注入需要掌握的基础, Mysql内置information_schema ...
- php sql 二次注入,espcms 二次注入一枚
Author:Yaseng 1:通过 $alias 二次注入来控制sql 用户昵称 $alias 从数据库查询出来 未过滤 interface/member.php [php] $db_sql = & ...
- sql注入查找注入点_基本的EJB参考,注入和查找
sql注入查找注入点 在本系列的第一部分中 ,我们介绍了Enterprise JavaBeans v.3.0规范提供的机制,用于定义EJB组件,声明对EJB的引用并通过依赖项注入或程序化JNDI查找将 ...
- sql通用防注入程序php,sql通用防注入系统_PHP教程
sql通用防注入系统 本文章提供这款防sql注入代码是一款php sql 双过滤非法字符的函数,他可以根据用户自定的防sql注入哦,先是过滤一些sql命令,再是就是把post get 过滤一次,最好验 ...
最新文章
- springmvc框架介绍_Java修行第071天 ---SpringMVC(上)
- Asp.Net Core 第02局:Program
- IO多路复用的三种机制Select,Poll,Epoll
- 华为宣布:免费培养2万名Python开发者!
- java string is empty_从源码分析java.lang.String.isEmpty()
- 360浏览器升级_360安全卫士下载|360安全卫士 12.0 最新版
- python3可以运行python2的代码吗_Python同时兼容python2和python3的8个技巧分享
- poj 3468 A Simple Problem with Integers 线段树!!!!
- 如何清理驱动人生的新闻弹窗
- 数据库系统概念第七版(Database System Concepts 7th)课后习题答案英文版
- word图片自动生成域
- teraterm--一款超好用堪比MobaXterm的远程终端连接软件,能解决shell端tab键等自动补全命令功能的缺失问题
- 美图秀秀 web开发图片编辑器
- mysql读写分离实现方式_MySQL实现读写分离的两种经典方案
- 【Java】设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。
- php网站服务器ip地址吗,php 服务器ip地址吗
- 亚马逊多账户操作需要知道哪些规则
- 生产安全事故应急预案
- 郭敬明道歉承认作品抄袭:如何维护互联网作品版权信息
- 安装Fiddler证书到夜神模拟器系统证书中