• web安全测试之三


    1:用户权限测试

    (1)用户权限的控制

    a:用户权限控制主要是对一些有权限控制的功能进行验证;

    b:用户A进行的操作,用户B能否操作;

    c:用户A有条件的用户才能查看的页面,用户B能否查看;(是否可以直接输入URL地址进入)

    (2:)页面权限控制

    a:必须有登录权限的页面,能否在未登录的情况下进行访问;

    b:必须经过A-->B--->C的页面,能够通过A-->C?

    2:URL安全测试

    (1)适用范围: URL中含有参数,也就是通过GET方式传递的HTTP请求。

    (2)什么叫GET方式?

    HTTP定义了与服务器不同的交互方式,基本的是POST和GET方式。

    GET方式在客户端通过URL提交数据,数据在URL中可以看到,例如在日常中订购服务:

    http://pay.daily.taobao.net/mysub/subdeal/order_sub_deal.htm?servId=2

    POST方式,数据放置在HTML HEADER内提交数据,数据在URL中看不到。GET只能传输少量数据,安全性较低;POST能传输大量数据,安全性较高。

    (3)测试关注点

    1)URL参数检查

    A:  对URL中参数信息检查是否正确

    如:URL中的订单号、金额允许显示出来的话,需要验证其是否正确

    B:  对于一些重要的参数信息,不应该在URL中显示出来

    如:用户登陆时登录名、密码是否被显示出来了 ,

    2)URL参数篡改

    修改URL中的数据,看程序是否能识别:

    如:对于以下URL,修改其中planId,看是程序是否可以识别:

      http://pay.daily.taobao.net/mysub/plan/subplan/confirmSubPlanInfo.htm?planId=878

    又如:对于URL中包含金额参数的,修改金额看是否能够提交成功(可能导致用户把2元金额改成1元金额能提交),还有修改订单号等重要信息看是否会报错

    3)URL参数修改进行XSS攻击‘

    什么是XSS?

      XSS的全称是Cross Site Script(跨站点脚本)

      XSS的原理很简单,即进行脚本注入,URL执行时即把此脚本进行了执行,一般都是JavaScript脚本

    “http://demo.aa.org/index_Article_Class.asp?fID_ArticleClass=2&ArticleClassName=abc”

    改成“http://demo.aa.org/index_Article_Class.asp?fID_ArticleClass=2&ArticleClassName=abc<script>alert("hello");</script>”看有没有弹出对话框显示hello,有的话就有跨站漏洞。

    在URL中进行XSS注入,也就是把URL中的参数改成JS脚本。

    4)URL参数中进行SQL注入

    什么是SQL注入?

      SQL注入全称是SQL Injection ,当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击,如查询、插入数据时。

    测试方法: URL中写入SQL注入语句,看是否被执行,如:http://demo.testfire.net这个网站中,选择sign in设置用户名为 admin ' or '1'='1   密码为任意数字  ,点击登录就可以登陆。

    一般情况下要进行SQL注入攻击,需要对数据库类型、表名、判断逻辑、查询语句等比较清楚才能够写出有效的SQL注入语句。

    3.表单提交安全测试

    适用范围:有表单提交的地方、有HTTP请求的地方(包括GET、POST请求)

    测试关注点:

    1) 表单中注入XSS脚本

    2) 表单中注入SQL 脚本

      与URL中参数进行SQL注入类似,就是在表单中写入SQL注入脚本提交看是否会有问题

    4:session测试

    (1)session是客户端和服务器之间建立的会话,存放在服务器中,服务器会为每次对会话生成一个sessionID,每个客户对应一个sessionID。并不是浏览器关闭就结束了本次对话,通常是用户执行退出或者session超时才会结束对话。

    (2)测试关注点

    a:    session互窜

    Session互窜即是用户A的操作被用户B执行了。

    验证Session互窜,其原理还是基于权限控制,如某笔订单只能是A进行操作,或者只能是A才能看到的页面,但是B的session窜进来却能够获得A的订单详情等。

    Session互窜方法:

    多TAB浏览器,在两个TAB页中都保留的是用户A的session记录,然后在其中一个TAB页执行退出操作,登陆用户B,此时两个TAB页都是B的session,然后在另一个A的页面执行操作,查看是否能成功。预期结果:有权限控制的操作,B不能执行A页面的操作,应该报错,没有权限控制的操作,B执行了A页面操作后,数据记录是B的而不是A的。

    b:  session超时

    基于Session原理,需要验证系统session是否有超时机制,还需要验证session超时后功能是否还能继续走下去。

    测试方法:

      1、打开一个页面,等着10分钟session超时时间到了,然后对页面进行操作,查看效果。

      2、多TAB浏览器,在两个TAB页中都保留的是用户A的session记录,然后在其中一个TAB页执行退出操作,马上在另外一个页面进行要验证的操作,查看是能继续到下一步还是到登录页面。

  • 相关阅读:
    黑马程序员——JAVA基础之System,Runtime,Date,Calendar,Math
    黑马程序员——JAVA基础之JDK1.5新特性高级for循环和可变参数
    黑马程序员——JAVA基础之Collections和Arrays,数组集合的转换
    黑马程序员——JAVA基础之Map集合
    黑马程序员——仅当源级别为 1.5 时已参数化的类型才可用的解决办法
    黑马程序员——JAVA基础之泛型和通配符
    黑马程序员——JAVA基础之Vector集合
    黑马程序员——JAVA基础之set集合
    黑马程序员——JAVA基础之List集合
    Bringing up interface eth0: Error: No suitable device found: no device found for connection 'System eth0'.
  • 原文地址:https://www.cnblogs.com/zhouzetian/p/7240219.html
Copyright © 2020-2023  润新知