主页 > 网络知识 > 绕过WAF的常见Web漏洞利用分析(5)

绕过WAF的常见Web漏洞利用分析(5)

 

1605062543_5fab4f8f186d86ca0ee15.png!small?1605062543093

 

(2) <object> 标签,data属性

alert(‘xss’)的base64编码:PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=

payload:

<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4="></object>

 

1605062555_5fab4f9b4a226e141a0ec.png!small?1605062555320

 

文件包含

 

1605062567_5fab4fa7b37036f1b43fe.png!small?1605062567731

 

通过绝对路径、相对路径,稍微加些混淆就能绕过...

 

1605062571_5fab4fab5c87eb4aafb1e.png!small?1605062571534

 

修复建议

我们研究WAF绕过的目的主要是为了警醒网站开发者并不是部署了WAF就可以高枕无忧了,要明白漏洞产生的根本原因,最好能在代码层面上就将其修复。下面给出一些修复建议:

SQL注入

使用预编译sql语句查询和绑定变量:使用PDO需要注意不要将变量直接拼接到PDO语句中。所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。当前几乎所有的数据库系统都提供了参数化SQL语句执行接口,使用此接口可以非常有效的防止SQL注入攻击。

对用户输入的数据格式进行严格要求,比如编号只能输入数字就只能输入数字,只能输入字母就只能输入字符,并且对数据的长度进行限制。

文件上传

文件上传的目录设置为不可执行:只要Web容器无法解析该目录下的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响。在实际的上传应用中,可以将文件上传后放到独立的存储上,做静态文件处理,一方面方便使用缓存加速,降低性能损耗;另一方面也杜绝了脚本执行的可能。

使用随机数改写文件名和文件路径

上传文件时,服务端采用白名单形式限制文件上传的后缀名称,只允许上传“jpg、png、gif、bmp 、doc、docx、rar、zip”等非Web脚本执行文件。

XSS

对用户输入的参数中的特殊字符进行HTML转义或者编码,防止出现有意义的HTML、CSS、JavaScript代码,如:“’、”、<、>、(、=、.”等特殊字符。可以通过Filter过滤器实现全局编码或者转义,也可以在单点对字符串类型数据进行编码或者转义。

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!