利用Rational AppScan定制参数提升脚本的重用性

发表于:2017-2-08 11:23

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:IBM    来源:51Testing软件测试网采编

分享:
  案例扫描实现
  基于上文分析,我们需要在 AppScan 的“参数和 cookie”管理中设置四个参数。其中 resourceid、userid、curtime 为常规参数(AppScan 能自动检测识别这些参数),校验参数需要通过定制参数来检测(因为本案例中这个校验参数的名称会动态变化,对于渗透测试工具而言所有不同名称的参数都是不同的参数,AppScan 提供了定制参数功能,我们可以利用定制参数使 AppScan 识别这些不同名称的参数,并将之统一视为校验参数)。下文将详细介绍 AppScan 脚本的录制过程。
  新建扫描文件(暂不进行探索),点击“扫描配置”,进入“参数和 cookie”,添加三个参数:resourceid、userid、curtime,并选中“在扫描过程中跟踪该参数”。其中 resourceid 和 userid 的跟踪类型设置为登录值,curtime 的跟踪类型设置为动态值。通过设置这三个常规参数的跟踪类型,AppScan 即可在在扫描过程中自动检测到这些参数值的变化,并自动更新到相应的 HTTP 请求中。
  
图 2. 添加常规参数示例
  进入“参数和 cookie”的高级定制参数选项卡,为校验参数定制识别模式。由于校验参数的参数名称和参数值都是动态变化的,所以我们需要定义两个定制参数,分别识别校验参数的参数名称和校验参数的参数值。如下图所示。
  
图 3. 编辑定制参数-校验参数名称
  基于上图设置的定制参数,AppScan 能够从 HTTP 响应中通过匹配正则表达式“ input type="hidden" name="([0-9A-Za-z]{8})" value="[0-9A-Za-z]{32}" ”识别出服务器端返回的校验参数的名称,如“ ADCE4375 ”。同时,AppScan 会从 HTTP 请求中通过匹配正则表达式“ ([0-9A-Za-z]{8})=[0-9A-Za-z]{32} ”,识别出 HTTP 请求中的校验参数,并用最新的校验参数名称将之替换。
  
图 4. 编辑定制参数-校验参数值
  基于上图设置的定制参数,AppScan 能够从 HTTP 响应中通过正则表达式匹配识别出服务端返回的校验参数的值,譬如“d4be19775b0f346c32453c8be95d39c4”。同理,AppScan 会从录制好的 HTTP 请求中通过正则表达式匹配识别出旧的校验参数值,并用服务器端返回的新校验参数值进行替换。
  注:图 3 和图 4 看起来几乎非常相似,这里笔者要强调一下两者的区别:两张图中的模式中的圆括号标示的位置不同,对应的响应模式中也存在类似差别。
  进入“参数和 cookie”选项卡,启用上面定制的两个定制参数。分别点击“+”按钮添加新的参数,选择参数类型为“定制参数”,在引用名称处选择前文定制的两个定制参数名称,并选中“在扫描过程中跟踪该参数”。
  
图 5. 添加定制参数示例
  点击“扫描配置-导出为模板”,将以上参数等配置信息导出为 .scant 文件,以备重用。
  点击“扫描配置-登录管理”录制未完成授权用户的登录方法,并将之导出为 .login 文件,以备重用。
  点击“手工探索”探索需要测试的应用链接,并将手工探索出来的链接清单导出为 .exd 文件,然后点击“仅测试”执行扫描(通常建议利用手工探索需要填写特定表单数据的交互式链接,然后执行完全扫描。本文仅为示范之用,故选择“仅测试”选项,仅测试手工探索出来的链接清单)。
  如果需要重新执行该测试,仅需要打开 AppScan,导入扫描模板文件、登录方法文件(由于以前录制的用户测试完成后变为已授权用户,因此需要将登录方法文件中的登录账号信息替换为未完成授权的用户)、手工探索链接清单文件,然后执行“扫描-仅测试”重新扫描。
  结论
  本文介绍了 Rational AppScan 的定制参数功能,并通过案例的方式跟读者分享了如何利用定制参数提升 AppScan 探索文件的可重用性。掌握定制参数是提升 AppScan 技能的重要前提。利用定制参数,我们可以解决常见 Web 渗透测试所面临的难题,譬如 CSRF 防护令牌、URL Rewriting 等问题。希望本文能够对读者熟悉 AppScan 定制参数有所帮助。
22/2<12
100家互联网大公司java笔试题汇总,填问卷领取~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号