struts|Web常见的漏洞描述与修复方案

struts|Web常见的漏洞描述与修复方案

1.SQL注入漏洞描述Web程序中对于用户提交的参数未做过滤直接拼接到SQL语句中执行 , 导致参数中的特殊字符破坏了SQL语句原有逻辑 , 攻击者可以利用该漏洞执行任意SQL语句 , 如查询数据、下载数据、写入webshell、执行系统命令以及绕过登录限制等 。

修复建议代码层最佳防御sql漏洞方案:使用预编译sql语句查询和绑定变量 。
【struts|Web常见的漏洞描述与修复方案】(1)使用预编译语句 , 使用PDO需要注意不要将变量直接拼接到PDO语句中 。 所有的查询语句都使用数据库提供的参数化查询接口 , 参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中 。 当前几乎所有的数据库系统都提供了参数化SQL语句执行接口 , 使用此接口可以非常有效的防止SQL注入攻击 。
(2)对进入数据库的特殊字符(’”<>&*;等)进行转义处理 , 或编码转换 。
(3)确认每种数据的类型 , 比如数字型的数据就必须是数字 , 数据库中的存储字段必须对应为int型 。
(4)数据长度应该严格规定 , 能在一定程度上防止比较长的SQL注入语句无法正确执行 。
(5)网站每个数据层的编码统一 , 建议全部使用UTF-8编码 , 上下层编码不一致有可能导致一些过滤模型被绕过 。
(6)严格限制网站用户的数据库的操作权限 , 给此用户提供仅仅能够满足其工作的权限 , 从而最大限度的减少注入攻击对数据库的危害 。
(7)避免网站显示SQL错误信息 , 比如类型错误、字段不匹配等 , 防止攻击者利用这些错误信息进行一些判断 。
(8)过滤危险字符 , 例如:采用正则表达式匹配union、sleep、and、select、load_file等关键字 , 如果匹配到则终止运行 。
2.XSS漏洞描述1、Web程序代码中对用户提交的参数未做过滤或过滤不严 , 导致参数中的特殊字符破坏了HTML页面的原有逻辑 , 攻击者可以利用该漏洞执行恶意HTML/JS代码、构造蠕虫、篡改页面实施钓鱼攻击、以及诱导用户再次登录 , 然后获取其登录凭证等 。
2、XSS攻击对Web服务器本身虽无直接危害 , 但是它借助网站进行传播 , 对网站用户进行攻击 , 窃取网站用户账号身份信息等 , 从而也会对网站产生较严重的威胁 。
XSS攻击可导致以下危害:
1、钓鱼欺骗:最典型的就是利用目标网站的反射型跨站脚本漏洞将目标网站重定向到钓鱼网站 , 或者通过注入钓鱼JavaScript脚本以监控目标网站的表单输入 , 甚至攻击者基于DHTML技术发起更高级的钓鱼攻击 。
2、网站挂马:跨站时 , 攻击者利用Iframe标签嵌入隐藏的恶意网站 , 将被攻击者定向到恶意网站上、或弹出恶意网站窗口等方式 , 进行挂马 。
3、身份盗用:Cookie是用户对于特定网站的身份验证标志 , XSS攻击可以盗取用户的cookie , 从而利用该cookie盗取用户对该网站的操作权限 。
4、盗取网站用户信息:当窃取到用户cookie从而获取到用户身份时 , 攻击者可以盗取到用户对网站的操作权限 , 从而查看用户隐私信息 。
5、垃圾信息发送:在社交网站社区中 , 利用XSS漏洞借用被攻击者的身份发送大量的垃圾信息给特定的目标群 。
6、劫持用户Web行为:一些高级的XSS攻击甚至可以劫持用户的Web行为 , 从而监视用户的浏览历史、发送与接收的数据等等 。
7、XSS蠕虫:借助XSS蠕虫病毒还可以用来打广告、刷流量、挂马、恶作剧、破坏数据、实施DDoS攻击等 。