当前位置:文档之家› 网站安全性测试要点

网站安全性测试要点

1 安全测试检查点1.1网页安全检查点1.1.1输入的数据没有进行有效的控制和验证1)数据类型(字符串,整型,实数,等)2)允许的字符集3)最小和最大的长度4)是否允许空输入5)参数是否是必须的6)重复是否允许7)数值范围8)特定的值(枚举型)1.1.2用户名和密码1)检测接口程序连接登录时,是否需要输入相应的用户2)是否设置密码最小长度(密码强度)3)用户名和密码中是否可以有空格或回车?4)是否允许密码和用户名一致5)防恶意注册:可否用自动填表工具自动注册用户?6)遗忘密码处理7)有无缺省的超级用户?8)有无超级密码?9)是否有校验码?10)密码错误次数有无限制?11)大小写敏感?12)口令不允许以明码显示在输出设备上13)强制修改的时间间隔限制(初始默认密码)14)口令的唯一性限制(看需求是否需要)15)口令过期失效后,是否可以不登陆而直接浏览某个页面16)哪些页面或者文件需要登录后才能访问/下载17)cookie中或隐藏变量中是否含有用户名、密码、userid等关键信息1.1.3直接输入需要权限的网页地址可以访问避免研发只是简单的在客户端不显示权限高的功能项举例Bug:1)没有登录或注销登录后,直接输入登录后才能查看的页面的网址(含跳转页面),能直接打开页面;2)注销后,点浏览器上的后退,可以进行操作。

3)正常登录后,直接输入自己没有权限查看的页面的网址,可以打开页面。

4)通过Http抓包的方式获取Http请求信息包经改装后重新发送5)从权限低的页面可以退回到高的页面(如发送消息后,浏览器后退到信息填写页面,这就是错误的)1.1.4上传文件没有限制1)上传文件还要有大小的限制。

2)上传木马病毒等(往往与权限一起验证)3)上传文件最好要有格式的限制;1.1.5不安全的存储1)在页面输入密码,页面应显示“*****”;2)数据库中存的密码应经过加密;3)地址栏中不可以看到刚才填写的密码;4)右键查看源文件不能看见刚才输入的密码;5)帐号列表:系统不应该允许用户浏览到网站所有的帐号,如果必须要一个用户列表,推荐使用某种形式的假名(屏幕名)来指向实际的帐号1.1.6操作时间的失效性1)检测系统是否支持操作失效时间的配置,同时达到所配置的时间内没有对界面进行任何操作时,检测系统是否会将用户自动失效,需要重新登录系统。

2)支持操作失效时间的配置。

3)支持当用户在所配置的时间内没有对界面进行任何操作则该应用自动失效。

如,用户登陆后在一定时间内(例如15 分钟)没有点击任何页面,是否需要重新登陆才能正常使用。

1.1.7日志完整性1)检测系统运行时是否会记录完整的日志如进行详单查询,检测系统是否会记录相应的操作员、操作时间、系统状态、操作事项、IP地址等。

2)检测对系统关键数据进行增加、修改和删除时,系统是否会记录相应的修改时间、操作人员和修改前的数据记录1.2系统服务器安全检查点1)检查关闭不必要的服务2)是否建立安全账号策略和安全日志3)是否已设置安全的IIS,删除不必要的IIS组件和进行IIS安全配置4)Web站点目录的访问权限是否过大5)服务器系统补丁是否打上,是否存在系统漏洞6)扫描检测木马1.3数据库安全检查点1.系统数据是否机密1)尽量不要使用Sa账户,密码够复杂2)严格控制数据库用户的权限,不要轻易给用户直接的查询、更改、插入、删除权限。

可以只给用户以访问视图和执行存储过程的权限3)数据库的帐号,密码(还有端口号)是不是直接写在配置文件里而没有进行加密2.系统数据的完整性3.系统数据可管理性4.系统数据的独立性5.系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)1)服务器突然断电,这可能导致配置文件的错误导致无法访问或者数据的丢失;2)重做日志发生损坏,这可能导致数据库管理员无法把数据恢复到故障发生时的点;3)硬盘发生故障而导致数据丢失,这主要是要测试备份文件异地存放的有效性;4)数据批量更新的错误处理,这主要是数据库备份测试数据库管理员在进行批量更新之前是否有先对数据库进行备份的习惯,等等。

