免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2475 | 回复: 3
打印 上一主题 下一主题

如何使用Socket自动登陆Web服务器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-22 14:42 |只看该作者 |倒序浏览
我现在想利用Socket自动登陆一个Web服务器,现在已经能够获取到JSESSIONID,但是不知道怎么才能在请求中加入用户名和密码。
由于这个服务器是HTTPS的,我用截报文的方法看到的都是密文,不知道具体的HTTP请求是什么样子的?
就是该以什么形式把用户名和密码放进请求中呢?

论坛徽章:
0
2 [报告]
发表于 2009-02-22 17:32 |只看该作者
没完全明白你的意思,你是要传一个表单中的用户名密码数据,还是SESSION?你说的JRESESSION是JSP中的吗?这个不是很清楚,但我以前抓包分析过PHP和ASP的,现在久了记不清楚了,但大概记得它是用Cookie实现的,只是浏览器不保存而已,属于一种临时性的Cookie。

传表单数据的话,要在HTTP头的\r\n的空行之后附加,具体的格式你查一下RFC,或自己抓包看一下就知道了,当然最前面得是POST。如果是GET请求传直接附加到GET的网页后面用?xx=yy来传。

至于SSL,你就不能直接用普通socket传了,需要连接一个SSL库(应该是要用这个库里面的函数来处理网络操作,这个我还没用过,给不了你太具体建议),而你在应用层中填写的数据还是标准的明文HTTP数据,收到的也是。

论坛徽章:
0
3 [报告]
发表于 2009-02-22 18:25 |只看该作者

回复 #2 Cyberman.Wu 的帖子

那个JSESSIONID是我向服务器提交一个GET请求后获得的响应中带有的东西,就是这样的:
Set-Cookie:JSESSIONID=B928E3CBFEABBA8264E962964642CFED;

我是使用的openssl库做的,就是把普通的socket绑定到一个SSL对象上,就可以实现加密传输了。
在GET到页面以后,这个页面上有一个表单,我需要填写。
我想通过抓包的方式看看使用浏览器与服务器通信时的报文是什么样子的,但是得到的都是一些加密后的东西,完全看不懂

论坛徽章:
0
4 [报告]
发表于 2009-02-22 23:56 |只看该作者
抓包工具有些好像也可以分析SSL,只要把key给它,不过这种功能我没用过。

Set-cookie是在头部的,不过表单是在HTML文本中的,你要根据<form><input ...>...</form>来分析。如果是固定的,就处理这一个页面,实际上你直接生成提交的POST请求即可;如果只需要这个Cookie,你把Cookie值分析出来POST的时候带上去就是了。如果要学习POST是如何发数据的,则可以找一个明文的网站抓包看一下就可以了,很简单的。

[ 本帖最后由 Cyberman.Wu 于 2009-2-22 23:59 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP