赞
踩
sql注入是一种利用程序中的漏洞,通过恶意构造的sql语句来实现攻击的方法。在web应用程序中,输入表单的数据往往会被传递到服务器,服务器再通过sql语句对数据库进行操作。如果应用程序对用户输入的数据没有进行充分的验证和过滤,攻击者就可以在输入框中输入恶意代码,从而实现sql注入攻击。
简单来说:前后端进行数据交互,在前端往后端传数据的时候,携带恶意的sql语句,如果后端没有充分的验证和过滤的话,就会执行那些恶意的sql语句,从而造成sql注入攻击。
1.报错注入
2.bool注入
3.延时注入
4.宽字节注入
假如有一个网站管理员的用户名为:root 密码为:123456789 ,攻击者注册了一个账号 : root'-- 密码为:123因为账号当中有特殊字符,网站对于特殊字符进行了转义,一次注入在这就行不通了。虽然账号被转义了,但是他在数据库当中任然是以 root'-- 的方式被储存的。现在攻击者开始实施正真的攻击了,他开始对账号修改密码。普通网站修改密码的过程为:先判断用户是否存在------》确认用户以前的密码是否正确--------》获取要修改的密码---------》修改密码成功。 在数据库中 -- 表示注释的意思,后面的语句不会执行,而root后面的那个单引号又与前面的 ' 闭合,而原本后面的那个单引号因为是在 -- 之后,所以就被注释掉了,所以他修改的其实是 root 的密码。
1.文件上传
2.后台编辑模板
3.sql注入写文件
4.命令执行
5.代码执行
6.一些已经爆出来的cms漏洞
sql注入
失效的身份认证和会话管理
跨站脚本攻击XSS
直接引用不安全的对象
安全配置错误
敏感信息泄露
缺少功能及的访问控制
跨站请求伪造 CSRF
使用含有已知漏洞的组件
未验证的重定向和转发
1.对输入的字符进行转义处理
2.对客户端输入进行控制,不允许输入sql注入相关的特殊字符
3.服务端在提交数据库进行sql查询前,对特殊字符进行过滤,转义,替换,删除。
大小写转换法
干扰字符
/ * ! * /
base64编码
unicode
hex
url
ascll
复参数
原理:
使用参数化查询数据库服务器不会把参数的内容仿作sql指令的一部分来执行,是在数据库完成sql执行编译后才套用参数运行。
简单来说:参数化能防止注入的原因在于,语句是语句,参数是参数,参数的值并不一定是语句的一部分,数据库只按语句的语义跑。
%0a、%0b、%a0等 /**/ 等 注释符<>
5.0以下没有information_schema 这个系统表,无法列表名等,只能暴力跑表名。
5.0以下是多用户单操作,5.0以上是多用户多操作
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。