文档首页/ Web应用防火墙 WAF/ 常见问题/ 产品咨询/ WAF对SQL注入、XSS跨站脚本和PHP注入攻击的检测原理?
更新时间:2024-06-07 GMT+08:00

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会拦截了该类请求。