WEB安全漏洞与防范

1.XSS

原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie信息、破坏页面结构、重定向到其它网站等。

理论上,只要存在能提供输入的表单并且没做安全过滤或过滤不彻底,都有可能存在XSS漏洞。下面是一些最简单并且比较常见的恶意字符XSS输入:

1.XSS 输入通常包含 JavaScript 脚本,如弹出恶意警告框:<script>alert("XSS");</script>

2.XSS 输入也可能是 HTML 代码段,譬如:

(1).网页不停地刷新 <meta http-equiv="refresh" content="0;">

(2).嵌入其它网站的链接 <iframe src=http://xxxx width=250 height=250></iframe>  除了通过正常途径输入XSS攻击字符外,还可以绕过JavaScript校验,通过修改请求达到XSS攻击的目的,如下图:WEB安全漏洞与防范

相关博文链接地址:http://www.jb51.net/article/72175.htm

1.CSRF

CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。

CSRF站内类型的漏洞在一定程度上是由于程序员滥用$_REQUEST类变量造成的。在一些敏感的操作中(如修改密码、添加用户等),本来要求用户从表单提交发起POST请求传递参数给程序,但是由于使用了$_REQUEST等变量,程序除支持接收POST请求传递的参数外也支持接收GET请求传递的参数,这样就会为攻击者使用CSRF攻击创造条件。一般攻击者只要把预测的请求参数放在站内一个贴子或者留言的图片链接里,受害者浏览了这样的页面就会被强迫发起这些请求。

WEB安全漏洞与防范

相关博文链接:http://www.(pythontab.com)/html/2014/php_1121/923.html

1.文件漏洞

上传文件的时候,需要通过tmp_name$_FILES字段来检测文件的后缀。否则,比如图片,如果单通过后缀来判断文件类型,就出现一线问题/比如 a.php%00.jpg.其中%00为十六进制的0x00字符,.jpg骗过了应用的上传文件类型检测,但对于服务器来说,因为%00字符截断的关系,最终上传的文件变成了xxx.php。并且对于用户来说通过URL访问是可执行的。

相关博文连接:http://blog.csdn.net/u014609111/article/details/52701827

2.SQL注入漏洞及防范

SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息

●SQL注入威胁表现形式可以体现为以下几点:

●绕过认证,获得非法权限

●猜解后台数据库全部的信息

●注入可以借助数据库的存储过程进行提权等操作

●SQL注入攻击的典型手段

●判断应用程序是否存在注入漏洞

●收集信息、并判断数据库类型

●根据注入参数类型,重构SQL语句的原貌

●猜解表名、字段名

●获取账户信息、攻击web或为下一步攻击做准备

比如:“sql” or (and,||,&&)1 =1

SQL危害。。。

防范:设置用户权限 比如之给CRUD功能

网上连接很多。

截取:http://netsecurity.51cto.com/art/201108/287651.htm

http://www.jb51.net/hack/57188.html

3.文件泄露(.git/.svn/.hg/.bak/.swp/.swo)

对于一些文件,git 、svn、.bak压缩包文件不要不加以分辨直接传到服务器,可能会造成文件泄露。Linux vim会产生.swp文件,也会暴露,尽量将文件设置在用户不可访问的目录,比如www/../bak/XXX

  1. 敏感信息泄漏

通常通过id来查询数据,稍微懂一点的人就可以通过更改url的id来查询别人的信息,这个时候需要对敏感信息的id进行session验证或者其他有效的验证,其他参数类似

5.上传漏洞及防范

同图片上传

6.逻辑漏洞

这是最难查找的漏洞,因为代码层面是看不出问题的,在设计逻辑行为和流程的时候需要仔细考虑。

工具类介绍:

Windows:啊D

啊D注入工具是一种主要用于SQL的注入工具,使用了多线程技术,能在极短的时间内扫描注入点。使用者不需要经过太多的学习就可以很熟练的操作。

百度经验:

http://baike.baidu.com/link?url=KDAuaFGzvA-HmkU3OS161hERzLn5N7J7ujxUGtRTeIfecxB4N0-xtxwV3GvKr0ROdWTJ0q9hTo5JaSvZxTICDiYEDhQ0GNtECBpg62vergdVw0_mAZ_okdUZ9M9LMAWwIvIxa0d0jHEET7lpe3ExDq

教程:baidu.com

SQLMAP:

https://github.com/sqlmapproject/sqlmap

教程:http://blog.csdn.net/zgyulongfei/article/details/41017493/      baidu.com

对于验证码暴力破解:确保session一致,设置一次性session值

短信验证码可以6位,延长暴力破解时间

Phpwaf:www.baidu.com

尽量使用php安全函数,在不熟悉的时候需要百度

http://www.myhack58.com/Article/60/61/2012/32968.htm

尽量使用高版本php,避免老版本BUG

稳定的是5.5,推荐php7

对于登陆可以设置ip登陆频率

代码审计工具

rips

www.baidu.com

支付防范:

通过time()然后hash随机种子,前端后端,支付端,每一个参数传递点都要进行验证。(因为没接触过,所以不大清楚流程)

上一篇:jQuery模拟页面加载进度条


下一篇:Spring Security-- 验证码功能的实现