当前位置: 首页>数据库>正文

Web安全测试—03输入数据测试

SQL注入测试

SQL注入是针对一种数据库而言的,而不是针对网页语言。在任何使用了数据库查询环境下都可能存在。常见的数据库包括:MSSQL、Oracle、Informix、Db2、Access、Sybase等。

所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

SQL注入受到的威胁,(但不限于)以下几种情况:
(1)数据泄漏
(2)修改现有数据
(3)插入新数据
(4)任意的文件系统访问
(5)任意的网络访问
(6)系统泄漏

针对不同的数据库系统使用的一些函数会有所不同,不过从测试是否存在SQL注入的角度考虑,只需要进行几个最基本的判断语句就可以了。

编号         Web_01
测试用例名称 手工SQL注入测试
测试目的 由于SQL注入有可能造成信息泄漏,在严重情况下(根据使用的数据库而定)甚至可能造成数据修改、删除,从而导致业务中断。因此必须发现所有存在的注入点。
用例级别 一级
测试条件 1、Web业务运行正常
2、已知待测目标URL,假设为http://www.example.com/page.xxx待测
3、目标存在参数输入,假设为name=value
执行步骤 1、观察参数的值value是否为数字型。如果是数字型进行数字型测试,否则跳到第4步进行字符型测试(例如如果出现a那说明是字符型,如果出现2则将其当做数字型测试)
2、将被测参数后加上测试语句“and 1=1”,即:地址栏中填入“http://www.example.com/page.xxx?name=value and 1=1”, 如果返回正确页面则进行下一步操作,否则跳到第4步。
3、将被测参数后加上测试语句“and 1=2”(这里以第n个参数为例),其他参数保持不变,即:地址栏中填入“http://www.example.com/page.xxx? name=value and 1=2”, 如果返回正确页面则进行下一步操作,否则该参数存在注入漏洞,完成测试
4、将被测参数后加上测试语句“’ and ‘1’=’1”,即:地址栏中填入“http://www.example.com/page.xxx? name=value’ and ‘1’=’1”, 如果返回正确页面则进行下一步操作,否则该参数存在注入漏洞,完成测试
5、将被测参数后加上测试语句“’ and ‘1’=’2”,即:地址栏中填入“http://www.example.com/page.xxx? name=value’ and ‘1’=’2”, 如果返回正确页面则不存在漏洞,否则该参数存在注入漏洞,完成测试
预期结果 不存在注入点
备注 1、页面可能接受多个参数,需对每个参数都进行测试
2、如果客户端脚本对输入数据进行合法行校验,阻止非法数据,可以通过方法(通过WebScarab拦截并修改参数值),绕过客户端数据校验。
3、POST、AJAX以及隐藏域提交参数也需要测试(方法是通过WebScarab拦截HTTP请求,找到提交的参数并参照上面的方法修改参数值)
4、本测试包含了现有最常见的两种测试方法
测试结果 -
编号    Web_02
测试用例名称 自动化工具SQL注入测试
测试目的 由于SQL注入有可能造成信息泄漏,在严重情况下(根据使用的数据库而定)甚至可能造成数据修改、删除,从而导致业务中断。因此必须发现所有存在的注入点。
用例级别 一级
测试条件 1、Web业务运行正常
2、已知待测目标URL,假设为http://www.example.com/page.xxx
3、待测目标存在参数输入,假设为name=value
4、测试用机安装了pangolin测试工具
执行步骤 1、运行pangolin
2、在URL输入框中输入http://www.example.com/page.xxx?name=value
3、点击Check按钮执行扫描操作
4、观察结果
预期结果 Pangolin工具不能得到目标服务器的注入类型和数据库类型。
备注 页面可能接受多个参数,需对每个参数都进行测试
测试结果 -

命令执行测试

编号    Web_03
测试用例名称 命令执行测试
测试目的 某些页面可能接受类似于文件名的参数用于下载或者显示内容。
用例级别 一级
测试条件 1、Web业务运行正常
2、已知某页面URL(假设为http://www.example.com/abc.jsp)接收参数,且参数中接收类似于系统命令的字符(假设为cmd=ls)
执行步骤 1、更改参数的值为其他命令,可以尝试以下一些字符串:
net user
ipconfig
cat /etc/passwd
2、观察页面返回信息。比如使用net user命令的话,页面中可能包含类似于如下的字符串:
\host 的用户帐户
Administrator
预期结果 页面的源代码中不包含类似于系统命令的返回信息。
备注 -
测试结果 -

https://www.xamrdz.com/database/6q31850498.html

相关文章: