web安全测试之二

摘要:
web系统安全性文性是个比较宽泛的概念,常见的测试关注点以目录设置、口令验证、授权登录、日志文件、Session与Cookie安全、异常操作、SQL注入、跨站脚本攻击XSS、跨站请求伪造CSRF等为主。1猜测法在web系统测试过程中经常接触如下的URL语句。

web系统安全性文性是个比较宽泛的概念,常见的测试关注点以目录设置、口令验证、授权登录、日志文件、Session与Cookie安全、异常操作、SQL注入、跨站脚本攻击XSS、跨站请求伪造CSRF等为主。

1:目录设置

目录设置对系统的安全性而言非常关键,一般认为在一些系统中通过某些小手段总能看到本不该展示的数据信息。例如:通过某些小手段总能看到本不该完成展现的数据信息。例如通过图片的属性查看上一级目录路径为image,并在浏览器直接键入对应的地址,如“http://www.cdtest.cn/oss/image”,可以访问所有图片信息列表。

对于后台常见的管理员后台入口名称在设置目录时同样需要注意,不应将入口名称或路径做普通文件设置,应加以保护,如变换入口目录路径或重命名关键文件。例如,在管理员入口地址“http://www.cdtest.cn/oss/admin/index.jsp”可改成http://cdtest.cn/oss/ossadmin/index.jsp.以免用户轻易猜出入口地址。

2:口令验证

慕青大多数的web系统都设置了登录功能,只有验证通过后,才能访问相关的数据信息。在测试此类功能时,必须测试有效和无效的用户名及口令,同时考虑大小写,错误次数的限制,代码注入等。

3:授权验证

典型的业务系统基本由用户,用户组,权限及基本功能构成,权限管理在整个业务系统中起着至关重要的作用,即使通过口令验证,不同用户,不同较色仍可能具有不同权限,因此在测试的过程中需要测试授权问题,如未登录是否可以浏览信息,未授权是否可以使用功能,授权重登时能否正确分配等。

4:日志文件

日志的功能时追踪,任何可能危害系统安全的操作都应该被记录,测试时需确认是否以安全的方式记录了应该记录的信息。

5:Session与Cookie安全

伪造Session或者恶意读取Cookie,从而窃取用户的信息都是非常严重的安全事故。因此在测试时需要关注Session的失效机制及失效时间,Cookie记录与读取的权限。

6:异常操作

测试工程师不能奢望用户按照系统设计的意愿去使用,因此在测试任何功能,业务过程中需要模拟任何异常的操作,验证系统能否经得起考验,如输入过长的数据,输入特殊符号,上传恶意代码文件,非法下载禁止下载的文件等。

7:SQL注入

SQL注入是web系统安全攻击的常用手段,攻击者通过构建特殊的输入或非法的SQL命令插入表单或页面请求的字符串后提交,从而达到利用服务器执行恶意SQL语句的目的。SQL注入成功后,可直接屏蔽服务器验证,获取访问权限,甚至获取服务器的最高权限,执行篡改记录等恶意行为。

容易实施sql注入的主要原因是程序没有细致的过滤用户输入的数据,致使非法数据侵入系统。

sql注入根据注入技术原理不同,一般分为数据库平台注入和程序代码注入。数据库平台注入由web系统使用的数据平台配置不安全或平台本身存在漏洞引发;程序代码注入则主要是由于开发人员在设计时,未能考虑细致及编码是错误实现,从而导致攻击者轻易利用此缺陷,执行非法数据查询。

sql注入的产生原因通常有几个:

a:不恰当的数据类型处理;

b:不安全的数据库配置

c:不合理的查询集处理

d:不当的错误处理

e:不适合的转义字符处理

f:不恰当的请求处理

SQL注入的方法一般有猜测法攻击及屏蔽法攻击,猜测法主要是通过测试数据库可能存在的表或列,根据组合的SQL语句获取表信息。屏蔽法主要是利用SQL输入值不严谨错误进行逻辑验证,从而使得SQL验证结果始终为真,达到绕开验证的目的。

1猜测法

在web系统测试过程中经常接触如下的URL语句。(http://www.test.com?empid=23)

?后面跟的参数empid=23是提交到数据库中,此时可在URL地址嵌入SQL恶意攻击语句。

http://www.test.com?empid=23'or'1'='1

http://www.test.com?empid=23'or 1=(select count(*) from emp)--

如果不存在该表,则可能会报错,说明emp对象名无效,并可告知是哪种数据库类型,然后根据不同的数据库类型,使用对应的系统表名称进行查询攻击。

2屏蔽法

屏蔽法一般利用SQL语句and和or运算符进行攻击,以登录功能为例,通常的sql验证语句如下:

select * from users where username='$username' and password='$password'

在实际攻击过程中,将用户名username和密码password输入为:a'or 1=1 这样sql语句变成:

select * from users where username='a' or 1=1 and password='a' or 1=1

and的优先级高于or,因此先执行1=1 and password=‘a ’,执行结果为假,username=‘a’也为假,但1=1为真,因此整个语句为真。

8:跨站脚本攻击XSS

跨站脚本攻击又称为css,通常是指利用网站漏洞从用户那里恶意盗取信息。当用户访问注入了恶意HTML代码时,可能会触发对应的获取用户敏感信息操作。

免责声明:文章转载自《web安全测试之二》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇java防重提交Ajax异步调用Controller的Return JsonResult生成下拉列表下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

解决ArcGIS中因SDE或数据库配置问题而导致服务宕掉的一种思路

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/。 1.背景 最近连续有两个项目现场出现了AGS服务荡掉的问题,一个是通州现场,一个是福州现场。 1.1通州现场的问题描述和解决思路 通州现场环境为ArcGIS9.2,使用IMS发布的地图服务,其问题表现为每隔两天左右,其地形图服务...

【Oracle】详解v$session

首先查看一下v$session都存在哪些列 SYS@ORCL>descv$session NameNull?Type ----------------------------------------------------------------------------- SADDRRAW(4) SIDNUMBER SERIAL#NUMBER AUD...

FoxPro 数据库文件及记录命令

ADDTABLE 在当前数据库中添加一个自由表 APPEND 在表的末尾添加一个或多个新记录 APPEND FROM ARRAY 由数组添加记录到表中 APPEND FROM 从一个文件中读入记录,追加到当前表的尾部 APPEND GENERAL 从文件中导入OLE对象并将其放入通用字段中 APPEND MEMO 将文本文件的内容复制到备注字段中 APPE...

MongoDB学习笔记(一) MongoDB介绍及安装

MongoDB简介 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql 数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。Mongo的官方网站地址是:http://www.mongodb.org/,读者可以在此获得更详细的信息。 特点 高性能、易部署、易使用,存储数据非常方便...

JDBC常用驱动和语法汇总

A. Firebird url=jdbc:firebirdsql:[HOST_NAME]/[PORT:][FULL_PATH_TO_DATABASE_FILE] driver=org.firebirdsql.jdbc.FBDriver B. Informix url=jdbc:informix-sqli:[HOST_NAME]:[PORT]/[DATABA...

实现MySQL数据库同步实例演示(主从模式) 新风宇宙

 本次实验的主要目的是剖析配置MySQL(和PHP搭配之最佳组合) 数据库的主辅MySQL数据库同步的实际操作步骤,我前两天在相关网站看见的资料,觉得挺好,就拿出来供大家分享,开始具体的配置。   本次试验的MySQL(和PHP搭配之最佳组合)版本都是 4.1.7-standard-log , master 端的操作系统是 redhat 9.0 , sla...