1.3支付接口检查点1. 支付的接口2.支付的入口3.与各个银行的数据接口安全4. 与支付宝的接口2 信息安全入侵测试2.1上传漏洞利用上传漏洞可以直接得到网页管理员权限,危害等级超级高,现在的入侵中上传漏洞也是常见的漏洞。

“上传漏洞”入侵是目前对网站最广泛的入侵方法。

90%的具有上传页面的网站,都存在上传漏洞。

网站有上传页面,如果页面对上传文件扩展名过滤不严,导致黑客能直接上传带木马的文件,直接上传后即拥有网站的管理员控制权。

2.2暴库暴库,就是通过一些技术手段或者程序漏洞得到数据库的地址,并将数据非法下载到本地。

比如一个站的地址为/dispbbs.asp?boardID=7&ID=161 ,就可以把com/dispbbs中间的/换成%5c,如果有漏洞直接得到数据库的绝对路径。

用迅雷什么的下载下来就可以了。

还有种方法就是利用默认的数据库路径/ 后面加上conn.asp 如果没有修改默认的数据库路径也可以得到数据库的路径。

2.3注入漏洞注入漏洞是利用某些输入或者资料输入特性以导入某些资料或者代码,造成目标系统操作崩溃的电脑漏洞,通常这些漏洞安全隐患是由不充分的输入确认及其他种种因素造成的。

我们需要使用到以下几种方式进行测试:2.3.1 SQL攻击简称注入攻击,是发生于应用程序之数据库层的安全漏洞。

简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏。

测试方法:某个网站的登录验证的SQL查询代码为strSQL = "SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ passWord +"');"恶意填入userName = "' OR '1'='1";与passWord = "' OR '1'='1";时,将导致原本的SQL字符串被填为strSQL = "SELECT * FROM users WHERE (name = '' OR '1'='1') and (pw = '' OR '1'='1');"也就是实际上运行的SQL命令会变成下面这样的strSQL = "SELECT * FROM users;"因此达到无帐号密码,亦可登录网站。

2.3.2 跨网站指令码网站应用程式的安全漏洞攻击,允许恶意使用者将程式码注入到网页上,其他使用者在观看网页时就会受到影响。

这类攻击通常包含了HTML以及使用者端脚本语言。

测试方法:通常有一些方式可以测试网站是否有正确处理特殊字符:><script>alert(document.cookie)</script>='><script>alert(document.cookie)</script><script>alert(document.cookie)</script><script>alert(vulnerable)</script>%3Cscript%3Ealert('XSS')%3C/script%3E<script>alert('XSS')</script><img src="javascript:alert('XSS')"><img src="/yyy.png" onerror="alert('XSS')"><div style="height:expression(alert('XSS'),1)" />(这个仅限IE 有效)使用者可做一个网页,试着用JavaScript把document.cookie当成参数丢过去,然后再把它记录下来,这即是偷cookie 。

XSS攻击方法有:偷cookie 。

利用iframe 或frame 存取管理页面或后台页面。

利用XMLHttpRequest 存取管理页面或后台页面。

2.4旁注我们入侵某站时可能这个站坚固的无懈可击,我们可以找下和这个站同一服务器的站点,然后在利用这个站点用提权,嗅探等方法来入侵我们要入侵的站点。

2 .5 COOKIE诈骗COOKIE是上网时由网站所为发送的值,记录了你的一些资料,比如IP,姓名。

如果已经知道了XX站管理员的站号和MD5密码了,但是破解不出来密码(现在MD5密码已经可以破解了,假如网站密码不单单是用MD5加密,还用了其他加密方法,如果要分析算法那就复杂了)。

就可以用COOKIE诈骗来实现,把自己的ID修改成管理员的,MD5密码也修改成他的,有工具可以修改COOKIE这样就答到了COOKIE诈骗的目的,系统以为你就是管理员了。

相关主题