スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

なるほど…………

之前各大新闻媒体都已经登载了GFW可以解开流行的phpproxy代理所使用的base64编码,然后进行过滤的消息。

我在这里报告的是GFW对base64编码处理的具体模式。(怎么有股在写论文的味道,orz)


测试基于下列几个URL:

gnu.org/www.blogspot.com

gnu.org/d3d3LmJsb2dzcG90LmNvbQ== ("www.blogspot.com"的base64编码)

gnu.org/aHR0cDovL3d3dy5ibG9nc3BvdC5jb20= ("http://www.blogspot.com"的base64编码)

以及gnu.org/aaaHR0cDovL3d3dy5ibG9nc3BvdC5jb20= (在前者开头补充了两个a,这整个字符串并不是一个正确的base64编码)


测试结果,第2个URL冲破了GFW,而另外3个都惨遭毒手。

第1个URL会被干掉是显然的。但为什么正确地编码的第二个URL没有被拦截,反而根本没有意义的URL4被拦截了呢?

我一开始的猜想是,GFW根本没有对base64进行解码,而仅仅是将需要过滤的关键词的可能的base64编码全部也作为关键词处理(例如,.blogspot.com有三个可能的特征码,因为base64是一种3->4的编码方案)。但很快这个猜想就被否定了,因为 gnu.org/HR0cDovL3d3dy5ibG9nc3BvdC5jb20=(去掉开头的a)也同样冲破了过滤,如果没有进行base64解码而是用特征码来搜寻的话,这种事几乎是不可能的。

于是剩下可能的解释就只有一个:GFW实际上是首先将"http:/"的base64编码"aHR0cDov"作为关键字,当URL里面出现这个关键字的时候,就将以"aHR0cDov"开头的整个字符串进行base64解码,然后做二次过滤。

所以,尽管"aaaHR0cDovL3d3dy5ibG9nc3BvdC5jb20="根本不是一个正确的base64编码字符串,进行解码的也只是从"aHR0cDov"开始的部分。

而phpproxy代理,虽然可以直接接受不带http://协议头的字符串作为请求,比如:

"php?q=d3d3LmJsb2dzcG90LmNvbQ=="

但是,它会返回302,跳转到一个标准的,补充了http://协议头的字符串:

HTTP/1.1 302 Moved Temporarily
Date: Sat, 18 Jul 2009 11:52:44 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Location: http://************/******.php?q=aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS

于是就被GFW日了。


不过分析这个有什么用呢?答案是一点用都没有。大概只是好玩吧。要fuck gfw还是要想点别的法子。
スポンサーサイト

主题 : 情報処理技術者試験
分类 : コンピュータ

发表评论(*请使用半角标点符号)

不公开的评论

个人情报

とある姉コン

Author:とある姉コン
轻小说,ACG,IT相关。

本人则是姐控的死宅(啥),专业是物理化学和高性能计算,有悠久历史(从2000年开始算的话)的代码民工,没了。

ココロ
RSS
最新日志
最新评论
分类
検索フォーム
Tag

虚假的完美世界 EP 姐控 网络 真实的悲惨世界 破鞋党 后宫 絶望した! 文学少女 化物語 HTTP代理 MPC-HC Little_Busters! Fate 文学批评的性别观 戦場ヶ原さま大好き 无限循环 学生会 游戏 K-ON 笨蛋测验召唤兽 DNS服务 Galgame创作 RivaTuner 人渣 自爆 Room.No.1301 GPU-Z 4850HD IE8 WPF Rita UAC windows_live CLANNAD Windows_Gadgets 空境 

友情连接
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。