51Testing软件测试论坛

标题: 模拟用户如何绕过服务器返回的sessionID?(在线等) [打印本页]

作者: liusylon    时间: 2007-10-10 18:25
标题: 模拟用户如何绕过服务器返回的sessionID?(在线等)
要测试的一个系统,需要测试登录之后的一个操作,而这个系统都是根据用户登录之后返回的SessionID才能执行登录后的操作,
而模拟用户肯定不能自动生成SessionID的,我用scan方式扫描需要关联的地方,结果显示给我的是两个js脚本路径,也就是在录制代码中并不能看到这个服务器返回的sessionID,可能是通过js脚本取得的吗?
这样该如何骗服务器达到我要测试的操作的目的呢?请教各位呀
作者: shanxi    时间: 2007-10-10 19:06
一如既往“关联”
作者: liusylon    时间: 2007-10-10 19:48
具体如何关联呢?我录制脚本时有一个web_add_cookie("chkcookie='2024646514'")的,就是要关联这个吗?
作者: xiaodong    时间: 2007-10-10 21:58
不知道你所说的情况是不是登陆后自动redirect到一个jsp页面,而这个页面的url地址是有一个动态的sessionID的
如果这样的话,可以在登陆之前用web_create_html_param来获取这个sessionID.
作者: liusylon    时间: 2007-10-11 10:48
是的,登录之后导向一个页面就是用来显示加载模块的进程,然后再导向一个框架页面的。web_create_html_param是怎么获取sessionID的呢?
作者: liusylon    时间: 2007-10-11 11:04
web_create_html_param是不是低版本的用法,我的是8.1版本的,应该用web_reg_save_param 吧,但是这个web_reg_save_param在插入到脚本的哪个地方为好呢?
作者: Zee    时间: 2007-10-11 11:14
看上面你说的是session下面是cookies,你要取的是哪个值?
我觉得你这个web_add_cookie("chkcookie='2024646514'")可以注释掉。
作者: liusylon    时间: 2007-10-11 11:39
嗯,我也看到这个web_add_cookie函数的作用就是如果名字和路径存在创建一个新的cookie值覆盖,如果这个cookie值已过期就删除它。
还有我根据回放的日志发现这个cookie值是客户端用js脚本生成的,
  function checkCookie(){\r\n
Action.c(113):        var tmpcookie = new Date();\r\n
Action.c(113):        chkcookie = (tmpcookie.getTime() + '');\r\n
Action.c(113):        document.cookie = "chkcookie=" + chkcookie + "; path=/";\r\n
Action.c(113):         if (document.cookie.indexOf(chkcookie,0) < 0) {\r\n
Action.c(113):         return false;\r\n
Action.c(113):           }\r\n
Action.c(113):         else {\r\n
Action.c(113):          return true;\r\n
Action.c(113):         }\r\n
Action.c(113):      }\r\n
然后继续查找发现有很多地方都用到了这个cookie值,比如
Action.c(128): t=10291ms: 204-byte response headers for "https://itrade.citics.com.hk:8443/swob_tom/images/zh-hk/langZhTwMO.png" (RelFrameId=1)   [issued at Action.c(153)]
Action.c(153):     HTTP/1.1 200 OK\r\n
Action.c(153):     ETag: W/"469-1191555815000"\r\n
Action.c(153):     Last-Modified: Fri, 05 Oct 2007 03:43:35 GMT\r\n
Action.c(153):     Content-Type: image/png\r\n
Action.c(153):     Content-Length: 469\r\n
Action.c(153):     Date: Wed, 10 Oct 2007 11:04:53 GMT\r\n
Action.c(153):     Server: Apache-Coyote/1.1\r\n
Action.c(153):     \r\n
Action.c(128): t=10372ms: 469-byte response body for "https://itrade.citics.com.hk:8443/swob_tom/images/zh-hk/langZhTwMO.png" (RelFrameId=1)   [issued at Action.c(153)]
Action.c(153): t=10375ms: Request done "https://itrade.citics.com.hk:8443/swob_tom/images/zh-hk/langZhTwMO.png"          [MsgId: MMSG-26000]
Action.c(153): t=10379ms: Already connected to itrade.citics.com.hk:8443          [MsgId: MMSG-26000]
Action.c(144): t=10382ms: 444-byte request headers for "https://itrade.citics.com.hk:8443/swob_tom/announceFrame.html" (RelFrameId=1)   [issued at Action.c(153)]
Action.c(153):     GET /swob_tom/announceFrame.html HTTP/1.1\r\n
Action.c(153):     Referer: https://itrade.citics.com.hk:8443/swob_tom/index.html\r\n
Action.c(153):     User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)\r\n
Action.c(153):     Accept-Encoding: gzip, deflate\r\n
Action.c(153):     Accept-Language: zh-tw\r\n
Action.c(153):     Accept: */*\r\n
Action.c(153):     Connection: Keep-Alive\r\n
Action.c(153):     Host: itrade.citics.com.hk:8443\r\n
Action.c(153):     Cookie: popWinNo=1192014283684; JSESSIONID=480E3F029AFD3FB9BE2B447A4F478260; defaultLangua
Action.c(153):     ge=T; chkcookie=1192011806625\r\n
Action.c(153):     \r\n

好像都返回的信息都是在头部中的加入这个值的,那么我该如何在这录制脚本中加入这个联合点呢?
作者: liusylon    时间: 2007-10-11 12:52
这页面和每个请求都带着cookie值的 popWinNo=1192014283684;JSESSIONID=480E3F029AFD3FB9BE2B447A4F478260; defaultLanguage=T; chkcookie=1192011806625,
是不是意味着我这里每次一个用户运行时,都必须参数化递交请求的cookie值,好像不用关联吧,只要我用web_add_cookie("popWinNo={参数化1};JSESSIONID={参数化2};........");

是不是这样就可以绕过服务器吗?

[ 本帖最后由 liusylon 于 2007-10-11 13:00 编辑 ]




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2