攻击者利用 web 应用程序对用户输入验证上的疏忽,在输入的数据中包含对某些数据库系统有特殊的意义的符号和命令,让攻击者有机会直接对后台数据库下达指令
,进而实现对后台数据库乃至整个应用系统的入侵。web
当今数据库模型主要分为两种,即关系型数据库和非关系型数据库。redis
关系型数据库mongodb
把复杂结构归结为简单的二元关系(即二位表格形式),经过SQL结构化查询语句存储数据,保持数据一致性,遵循ACID理论(即原子性,一致性,隔离性,持久性),例如MySQL、SQL Server、Oracle数据库
非关系型数据库安全
被称为NoSQL数据库,在特定的场景下能够发挥不可思议的高效率和高性能,例如:memcaahed、redis、mongodb服务器
SQL注入原理svg
SQL注入攻击的本质,服务器没有过滤用户输入的恶意数据,直接把用户输入的数据看成SQL语句执行,从而影响数据库安全和平台安全。工具
SQL注入的本质性能
对于输入检查不充分,致使SQL语句将用户提交的非法数据看成语句的一部分来执行。网站
两个条件
危害
形成缘由
了解了SQL注入,那么如何实现SQL注入?
SQL注入分为自动化注入
和手工注入
下边的工具是为自动化注入准备的
全适配工具
Sqlmap【属于SQL注入工具】
单适配工具
穿山甲注入软件 ; 海阳顶端注入软件【只适配于PHP注入】
其余
NBSI , 阿D注入【属于ASP \ JSP 注入工具 】 ; Havij ,Sqlid 【属于SQL注入工具】
而后是手工注入的核心
其过程大体能够总结为:
引用一句经典的话:SQL注入其实就是数据和代码抢活干
多言无益,我先摆上一个几年前多数网站都有的漏洞
在网站登录界面输入用户名的时候 直接输入SQL代码:‘whoever’;DROP TABLE users; 其原理: 首先执行第一条,分号为分割符,服务器返回错误,而后执行第二条,会删掉整个user表
后期更新,讲SQL注入的其余实例…