WAF对SQL注入、XSS跨站脚本和PHP注入攻击的检测原理?
SQL(Structured Query Language)注入攻击是一种常见的Web攻击方法,攻击者通过把SQL命令注入到数据库的查询字符串中,最终达到欺骗服务器执行恶意SQL命令的目的。例如,可以从数据库获取敏感信息,或者利用数据库的特性执行添加用户、导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统用户最高权限。
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和Cookie等各种内容。
WAF针对SQL注入攻击的检测原理
WAF针对SQL注入攻击的检测原理是检测SQL关键字、特殊符号、运算符、操作符、注释符的相关组合特征,并进行匹配。
- SQL关键字(如 union,Select,from,as,asc,desc,order by,sort,and ,or,load,delete,update,execute,count,top,between,declare,distinct,distinctrow,sleep,waitfor,delay,having,sysdate,when,dba_user,case,delay 等)
- 特殊符号(’”,; ())
- 运算符(±*/%|)
- 操作符(=,>,<,>=,<=,!=,+=,-=)
- 注释符(–,/**/)
WAF针对XSS攻击的检测原理
WAF对XSS跨站脚本攻击的检测原理主要是针对HTML脚本标签、事件处理器、脚本协议、样式等进行检测,防止恶意用户通过客户端请求注入恶意XSS语句。
- XSS关键字(javascript 、script、object、style、iframe、body、input、form、onerror、alert等);
- 特殊字符(<、>、’、”);
- 外部链接(href=“http://xxx/”,src="http://xxx/attack.js")。
如果业务需要上传富文本,可以用multipart方式上传,不用body方式上传,放在表单里,即使base64编码也会解码。分析业务场景,建议限制引号、尖括号输入。
WAF针对PHP攻击的检测原理
如果请求中包含类似于system(xx) 关键字,该关键字具有PHP注入攻击风险,因此,WAF会拦截了该类请求。