另类方法劫持手机流量

实际上看,CharlesProxy并不能100%地“劫持”到手机的https流量,说“劫持”可能不太合适,因为CharlesProxy根本都不把这个443端口的请求在请求列表里显示出来。 这次玩的是GameLoft的Asphalt Xtreme,从google play store下载下来玩后,发现游戏的免费门槛太高了,随便玩玩不消费就进行不下去。 之前玩GameLoft的游戏改数据,都是iPhone下备份数据,修改存档,因为那些游戏有存档。但是这次主要用了Android,且没有root。试过iOS的版本,文档里没看到明文数据(txt/bin都没有)。本来想找个游戏修改器试试,后来没继续下去。 具体选型上,我是在EdgeRouter Lite上跑了个redsocks。因为是临时方案,所以不考虑使用EdgeOS/VyOS的配置语法,而直接使用了iptables。 协议分析和数据劫持,使用了CharlesProxy,因为CharlesProxy支持socks代理,还自带”Rewrite”功能,可以做简单字符串替换和正则替换。 环境: 路由 EdgeRouter Lite 固件1.9.1,IP 192.168.1.1,基于debian wheezy Redsocks,0.4+dfsg-1,下载地址 https://packages.debian.org/wheezy/redsocks 电脑 MacBook Pro macOS 12 + CharlesProxy 4.x, IP 192.168.1.20,HTTP端口8888,Socks端口8889 手机 Mate 9,IP 192.168.1.40; 路由端 ERL是mips/mips64,从debian官网下载mips版的deb,直接 dpkg -i 安装即可。如果路由上没有libevent,还得下载装一下。 安装好redsocks后,修改 /etc/default/redsocks,修改START=yes。 直接基于 /etc/redsocks.conf 修改

改local_ip的原因是因为我iptables偷懒了。反正用完就关,无所谓。 使用 /etc/init.d/redsocks start启动服务。 iptables 只劫持了来自 192.168.1.40 的tcp 443的流量,修改到了12345端口。

电脑 开启CharlesProxy的Socks服务 … Continue reading “另类方法劫持手机流量”

内网半透明代理

因为不是传统意义上的透明代理,但是基本体验又差不多,姑且称之半透明代理。 背景 公司网络差,内网服务器的微信页面开发经常会被外网带宽影响到,一方面是因为引用了微信、阿里的js、css、字体等资源文件,另一方面,因为早前开发团队留下的坑,存在七牛云上的静态文件从接口端下发的url都带了实时的时间戳。 思路 先处理图片url带时间戳的坑,一方面接口是公共的,我在中间加了一层代理后,把无用的参数过滤掉,强制对结果做了一次小缓存;再安排接口端的同学改造遗留问题,确定了有意义的数据作为版本参数。这样至少保证终端用户能看到304,而不是每次都是200。 然后,所引用的静态文件,都是长时间不会修改的,公司网络如此糟糕的情况下,完全可以在本地搭建一个代理,把请求文件缓存下来。 方案 HTTP的代理很简单,nginx配置一个反向代理即可。 之前某些原因,nginx外边还加了一个haproxy,具体原因会在其他文章里解释。 haproxy可以作为 SNI proxy 使用,而流入的请求无非是http明文传输,或者https传输,需要代理的都是TCP的,所以 nginx 处理 http请求,haproxy 判断 SNI,转发tcp到定制的backend。 在此之前,需要在内网搭建 DNS 服务器,(这里我用了 dnsmasq),可以选择将内网 DHCP 的DNS服务器指向这里,或者把非 DNS 所在服务器的所有UDP 53的包转发到这个服务器上。 我的方案里,所有的服务都在内网的一台机器上。haproxy 监听了 内网IP的80,443端口,nginx 监听了 127.0.0.1:80,还有127.0.0.1:443给gitlab使用。 nginx配置很简单:

haproxy的配置同样:

需要指出的是,我ssl的backend的server,都是 dig 实际域名,拿第一级cname来用的。 最后 dnsmasq 劫持你所需要的域名的解析即可。 Incoming search terms:sni proxysni proxiesSNI方案family3u7sight1l4schoolw98poundrnnnegative4epnear6tulengthy5uharbor6h6accident7t5透明代理 mitmdeep579copyweucontrast76tbringf1qbehaviorik8avoidnopatequ5Link to this post!

Nginx 反向代理 过滤Cookie

一个项目需求需要过滤HTTP头中的特定cookie项目。 代理使用nginx搭建,编译参数如下:

其中用到了两个插件: https://github.com/simpl/ngx_devel_kit https://github.com/openresty/lua-nginx-module 参考示例:

参考过滤脚本:

测试用例

Incoming search terms:floatingh3vnginx lua filterLink to this post!

PHP ODBC Connect Cloudera Impala and Hive

Environment CentOS 5.5 PHP 5.3.10 (This article also works for PHP 5.3.3 on CentOS 6). Dependencies UnixODBC UnixODBC can be installed from yum repo

I built a unixODBC 2.3.2 from source, installed to /usr/local/unixODBC ODBC Connectors Cloudera offers ODBC libs for both Hive and Impala: http://www.cloudera.com/content/support/en/downloads/connectors/impala/impala-odbc-v2-5-15.html http://www.cloudera.com/content/support/en/downloads/connectors/hive/hive-odbc-v2-5-9.html Follow the install guide on urls above, … Continue reading “PHP ODBC Connect Cloudera Impala and Hive”