搜狗浏览器教育网加速所用代理协议初探

二月 28, 2009
后注(09-04-14):其实Sogou浏览器的代理功能是独立的,可以单独利用,分析其协议意义不大,见通过Wine使用Sogou浏览器的教育网加速代理

搜狗浏览器的教育网加速功能,对n多在学校使用校园网的用户来说可是福音,更别提其附带的翻墙功能。自从搜狗浏览器发布那天起,我就对其所用的代理服务器虎视眈眈:要是能在其他浏览器使用,多好啊……

早前,用Wireshark嗅探搜狗连接加速代理的数据包,找到如219.234.81.(64/65/)66、219.234.81.(35/36/37)等几个服务器,看其发送的数据包,好像和HTTP代理差不多!试着将其加入Firefox的代理……果然吃的是闭门羹:Try Sogou Explorer now!

也看到搜狗发出的HTTP GET带有一些私有头部X-Sogou-XXXX的,估计有一些校验机制,就暂时放下了。

这几天校园网特别不稳定,又打起搜狗的主意。

感谢Python能够用这么简单的语句给我提供实验的环境,现在已经肯定下面的代码能够通过搜狗的代理访问到google的主页!程序输出的确实是Google的HTML代码!

#!/usr/bin/python
 
import socket, sys
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 
s.connect( ("219.234.81.66", 80) )
 
data = "GET http://www.google.com/ HTTP/1.1\r\nHost: www.google.com\
\r\nX-Sogou-Auth: 438892784B65C0ADAB8B42F1BF6E7984/91/1ac66c2d240157be\
\r\nX-Sogou-Tag: 82cfc55e\r\nX-Sogou-Timestamp: 49a7fa22\r\n\r\n"
 
s.sendall(data)
 
while 1:
    buf = s.recv(4096)
    if not len(buf):
        break
    sys.stdout.write(buf)

然而,现在高兴还为时过早,这个程序我发送的HTTP头信息如下:

GET http://www.google.com/ HTTP/1.1
Host: www.google.com
X-Sogou-Auth: 438892784B65C0ADAB8B42F1BF6E7984/91/1ac66c2d240157be
X-Sogou-Tag: 82cfc55e
X-Sogou-Timestamp: 49a7fa22

已经确定这三个X-Sogou是必须的头验证,缺一不可,改掉其中任意一个的值,也不行。

其中X-Sogou-Auth的值一直不变,估计和系统、硬件有关。

X-Sogou-Tag一直在变,摸不清头绪。

X-Sogou-Timestamp似乎如其名字,和时间有关,每次发出都大概和秒表一样加一。

……  ……  ……  ……  ……  …… 接下来做了以下的猜测:

X-Sogou-Timestamp似乎是一个数值,按16进制输入计算器,将其转换成10进制数字,得到1235745314……恩,想起之前外国很多IT媒体都在兴奋的报道,情人节那天,Sat Feb 14 07:31:30 CST 2009——的时候的Unix时间值是1234567890,难道这个就是当前的Unix时间值?马上验证:

>>> time.ctime(1235745314)
'Fri Feb 27 22:35:14 2009'

强大!果然是刚才的时间!貌似看到希望的曙光了!

…… …… …… …… …… …… ……

然而,过了n久,运行刚才的python脚本,依然可以正常输出!看来代理服务器并没有校验Timestamp的值是否合理……那么唯一的解释,就是用Timestamp来做验证的密码了……

观察X-Sogou-Tag,刷新一个网页往往会发出很多个连接,包括图片、css文件什么的,发现同一秒中发出的连接,Timestamp值相同,Tag的值也相同!Tag由Timestamp决定!

…… …… …… …… …… …… ……

继续观察,发现Timestamp相同,但是域名不同的网站,Tag也不同,X-Sogou-Domain也不定时出现……

…… …… …… …… …… …… ……

哎,可恶的Tag,貌似Out of my reach了……看来自己还是当不成黑客,密码学领域知识很空白……对数字也没那个敏感……

收获就是对HTTP头的结构了解……上网查过,居然没有一点资料详细说!害我在wireshark里面对着那些16进制一个个字节的看!

tags: , , , , , , ,
posted in Programming, Python by PT

Follow comments via the RSS Feed | 留下评论 | Trackback URL

13 Comments to "搜狗浏览器教育网加速所用代理协议初探"

  1. wrote:

    同样想邪恶的想法!

    回复回复
  2. dreamer wrote:

    喔,强淫一个啊……

    回复回复
  3. Iven wrote:

    这个恐怕要靠反编译了……

    回复回复
  4. Solon wrote:

    Firefox用户: 强淫一个,精神上支持你的研究。期待你早日修成正果。

    回复回复
  5. PT wrote:

    ……鉴于现在翻墙软件铺天盖地,还是先看看了,哈哈

    回复回复
  6. Lily wrote:

    不用这么麻烦,用Process Explorer仔细瞧瞧它的第二个进程的TCP/IP....

    回复回复
  7. PT wrote:

    楼上一语点醒,Sogou浏览器专门在后台开了的proxy的进程,用-proxy参数启动的,加以利用即可!

    回复回复
  8. 通过Wine使用Sogou浏览器的教育网加速代理 - apt-blog.net IT民工养成计划 PT博客 wrote:

    [...] Software, Unix/Linux 发布于: 2009.04.14 星期二 此前用wireshark嗅探研究过Sogou浏览器的代理功能,没什么头绪,有访客留言说用Process [...]

  9. 小三 wrote:

    呵呵~Windows用户飘过!

    回复回复
  10. iCity wrote:

    我也想用其他的浏览器使用搜狗的代理

    回复回复
  11. iCity wrote:

    刚搜索到了解决使用搜狗代理的方法了,直接调用搜狗的加速进程就可以实现。

    回复回复
  12. Mike wrote:

    挖一个坟

    似乎TAG是根据Host字段来的,然而host字段似乎完全可以无视,就随便写个www.google.com就可以,这个host字段和最终的发送的host字段是无关的。最终的字段永远是根据url里面的domain指定的:)

    回复回复
  13. michael wrote:

    貌似现在最新的2.0.0.1049版本不是这样了吧?

    回复回复

Leave Your Comment

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。

Page optimized by WP Minify WordPress Plugin

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org