随着因特网的不断发展,人们对网络的利用越来越频繁,通过网络进行购物、支付等其他业务操作。
而一个潜在的问题是网络的安全性如何担保,一些黑客利用站点安全性的漏洞来盗取用户的信息,利用户的个人信息泄露,以是站点的安全性变得很主要。

Web 系统的安全性测试包括以下内容:

(1)Web 漏洞扫描

jsp页面判断数据合法性Web 体系的平安性测试之输入数据测试 Python

(2)做事器端信息测试

(3)文件和目录测试

(4)认证测试

(5)会话管理测试

(6)权限管理测试

(7)文件上传下载测试

(8)信息泄露测试

(9)输入数据测试

(10)跨站脚本攻击测试

(11)逻辑测试

(12)搜索引擎信息测试

(13)Web Service 测试

(14)其他测试

本章节紧张给大家先容第(9)点——输入数据测试

对付客户端输入的数据,不能仅仅通过客户真个脚本进行合法性考验,还必须在做事器中对输入的数据进行考验,这样才能真精确保输入数据的合法性。
如果仅仅通过客户真个脚本进行考验,是无法起到安全浸染的,很随意马虎利用HTTP 代码绕过考验。

测试紧张包括以下内容:

>> SQL 注入测试

 >>MML 语法注入测试

>> 命令实行测试

(1)SQL 注入测试

SQL 注入测试紧张是针对数据库安全性考验的测试,并不是针对网页代码安全性考验进行测试。
这种情形在任何数据库查询环境下都可能存在,常见的数据库包括Oracle、MSSQL、Infomix、DB2、Sybase 等,针对不同的数据库系统,利用的函数有所不同,但从测试的角度来说,一样平常只须要判断几个最基本的语句即可。
SQL 注入测试分为手工注入和自动化注入两种。

1)手工SQL 注入测试步骤如下(http://192.168.1.9/page.xxx?name=value):

步骤1:确定value 值的类型,如果该值为数字型,即进行步骤2 操作,否则进行步骤4 操作。

步骤2: 在被测参数后加上测试语句“ and 1=1 ”, 在地址栏中输入http://192.168.1.9/page.xxx?name=value and 1=1,不雅观察返回的结果。
如果能精确地访问该页面,那么进行下一步操作,否则直接进行步骤4 操作。

步骤3: 在被测参数后加上测试语句“ and 2=3 ”, 在地址栏中输入http://192.168.1.9/page.xxx?name=value and 2=3,不雅观察返回的结果。
如果能精确地访问该页面,那么进行下一步操作,否则该参数存在注入漏洞,测试完成。

步骤4: 在被测参数后加上测试语句“'and '1'='1' ”,在地址栏中输入http://192.168.1.9/page.xxx?name=value 'and '1'='1',不雅观察返回的结果。
如果能精确地访问该页面,那么进行下一步操作,否则该参数存在注入漏洞,测试完成。

步骤5: 在被测参数后加上测试语句“'and '2'='3' ”,在地址栏中输入http://192.168.1.9/page.xxx?name=value 'and '2'='3',不雅观察返回的结果。
如果能精确地访问该页面,解释该参数不存在漏洞,否则该参数存在注入漏洞,测试完成。

解释:如果存在多个参数,那么须要对每个参数都进行测试

2)利用自动化工具也可对SQL 注入进行测试,常用工具为pangolin,测试步骤如下:

步骤1:运行pangolin 工具。

步骤2:在URL 中输入待测试的URL(如http://192.168.1.9/page.xxx?name=value)。

步骤3:单击Check 按钮,实行扫描操作。

预期结果为pangolin 工具不能得到目标做事器的注入类型和数据库类型。

(2)MML 语法注入测试

MML(Man-Machine Language,人机措辞)实现了人机对话,人机对话是打算机的一种事情办法,多用于电信行业,打算机用户与打算机之间通过掌握台或终端显示屏幕,以对话办法进行事情。

MML 语法也可能存在注入漏洞,MML 语句通过分号(;)可以实行多语句,如命令“DSP CELL:DSPT=BYCELL, CELLID=1111;”,在短缺对输入参数进行严格掌握的情形下,攻击者能够实行任意的MML 语句。
但是由于在预期结果方面无法给出准确的判断规则,以是测试时无法给出详细的、详细的测试步骤,一样平常分为以下几步进行测试:

步骤1:找出提交给MML 处理的参数

步骤2:在参数后面加入分号(;),提交要求

步骤3:不雅观察返回结果

如果结果返回正常,可能就存在该漏洞。
但是有一种分外情形须要把稳,如果参数并不是MML实行语句的参数值,结果也可能是精确的,此时就须要测试工程师再进行判断。

(3)命令实行测试

有些页面可以接管类似于文件名的参数用于下载或者显示内容,测试时可以将参数更换成命令进行测试,不雅观察返回的测试结果。

假设测试的URL 为http://192.168.1.9/test.jsp,可接管参数,并且接管的参数可以是类似于系统命令的字符(如cmd、ls 等)。

如net user 命令输出如下内容:

假设测试URL 为http://192.168.1.9/net user,不雅观察返回的信息,返回的信息中不包括类似于系统命令返回的信息