首页 > 代码库 > 极度危险而常见的网站安全漏洞

极度危险而常见的网站安全漏洞

最近处理了公司外网项目的两个安全漏洞,很常见,也很危险。

一、反射型跨站脚本漏洞

漏洞风险:

可以在嵌入攻击脚本,一旦在用户浏览器中加载页面,就会执行此脚本。可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务。

举例说明:

通过程序参数输出传递的参数到HTML页面,则打开下面的网址将会返回一个消息提示:

http://***.com/xss/message.jsp?send=Hello,World!

输出内容:Hello,World!

此程序功能为提取参数中的数据并插入到页面加载后的HTML代码中,这是XSS漏洞的一个明显特征;
如果此程序没有经过过滤等安全措施,则它将会很容易受到攻击。
下面我们一起来看如何实施攻击。在原程序的URL的参数替换为我们用来测试的代码:

http://www.***.com /xss/message.jsp?send=<script>alert(‘xss’)</script>

页面输出内容则为:<script>alert(‘xss’)</script>

当用户在用户浏览器打开的时,将会弹出提示消息。

如果用户之前已经正常登录到Web系统,并得到一个会话信息的cookie,再打开黑客嵌入非法脚本的页面,那么黑客基本上就可以通过cookie信息劫持用户会话来为所欲为了。

解决方案:
1、不要信任用户的任何输入,做校验,如果条件允许,尽量采用白名单技术来验证输入参数;
2、是输出的时候对用户提供的内容进行转义处理。

二、URL重定向漏洞


漏洞风险:

通过构建URL,攻击者可以使用户重定向到任意URL,利用这个漏洞可以诱使用户访问某个页面,挂马、密码记录、下载任意文件等。


举例说明:
如单点登录,登录后跳转回原来的页面
正常应该如下,
http://www.****.org/login.php?jumpto=http://www.正常网站.com

这时,修改为如下
http://www.****.org/login.php?jumpto=http://www.恶意网站.com

那么登录验证成功后,就会跳转到恶意网站,危害可想而知。

解决方案:
1. 对用户的输入做校验;
2. 采用间接方式对重定向到第三方网站传参改用post
3. 对一些网站可采用白名单的方式,对跳转的域名做可信判断
4、为保证所有生成的链接都是来自于我们可信域的,通过在生成的链接里加入用户不可控的Token对生成的链接进行校验,可以避免用户生成自己的恶意链接从而被利用,但是如果功能本身要求比较开放,可能导致有一定的限制。

最后说两个工具,可以扫描出一些漏洞:IBM Rational AppScan、Acunetix Web Vulnerability Scanner如何使用,就自己百度吧。

以前做网站,很少关注安全层面的东西,注意最多的就是sql注入,最近修补了这两个漏洞,才发觉局域网项目和互联网项目还是有很多差别的,很多安全问题需要考虑。
慢慢来吧。


极度危险而常见的网站安全漏洞