让风了还有别的wwWnaixiu33风暴要塞副本入口在哪吗,wlan的网络naixiu33com不支持是吗

&figure&&img src=&https://pic2.zhimg.com/v2-fedd60a10b_b.jpg& data-rawwidth=&550& data-rawheight=&365& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&https://pic2.zhimg.com/v2-fedd60a10b_r.jpg&&&/figure&&h2&&b&一、前言&/b&&/h2&&p&总所周知,现在国内的普通宽带普遍都使用了内网 IP 地址。&/p&&p&如果想要搭建服务器,一般来说要么直接在云主机上搭建,要么在本地搭建然后借助云主机进行内网穿透。&/p&&p&由于云主机上存储空间的价格一般都比较昂贵,所以大多数人还是会选择内网穿透。&/p&&p&一说到搭建内网穿透服务器,可能大多数人(包括我)第一反应都是使用 Ngrok。&/p&&p&Ngrok 确实是一个很好的内网穿透全套解决方案,但是配置和管理都比较复杂,而且现在新版的 Ngrok 也已经开始商业化(闭源)了。&/p&&p&我一开始也是打算使用 Ngrok,但是弄了好久都不成功。结果在探索途中突然发现了 autossh 这玩意,顿时豁然开朗。我怎么就把 SSH 这么好的功能给忘了……&/p&&p&autossh 使用了系统原生的 SSH 端口映射功能,性能开销非常小。&/p&&p&autossh 的配置也极其简单,只需要在服务器和客户端上进行少许的配置即可完成内网穿透。&/p&&p&本文纯属个人学习经验分享,仅供参考。如有错误请及时提出,谢谢!&/p&&h2&&b&二、操作环境&/b&&/h2&&blockquote&服务器:CentOS 7.4.1708 最小安装、关闭防火墙&br&客户端:CentOS 7.4.1708&/blockquote&&h2&&b&三、服务器的配置&/b&&/h2&&h2&&b&3.1 配置 SSH 服务器&/b&&/h2&&p&请使用 vim 之类的文本编辑器打开 &code&/etc/security/limits.conf&/code&。&/p&&p&找到包含 &code&GatewayPorts&/code& 字符串的这一行,然后将这一行改为:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&GatewayPorts clientspecified
&/code&&/pre&&/div&&p&也可以直接在文件末尾添加上面这一行。&/p&&p&接下来检查一下包含 &code&PubkeyAuthentication&/code& 字符串的这一行,确定该行内容为:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&PubkeyAuthentication yes
&/code&&/pre&&/div&&p&(不是的话请手动修改)&/p&&p&修改、检查完成之后请保存文件。&/p&&p&该步骤的目的是允许客户端指定服务器内网穿透服务监听的端口,以及确认允许客户端使用密钥登录。&/p&&h2&&b&3.2 重启 SSH 服务&/b&&/h2&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&systemctl restart sshd
&/code&&/pre&&/div&&h2&&b&四、客户端的配置&/b&&/h2&&h2&&b&4.1 安装 autossh 软件包&/b&&/h2&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&yum -y install autossh
&/code&&/pre&&/div&&h2&&b&4.2 生成 SSH 密钥,并上传至服务器&/b&&/h2&&p&请移步我写的另一篇文章 &a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&「SSH 设置密钥对实现免密码连接」&/a&。&/p&&h2&&b&4.3 启动内网穿透&/b&&/h2&&p&&b&命令常用方法&/b&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&autossh -p &服务器 sshd 监听端口& -M &监控端口& -fN -o &PubkeyAuthentication=yes& -o &ServerAliveInterval 5& -o &ServerAliveCountMax 6& [-o ProxyCommand=&nc -x &SOCKS 服务器地址&:&SOCKS 服务器端口& %h %p&] -R &远程服务器监听 IP&:&远程服务器监听端口&:&要映射服务的 IP&:&要映射服务的端口& &服务器用户名&@&服务器 IP/域名&
&/code&&/pre&&/div&&figure&&img src=&https://pic2.zhimg.com/v2-59cfc05d6bc70a7501f5_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1536& data-rawheight=&952& class=&origin_image zh-lightbox-thumb& width=&1536& data-original=&https://pic2.zhimg.com/v2-59cfc05d6bc70a7501f5_r.jpg&&&/figure&&p&&b&举例说明&/b&&/p&&p&把本地的 &code&80&/code& 端口映射到服务器上的 &code&8080&/code& 端口。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&autossh -M 10080 -fN -o &PubkeyAuthentication=yes& -o &ServerAliveInterval 5& -o &ServerAliveCountMax 6& -R 0.0.0.0:.0.1:80 root@server
&/code&&/pre&&/div&&p&执行完 autossh 命令之后,系统就会一直维护这条映射条目,您就可以高枕无忧了!哪怕是网络不稳定,或者说服务器宕机重启了,在恢复正常的时候映射都会自动恢复。&/p&&p&启动 autossh 之后,可以看到一个 &code&ssh&/code& 的子进程,这个子进程才是真正在执行端口映射的 SSH 进程。&/p&&p&如果想立即终止 autossh 并取消端口映射,可以使用 &code&kill -9&/code& 命令直接杀死 autossh 进程。&/p&&p&如果想配置开机自动映射,直接把一整条命令写进 &code&/etc/rc.local&/code& 文件即可,非常方便。&/p&&h2&&b&五、总结 & 注意事项&/b&&/h2&&p&如果需要映射的端口不多,只有几个的话,autossh 确实是最佳选择。&/p&&p&但是如果需要映射大量端口,建议还是使用类似 Ngrok 的端口映射工具,毕竟这类工具拥有比较完善的管理功能。&/p&&p&? &b&还有一点非常重要&/b& ?&/p&&p&鉴于目前的网络形势,如果需要把端口映射到国外的云主机上,那么我强烈建议把 SSH 流量封装到其它安全的协议中!&/p&&p&否则,一旦 SSH 的流量稍微一大,就非常容易导致云主机的 IP 无法访问。&/p&&p&具体实现方法我这里就不说了,请大家自行摸索,免得惹麻烦。&/p&
一、前言总所周知,现在国内的普通宽带普遍都使用了内网 IP 地址。如果想要搭建服务器,一般来说要么直接在云主机上搭建,要么在本地搭建然后借助云主机进行内网穿透。由于云主机上存储空间的价格一般都比较昂贵,所以大多数人还是会选择内网穿透。一说到搭…
&p&&b&&a href=&https://www.zhihu.com/people/dockersky& class=&internal&&我在Docker 1.7.x就开始用了, 三年多的使用经验,趟过各种坑。如下建议,认为不错的请给个赞,有问题请私信我!&/a&&/b&&/p&&p&&b&入门级:&/b&&/p&&ul&&li&linux基础命令,例如:yum,ls,top,iptables&/li&&li&网络基础知识,例如:host,bridge&/li&&li&3.git/docker常用命令:docker run/stop/ps/commit/save/exec&/li&&/ul&&p&
这个阶段撸官方文档:&a href=&//link.zhihu.com/?target=https%3A//docs.docker.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Docker Documentation&/a&&/p&&p&&b&中级:&/b&&/p&&ul&&li&linux 内核,namespace,cgroup&/li&&li&深入理解Docker网络原理,借助第三工具(Flannel,Calico)搭建网络模型。&/li&&li&深入理解Docker文件系统和存储原理。&/li&&/ul&&p&&b&高级:&/b&&/p&&ul&&li&这个阶段就是能能对Docker的网络模块,存储模块等模块进行调优。要对GO有一定的基础,尝试对一些部件的更改。&/li&&/ul&&p&
github地址:&a href=&//link.zhihu.com/?target=https%3A//github.com/moby/moby& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&moby/moby&/a&&/p&&p&&b&应用级:&/b&&/p&&p&一整套编排方案,主要有涉及以下部分:&/p&&ul&&li&配置管理(anisble,saltstack,jumperserver)&/li&&li&持续集成和持续部署(Jenkins,git,gitlab)&/li&&li&服务编排(k8s,swarm,mesos,rancher)&/li&&li&网络模型(host,bridge,Flannel,Calico)&/li&&li&服务注册(etcd)&/li&&li&服务发现(confd)&/li&&li&日志平台(ELK, loghub)&/li&&li&监控平台(zabbix,cadvisor,prometheus,grafana)&/li&&li&脚本开发(shell,python)&/li&&/ul&&p&&b&一套完整的方案可以看这里:&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&基于Docker持续交付平台建设的实践&/a&&/b&&/p&
入门级:linux基础命令,例如:yum,ls,top,iptables网络基础知识,例如:host,bridge3.git/docker常用命令:docker run/stop/ps/commit/sa…
&p&来说个不算太冷但很实用的有关于音乐资源的小技巧。&/p&&p&我们在用一个音乐平台的播放器的时候,很有可能因版权问题该平台没有某首歌或专辑,但其他平台上有,但是那首歌在该平台上一般无法从网页上直接下载,要下载要求你必须下载该平台的音乐播放器,然后安装、登陆、下载音乐(最后卸载软件)。当然如果自己能在网上找到该音乐资源下载了还好,但是比较懒或找不到的话难道只能迫于无奈安装其他音乐软件了吗?&/p&&p&没必要。我们还是可以很简单地直接把将那首歌下载下来。从技术上来说,&b&一切在互联网上展示的资源都可以直接保留到本地&/b&,即真正的“所见即所得”,不仅限于音频,视频等其他资源也有办法。&/p&&p&&br&&/p&&p&下面来演示一下如何获取这类音乐的音频文件,比如说我们要下载五月天的“你不是真正的快乐”,先百度“你不是真正的快乐 五月天”:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-1914ede64fe13acde03b17effce178ad_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&827& data-rawheight=&461& class=&origin_image zh-lightbox-thumb& width=&827& data-original=&https://pic2.zhimg.com/v2-1914ede64fe13acde03b17effce178ad_r.jpg&&&/figure&&p&我们可以看到这首歌QQ音乐、虾米音乐、酷我音乐、酷狗音乐平台上都有,就是某个平台上没有。我们随便点击一个平台的那首歌的链接,比如说图中箭头所指的QQ音乐。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-bf8f786fe583c98cd95a51_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1357& data-rawheight=&648& class=&origin_image zh-lightbox-thumb& width=&1357& data-original=&https://pic2.zhimg.com/v2-bf8f786fe583c98cd95a51_r.jpg&&&/figure&&p&然后点播放,会进入下图的这个页面。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-80e9f27c84cdeef_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1348& data-rawheight=&659& class=&origin_image zh-lightbox-thumb& width=&1348& data-original=&https://pic4.zhimg.com/v2-80e9f27c84cdeef_r.jpg&&&/figure&&p&&br&&/p&&p&下面,重点来了!!!在该页面下按F12(一些笔记本电脑需要按Fn+F12)进入浏览器的开发者模式。我用的是Chrome浏览器,其他浏览器都类似。如图所示,先点击网络选项卡,然后在底下的次级选项卡中点击媒体(即只显示加载的媒体文件)。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-00ad164eadcde95fd6c52a4cf0c769c2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1362& data-rawheight=&654& class=&origin_image zh-lightbox-thumb& width=&1362& data-original=&https://pic3.zhimg.com/v2-00ad164eadcde95fd6c52a4cf0c769c2_r.jpg&&&/figure&&p&&br&&/p&&p&我们可以看到,底下什么也没有。这时候你点下刷新或按下F5。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-d3aac20c1f4e0f2fe1cba1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&412& data-rawheight=&667& class=&content_image& width=&412&&&/figure&&p&如图所示,出现了一条记录,这就是我们要的音频文件的链接!&/p&&p&&br&&/p&&p&&br&&/p&&p&这时我们可以右键那条记录,选择在新窗口中打开或者复制该链接然后在地址栏中输入并打开页面。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-9ebda8de66f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1206& data-rawheight=&693& class=&origin_image zh-lightbox-thumb& width=&1206& data-original=&https://pic2.zhimg.com/v2-9ebda8de66f_r.jpg&&&/figure&&p&这就是该音频文件的显示界面(不同浏览器显示效果不一样)。右键,选择保存(另存为),这时就可以下载这首歌到本地了!&/p&&p&是不是很简单!下载好后你可以选择将这首歌上传到某个国内音乐软件的云盘中,然后收藏到歌单,各端同步很方便的有没有!&/p&&p&&b&这种方法不仅仅适用于QQ音乐,其他音乐平台网站以及能播放音频的网站都适用。&/b&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&另外,给用Chrome浏览器的小伙伴推荐几款非常实用的Chrome插件(需科学上网)。&/p&&ol&&li&&a href=&//link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/adblock/gighmmpiobklfepjocnamgkkbiglidom%3Fhl%3Den-US& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Adblock&/a& / &a href=&//link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/adblock-plus/cfhdojbkjhnklbpkdaibdccddilifddb%3Fhl%3Den-US& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Adblock Plus&/a&:常用的页面广告屏蔽插件,选择任意一个就好。&/li&&li&&a href=&//link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/%25E6%259C%%E8%25AF%258D%25E5%chrome%25E5%E8%25AF%258D%25E6%258F%%25BB%25B6/eopjamdnofihpioajgfdikhhbobonhbb%3Fhl%3Den-US& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&有道词典Chrome划词插件&/a&:如图所示,有道出品,划词即可快速给出翻译词条。&/li&&/ol&&figure&&img src=&https://pic3.zhimg.com/v2-6fe846c1f7d84aaa9760a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1007& data-rawheight=&506& class=&origin_image zh-lightbox-thumb& width=&1007& data-original=&https://pic3.zhimg.com/v2-6fe846c1f7d84aaa9760a_r.jpg&&&/figure&&p&3.
&a href=&//link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb%3Fhl%3Den-US& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Vimium&/a&:我最喜欢的插件之一,可完全摆脱鼠标用键盘浏览网页。用的熟练的话效率特别高。&/p&&p&4. &a href=&//link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/markdown-here/elifhakcjgalahccnjkneoccemfahfoa%3Fhl%3Den-US& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Markdown Here&/a&:在网页上可书写Markdown格式的文本,然后选中,右键Markdown Here插件即可完美转换为Markdown效果!对于微信公众号文章的编辑很赞。&/p&&p&5. &a href=&//link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo%3Fhl%3Den-US& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Tempermonkey&/a&:油猴脚本,脚本管理工具,用于管理针对一些特定网站的js脚本。在&a href=&//link.zhihu.com/?target=https%3A//greasyfork.org/en/scripts& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&User scripts&/a&上可以淘到很多实用的脚本,如图所示。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-262dac6e537d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1366& data-rawheight=&677& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic2.zhimg.com/v2-262dac6e537d_r.jpg&&&/figure&
来说个不算太冷但很实用的有关于音乐资源的小技巧。我们在用一个音乐平台的播放器的时候,很有可能因版权问题该平台没有某首歌或专辑,但其他平台上有,但是那首歌在该平台上一般无法从网页上直接下载,要下载要求你必须下载该平台的音乐播放器,然后安装、…
&figure&&img src=&https://pic1.zhimg.com/v2-afb2fc744cf59d5df2eb8f_b.jpg& data-rawwidth=&647& data-rawheight=&366& class=&origin_image zh-lightbox-thumb& width=&647& data-original=&https://pic1.zhimg.com/v2-afb2fc744cf59d5df2eb8f_r.jpg&&&/figure&&p&匿名上网的方式有很多,在本文中将比较几种最常见的匿名上网方式的优缺点,取长补短、结合使用。除了避免泄漏个人隐私外,还可以绕过越来越严格的墙。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-3b3d91173_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&647& data-rawheight=&366& class=&origin_image zh-lightbox-thumb& width=&647& data-original=&https://pic4.zhimg.com/v2-3b3d91173_r.jpg&&&/figure&&p&&br&&/p&&p&1、Proxy代理&/p&&p&2、VPN&/p&&p&3、Tor网络&/p&&p&4、Tor+VPN组合&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&什么是代理?&/b&&/p&&p&代理是在用户电脑和网络间,另外增加一台电脑,所有或部分上网行为会通过这台电脑向外发出。一般有公共和私人代理,私人代理服务器需要额外付费使用,因此比公共代理服务器稳定。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-36a566f0fddc357e869b8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&404& data-rawheight=&254& class=&content_image& width=&404&&&/figure&&p&&br&&/p&&p&SOCKS服务器是代理服务器中用来连接电脑客户端和另一台服务器之间的TCP网络连接,连接完成后就可以发送网络数据流量。它适用于任何网络环境和网络端口。SOCKS V5 还增加了安全性和UDP连接。&/p&&p&&br&&/p&&p&SOCKS服务器不会对客户端和服务器之间的网络通信进行解析,因此经常被用来连接被网络防火墙阻挡的客户端与某些服务器之间的网络TCP通信连接。现在大多数浏览器都已经支持SOCKS服务器连接的配置,客户端也需要能配置使用SOCKS连接,才能连接到SOCKS服务器。在Windows操作系统上,需要在TCP连接层上在添加一层逻辑层才能运行代理软件使用SOCKS连接。Hummingbird就是一个Windows平台上免费的典型SOCKS产品。&/p&&p&&br&&/p&&p&HTTP代理和SOCKS代理类似,都可以为客户端和服务器之间建立安全的TCP网络连接。但它和SOCKS最大的不同在于,HTTP代理只会解析客户端与服务器之间的HTTP网络协议连接,由于只能解析HTTP网络协议,加以利用这个特性就可以在某些方面加速网络连接。例如,很多网络运营商都使用HTTP代理来加速常用网站连接速度和网站缓存,直接将所有网络数据通过80端口号的HTTP代理传输。&/p&&p&&br&&/p&&p&&b&代理的优势:&/b&&/p&&p&1、类似网络过滤器。针对所有的浏览器有效。&/p&&p&2、代理服务器的配置决定了该代理的使用价值。&/p&&p&3、只对浏览器的网络流量进行代理,其他的网络连接并不会经过代理服务器。&/p&&p&&br&&/p&&p&&b&代理的劣势:&/b&&/p&&p&1、如今常用的代理协议主要是SOCKS和HTTP/HTTPS。SOCKS和HTTP代理没有加密功能,HTTPS协议同样使用了SSL网络连接加密技术。&/p&&p&2、代理只对保护浏览器的网络数据,对于其他应用程序的网络流量没有保护。&/p&&p&3、很多代理都会继续使用用户的原始IP地址,不能满足安全要求高的用户。&/p&&p&4、需要针对每个应用程序单独设置代理规则,有些麻烦,而且一些应用程序不支持代理设置。&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&什么是VPN?&/b&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-0f82bdfbff0f49fb69348ffe7d5a0dd7_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&404& data-rawheight=&254& class=&content_image& width=&404&&&/figure&&p&&br&&/p&&p&虚拟私人网络(VPN)可以让用户安全地连接到另一个地方的网络,电脑和VPN服务器之间建立了一条虚拟通道,所有的网络数据都加密后经过VPN服务器传输,保证了网络数据的安全性。VPN和代理最大的不同在于对所有网络数据都进行加密,包括电脑上安装的所有应用程序的网络连接也将通过VPN传输,因此VPN服务器的配置相当关键,这关系到连接的速度、定位信息和安全性。&/p&&p&&br&&/p&&p&&b&VPN的优势:&/b&&/p&&p&1、快速。总的来说和不用VPN时的网速差不多。&/p&&p&2、不同地理位置切换方便。由于VPN服务商在全球各地都有服务器,因此可以切换不同的地区,这样就可以访问到一些地理位置受限的网络内容。&/p&&p&3、理想的P2P文件分享机制。尽管很多VPN服务商都禁用了该功能,但是VPN确实最适合进行P2P文件分享的。&/p&&p&&br&&/p&&p&&b&VPN的劣势:&/b&&/p&&p&选择VPN服务商时最重要的就是不要存储数据和通信日志。一旦政府要求VPN服务提供商提供日志文件,那用户的隐私都会被暴露。除此之外,VPN服务商还需要在服务器上部署负载均衡和服务器随机选择,这样方便用户随时切换VPN服务器。&/p&&p&1、VPN服务商可以掌握用户的行为记录,很多国家的VPN根据当地法律需要保存日志上交政府部门备案。&/p&&p&2、VPN的服务器会遭到执法部门没收,因此选择VPN服务商时最好是不会保存日志文件以免日后个人隐私暴露。&/p&&p&3、VPN的价格比较高。&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&什么是Tor?&/b&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-335b14b19d5deb5cfc13e1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&404& data-rawheight=&254& class=&content_image& width=&404&&&/figure&&p&&br&&/p&&p&Tor是一款免费的匿名上网软件,它的名字来源于最早的项目名称“洋葱路由器”。Tor将网络数据通过全球范围内的联网主机进行路由,一般需要经过超过6000次路由传输,这样会将用户的原始网络数据完全隐藏,很难被探测到。能够被路由的网络数据包括:网站访问、在线发帖、即时通信等,Tor不仅可以保护用户网络传输的隐私,还可以保证Tor网络的独立自由性。&/p&&p&&br&&/p&&p&洋葱路由是在应用层的通信协议架上进行加密,加密过程可以理解为像一个洋葱。将网络数据、目的IP地址随机、多次地通过Tor网络中的各个节点形成的虚拟链路进行路由中继。每次中继只会将最外层的数据解密,然后发给下一个中继继续解密,这样一层层解密后到了最后一个中继才会得到原始网络数据和原始IP地址。由于在中继过程中,每次只有部分解密,因此任何一个中继点即使被监测或劫持,也不会泄露原始网络数据。这样的去中心化网络将最大程度加密用户的网络连接数据。&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&Tor网络优势:&/b&&/p&&p&1、没人可以查找到目的IP。&/p&&p&2、分布式网络不可能被关停,还免费。&/p&&p&&br&&/p&&p&&b&Tor网络劣势:&/b&&/p&&p&1、如果目标网站没有使用SSL连接,那么还是有可能会泄漏原始网络连接数据。&/p&&p&2、由于中继过多,导致网络连接速度非常慢。&/p&&p&3、Tor由美国海军联合创建,一些政府也在使用,因此政府的监视很严。&/p&&p&4、不适用P2P文件分享。在Tor网络中使用BT下载非常痛苦。&/p&&p&5、由于是随机路由,因此想要通过Tor网络观看流媒体会非常卡顿。&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&Proxy、Tor、VPN一起使用:&/b&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-ea25dd62b28fade1140560_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&647& data-rawheight=&406& class=&origin_image zh-lightbox-thumb& width=&647& data-original=&https://pic1.zhimg.com/v2-ea25dd62b28fade1140560_r.jpg&&&/figure&&p&VPN的优势在于网速快;可以P2P分享下载,Tor网络的优势在于匿名性高;免费;分布式网络,两者相结合既需要考虑优势也不能忽略各自的劣势。主要有2种模式:&/p&&p&&br&&/p&&p&&b&1、VPN连接到Tor网络&/b&&/p&&p&&br&&/p&&p&电脑-& VPN -& Tor -&互联网。这种模式只能保证网络服务商不能找到用户连入Tor的证据,前提是VPN服务商不能记录使用日志。&/p&&p&&br&&/p&&p&优势:网络运营商不会知道用户在使用Tor网络。&/p&&p&劣势: 1)Tor网络的出口如果被监测,还是能找到用户使用的VPN服务商,不能保证所有VPN服务商的诚信,接下来很有可能会暴露个人隐私信息。&/p&&p&2)Tor出口端点被封杀。&/p&&p&&br&&/p&&p&&b&2、VPN连接到Tor再连接到VPN&/b&&/p&&p&电脑-& VPN -& Tor -& VPN -&互联网。这个模式需要VPN客户端支持Tor网络接入,目前只有AirVPN 和BolehVPN两家VPN服务商提供此项功能。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-8e7a2224d8dcdf3e2f6dda_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&404& data-rawheight=&254& class=&content_image& width=&404&&&/figure&&p&&br&&/p&&p&优势:最高等级的加密。&/p&&p&&br&&/p&&p&1)由于通过Tor连接到VPN服务器,因此网络提供商看不到用户的真实IP地址,只能在Tor网络的出口看到加密后的IP地址,而利用匿名支付方式购买的VPN服务,VPN服务商即使记录日志,也不能记录追踪到真实的用户信息。&/p&&p&&br&&/p&&p&2)免受恶意Tor网络出口端点的封杀,由于使用VPN接入Tor网络,因此Tor网络出口的网络连接信息还是加密的,不会被封杀。&/p&&p&&br&&/p&&p&3)从Tor网络出口传输到VPN后,还可以进行地理位置的选择,进一步对网络连接信息加密。&/p&&p&&br&&/p&&p&劣势:&/p&&p&&br&&/p&&p&1)速度非常慢,设置非常复杂。&/p&&p&2)有全球端对端定时攻击缺陷。&/p&&p&3)连接Tor网络需要使用Tor浏览器,这样网速会更慢。&/p&&p&&br&&/p&&p&因此,&b&VPN→Tor→VPN这种模式是目前匿名信最强的上网方式&/b&。不过请记住,世上没有100%的保证,这只是目前最好的匿名上网方法。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-91bf569ea585eae0808b0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&368& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/v2-91bf569ea585eae0808b0_r.jpg&&&/figure&&p&欢迎关注我们:W-Pwn科技 &a href=&https://www.zhihu.com/people/wtt-leaks/activities& class=&internal&&知乎用户&/a&&/p&&p&&/p&
匿名上网的方式有很多,在本文中将比较几种最常见的匿名上网方式的优缺点,取长补短、结合使用。除了避免泄漏个人隐私外,还可以绕过越来越严格的墙。 1、Proxy代理2、VPN3、Tor网络4、Tor+VPN组合 什么是代理?代理是在用户电脑和网络间,另外增加一台电脑…
&figure&&img src=&https://pic1.zhimg.com/v2-9cdacdf6ec6454_b.jpg& data-rawwidth=&700& data-rawheight=&233& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&https://pic1.zhimg.com/v2-9cdacdf6ec6454_r.jpg&&&/figure&&p&说到启动器,最有名的当属 Mac 上的神器 Alfred ,以及 Windows 上的 Wox。那什么是启动器呢,它是由一个命令输入框,以及一个查询结果下拉列表组成。只需要一个命令就能让电脑去完成一系列操作,如同你的管家一样,自然是很多人心目中的神器。&/p&&p&比如我输入 &code&Chrome&/code& 然后回车,启动器会自动帮我找到 Chrome 并打开它;又如遇到命令 &code&yd steward&/code& 后,启动器立刻去查询有道词典然后把 &code&管家&/code& 的释义列出来。&/p&&p&而 Steward 便是 Chrome 浏览器里的类 Alfred 启动器,在某些方面甚至是 Alfred Plus。&/p&&h2&概述&/h2&&p&在 Chrome 中,通过 Steward 简单地输入某些命令,就能完成扩展、书签、标签页管理等大部分浏览器操作。 &/p&&p&Steward 是开源项目,代码托管在 &a href=&https://link.zhihu.com/?target=https%3A//github.com/solobat/Steward& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Github&/a& 上,从 &a href=&https://link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/dnkhdiodfglfckibnfcjbgddcgjgkacd& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Chrome应用商店&/a& 安装,或 &a href=&https://link.zhihu.com/?target=http%3A//owsjc7iz3.bkt.clouddn.com/steward-3.1.5.crx& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&离线下载&/a&,官网是&a href=&https://link.zhihu.com/?target=http%3A//oksteward.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&oksteward.com&/a&。&/p&&p&先来一手举一个栗子:&/p&&blockquote&我感觉到逛知乎、头条、煎蛋等网站的时间太多了,以致于没法专心工作学习,可总是手贱管不住鼠标,肿么办!? &/blockquote&&p&只要在 Steward 的命令框里分别输入以下几条命令&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&bk8 zhihu.com
bk8 toutiao.com
bk8 jandan.net
&/code&&/pre&&/div&&p&那么这些网站在8小时内将无法正常访问,也无法解除屏蔽。妈妈再也不用担心我的工作学习了! &/p&&p&更厉害的栗子:&/p&&blockquote&我每天必刷各种科技、互联网的文章资讯,可是网站那么多,要一个一个打开,手累!还可能会有所遗忘,如何是好?!&/blockquote&&p&这样做就好,使用 Steward 创建一个 workflow,标题就叫做 &code&科技互联网资讯&/code&:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&sspai.com
readhub.me
donews.com
&/code&&/pre&&/div&&p&在命令框里输入 &code&wf kjhlwzx&/code& 或者 &code&wf 科技&/code& 甚至 &code&wf kj&/code& ,然后回车,刷刷刷,这些网站全都依次打开了。&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-085ba85bc4bebb4863c47_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1120& data-rawheight=&681& data-thumbnail=&https://pic3.zhimg.com/v2-085ba85bc4bebb4863c47_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1120& data-original=&https://pic3.zhimg.com/v2-085ba85bc4bebb4863c47_r.jpg&&&/figure&&p&&br&&/p&&p&大概你也发现了,第一个栗子也是可以做成 workflow 的,怎么样,有没有初步感觉到浏览器已经&b&被你支配&/b&了?&/p&&p&Steward 是可以比拟 AdBlock、 Stylish、Vimium 这等 Chrome 神器的,至于为什么,先不说它的&a href=&https://link.zhihu.com/?target=https%3A//steward-launcher.github.io/steward-document-zh/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&帮助文档&/a&丰富得吓人,看看它的进化之路吧。 &/p&&blockquote&什么鬼?我才不关心进化之路什么的。&/blockquote&&p&没关系,可以直接看看图,然后就你明白了。 &/p&&h2&缘由&/h2&&p&个人挺喜欢收集各种扩展,可安装多了,管理就是一个麻烦。尝试过 Chrome 应用商店的诸多扩展管理类工具,始终不尽如人意。&/p&&p&早在 2014 年底,作为一个效率控,凑巧又是一个刚用上 MBP 的前端工程师,受 Alfred 启发,开发了 Steward 这样一款浏览器里的命令启动器。&/p&&h2&开发&/h2&&h2&初始&/h2&&p&第一版很简陋,花了一个晚上,只有个简单的 &code&popup&/code& 弹框,以及两个 &code&plugin&/code& 组成的插件系统: &code&on&/code& 启用扩展,&code&off&/code& 禁用扩展。&br&此时的名字还不是 Steward,而是 Ikkyu,即聪明的「一休」的英文名。&br&虽然有点小激动,毕竟自己的第一个作品,但旅途才刚刚开始。&/p&&h2&支持拼音&/h2&&p&首先,作为中国人,不支持&code&中文拼音&/code&搜索怎么行,所以使用 &a href=&https://link.zhihu.com/?target=https%3A//github.com/hotoo/pinyin& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&pinyin&/a& 来支持。&/p&&h2&厚积&/h2&&p&接下来就是漫长的各种 plugin 的发现与开发之旅,就像沙滩上捡贝壳的小孩儿一样,每遇到一个 idea,就惊喜莫名,要立刻实现它,即使会遇到各种困难。&br&从 Github 的&code&commit&/code&记录上可以看到走过的每一步:&/p&&ul&&li&&code&yd&/code&: 有道查词, &code&his&/code&: 历史记录查询, &code&todo&/code&: 待办事项&/li&&li&&code&run&/code&: 启动应用, &code&po&/code&: pocket 文章查询, &code&del&/code&: 扩展删除&/li&&li&&code&bm&/code&: 书签查找,&code&set&/code&: 打开扩展的设置,&code&bk&/code&: 屏蔽网站&/li&&li&&code&dl&/code&: 下载记录,&code&help&/code&:帮助命令&/li&&/ul&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-f4bf884bd71474ad4bdd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1120& data-rawheight=&599& class=&origin_image zh-lightbox-thumb& width=&1120& data-original=&https://pic2.zhimg.com/v2-f4bf884bd71474ad4bdd_r.jpg&&&/figure&&p&&br&&/p&&h2&支持新标签页&/h2&&p&在某一天突然想到,这么常用的功能,为什么不放在 New Tab(新标签页) 呢?&br&于是就开启了三大使用模式之二 &b&New Tab模式&/b& 的篇章&/p&&h2&壁纸&/h2&&p&发现有些难看,怎么办?&br&果断加上了来自 Bing 的壁纸,每天一张,自动刷新。&br&此时,Steward 像是完成了自我发现,开始走进朋友、同事的视野。&/p&&h2&迷茫&/h2&&p&直到2017年某天,看着眼前的 Steward,猛然发现它跟我一样已经停滞不前了。&br&收拾好心绪,带着这种不安,开始了与 Steward 的重生之路。&/p&&h2&重生&/h2&&p&在某只小青蛙的鼓励帮助下,从 UI 开始,换掉原来的圆角输入框,一下子让 Steward 显得轻松了很多。&br&试着向外推荐了一下,看着 Chrome 扩展后台用户的陡然提升,感觉全都回来了&/p&&h2&薄发&/h2&&p&在深入体验了 &code&Alfred&/code& 以及类似命令启动器以后发现了一些共同点,都是 &code&Steward&/code& 应该有但还没有的。&br&v2.5 设置页面到来,自此可以&b&自定义&/b& &code&plugin&/code& 里各 &code&command&/code& 的 &code&trigger&/code&(触发条件)。&br&在完善了帮助说明以后,某天发现遇到好看的壁纸却无可奈何!&br&紧接着,添加壁纸&code&save&/code&按钮,以及在设置面板中可以对壁纸设置、下载、删除。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-8dbc6d083ba2be374e60c7ee10eb98d9_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1120& data-rawheight=&602& class=&origin_image zh-lightbox-thumb& width=&1120& data-original=&https://pic2.zhimg.com/v2-8dbc6d083ba2be374e60c7ee10eb98d9_r.jpg&&&/figure&&p&&br&&/p&&p&v2.6 天气查询、网址输入、搜索引擎查找,应有的功能逐步补齐。&/p&&p&&br&&/p&&p&v2.7 三大模式之「页面模式」到来,在任何页面都能用快捷键唤起 Steward。&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-c4d57d277da4d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1120& data-rawheight=&599& class=&origin_image zh-lightbox-thumb& width=&1120& data-original=&https://pic3.zhimg.com/v2-c4d57d277da4d_r.jpg&&&/figure&&p&&br&&/p&&p&v2.8 加入几乎所有的 Chrome 浏览器原生页面 url,以后无论想打开 bookmarks 、help 还是 settings 等等菜单或页面,也就一句命令的事儿。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-db39b99c9e39555ab7befa_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1120& data-rawheight=&599& class=&origin_image zh-lightbox-thumb& width=&1120& data-original=&https://pic3.zhimg.com/v2-db39b99c9e39555ab7befa_r.jpg&&&/figure&&p&&br&&/p&&p&v2.9 新增扩展类&code&plugin&/code&,在 Steward 里与其它扩展交互(&code&单词小卡片&/code&),可以说是在扩展界是 Steward 独有的功能,因为它们都有同一个作者。&/p&&p&v3.0的大改进导致了 Steward 偶尔出一些问题,以致于作者「半夜」还在修复中,然而似乎也在预示着更大的高潮。&/p&&p&到达 v3.0 的 Steward 可以说已经是准神器了,直到 v3.1 在启动器界具有 Steward 特色的功能 Workflows 闪亮登场。&br&从此 Steward 告别了一次只能执行一个操作/一条命令的局限,开始具有无限的可能,完全具备了效率神器的资格,有资格称为 Chrome 上的 Alfred Plus。当然,这还需要时间去沉淀,也需要用户去探索。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-c8da284f338a7edb02780a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1120& data-rawheight=&597& class=&origin_image zh-lightbox-thumb& width=&1120& data-original=&https://pic1.zhimg.com/v2-c8da284f338a7edb02780a_r.jpg&&&/figure&&p&&br&&/p&&p&v3.1.2到来的 &code&random&/code& 插件,看似不起眼,却使 Steward 超越了传统的「New Tab」类扩展,新标签不再仅仅只是一个花瓶,比如它可以同时扮演 TodoList、书签管理、背单词等角色。&/p&&p&&br&&/p&&h2&其它&/h2&&p&Steward 功能图示&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-a17057dfefcdc0973c4e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1120& data-rawheight=&1428& class=&origin_image zh-lightbox-thumb& width=&1120& data-original=&https://pic4.zhimg.com/v2-a17057dfefcdc0973c4e_r.jpg&&&/figure&&p&&br&&/p&&p&Steward 是个人的第一个开源项目,因而从开源社区学习到了很多东西。&/p&&ul&&li&技术栈:&code&Webpack + Vue2&/code&,当然也有 &code&jQuery&/code&、&code&pinyin&/code& 这样的库&/li&&li&设计:不懂设计,怎么办呢?设置页面用的 &code&ElementUI&/code&,图标大都来自
&a href=&https://link.zhihu.com/?target=https%3A//sspai.com/post/iconfont.cn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&iconfont.cn&/a&&/li&&li&产品:从&a href=&https://link.zhihu.com/?target=https%3A//github.com/Kenshin/simpread& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&简悦&/a&以及其它一些优秀的开源项目学习了怎么维护一个产品。当然目前 &code&Steward&/code& 还做得不够&/li&&/ul&&p&向上面提到的这些项目及作者表示感谢。&/p&&h2&关于未来&/h2&&p&自我觉得给 Steward 赋予了极大的可能性,目前有、将来也会有很多 idea 在上面展示以及探索;&br&与 Steward 同源,但没有新标签页模式的 &b&Browser Alfred&/b& 则会同步更新相应的功能。&/p&&blockquote&关注 Steward,关注它的一切,就等于关注了更有效率。&/blockquote&
说到启动器,最有名的当属 Mac 上的神器 Alfred ,以及 Windows 上的 Wox。那什么是启动器呢,它是由一个命令输入框,以及一个查询结果下拉列表组成。只需要一个命令就能让电脑去完成一系列操作,如同你的管家一样,自然是很多人心目中的神器。比如我输入 C…
&figure&&img src=&https://pic3.zhimg.com/v2-73c9fdd82d599d0f47fd9d_b.jpg& data-rawwidth=&480& data-rawheight=&260& class=&origin_image zh-lightbox-thumb& width=&480& data-original=&https://pic3.zhimg.com/v2-73c9fdd82d599d0f47fd9d_r.jpg&&&/figure&&blockquote&&i&You build it, you run it. - Werner Vogels&/i&&/blockquote&&p&现在很多互联网公司采用了微服务架构,将业务拆分,保持代码仓库尽量精简。同时一个小团队负责开发和维护一个服务,提升了开发和部署效率(软件本身的组织结构与软件团队的组织结构式一致的,即康威定律)。 知乎很多业务后端采用了 python web 框架 tornado,都是开源的、成熟稳定的技术(虽然笔者更喜欢 flask 全家桶)&/p&&hr&&h2&用 gunicorn + gevent 跑 tornado app&/h2&&p&先来写个无聊的 tornado handler,统计多个网站页面的 html 长度之和。原始代码如下,为了简单起见省去所有异常处理 (tornado_app.py):&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&import gevent.pywsgi
import requests
import tornado.wsgi
from tornado.web import Application, RequestHandler
def get_html_length(url):
return len(requests.get(url).text)
URLS = ['https://www.baidu.com?page={}'.format(i) for i in range(100)]
class CurlHandler(RequestHandler):
def get(self):
length = 0
for url in URLS:
length += get_html_length(url)
self.write(str(length))
def get_tornado_application():
application = Application(
(r'/', CurlHandler),
debug=True
return application
def get_wsgi_application():
application = get_tornado_application()
return tornado.wsgi.WSGIAdapter(application)
app = get_wsgi_application()
def run():
server = gevent.pywsgi.WSGIServer(('', 8000), app)
server.serve_forever()
if __name__ == '__main__':
&/code&&/pre&&/div&&p&如果安装了 gevent,可以直接 &code&python tornado_app.py&/code& 运行此 app。不过我们一般使用 gunicorn 指定 worker 为 gevent 来运行 tornado app(gunicorn 会 patch_all)&br&在命令行中用如下命令启动(实际上就是用的 gevent wsgi):&/p&&p&&code&gunicorn tornado_app:app -b 0.0.0.0:8000 -w 2 -k gevent&/code&&/p&&p&一般一个请求的流程如下:http request -& Nginx -& HAProxy -& gunicorn(gevent wsgi) -& tornado app&br&由于是容器部署,会根据容器的 cpu 和内存资源适当调整 worker 的值,具体需要根据真实的部署环境实测一把。&/p&&hr&&h2&在 tornado 中使用 gevent 并发&/h2&&p&mysql 连接上使用了
PyMySQL,用 sqlalchemy core 请求数据,纯 python 实现的 mysql driver 支持被 gevent patch&/p&&blockquote&Pure python driver support gevent's monkey patch, so they support cooperative multitasking using coroutines. That means the main thread won't be block by MySQL calls when you use PyMySQL&/blockquote&&p&经常在一个 api 接口里需要请求多个数据(多个数据库请求、rpc 调用、外部网络请求等),比如用户、文章等,这个时候如果不是并发请求数据,速度将是不可接受的。我们用 gevent 来实现并发请求,具体大家可以参考 gevent 的文档。(批量、缓存、异步、并发是几个非常显著的提升性能的手段)一个简单的并发请求的例子如下,实际上很简单,我们使用 gevent.pool (池(pool)是一个为处理数量变化并且需要限制并发的greenlet而设计的结构。):&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&class PoolCurlHandler(RequestHandler):
def get(self):
length = 0
pool = gevent.pool.Pool(20)
res = pool.map(get_html_length, URLS)
length = sum(res)
self.write(str(length))
&/code&&/pre&&/div&&p&完整的代码如下:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&import gevent.pywsgi
import requests
import tornado.wsgi
from tornado.web import Application, RequestHandler
def get_html_length(url):
return len(requests.get(url).text)
URLS = ['https://www.baidu.com?page={}'.format(i) for i in range(100)]
class CurlHandler(RequestHandler):
def get(self):
length = 0
for url in URLS:
length += get_html_length(url)
self.write(str(length))
class PoolCurlHandler(RequestHandler):
def get(self):
length = 0
pool = gevent.pool.Pool(20)
res = pool.map(get_html_length, URLS)
length = sum(res)
self.write(str(length))
def get_tornado_application():
application = Application(
(r'/', CurlHandler),
(r'/pool', PoolCurlHandler),
debug=True
return application
def get_wsgi_application():
application = get_tornado_application()
return tornado.wsgi.WSGIAdapter(application)
app = get_wsgi_application()
def run():
server = gevent.pywsgi.WSGIServer(('', 8000), app)
server.serve_forever()
if __name__ == '__main__':
&/code&&/pre&&/div&&p&启动 app 后用我们请求看下差距:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&time curl http://localhost:8000/
time curl http://localhost:8000/pool
&/code&&/pre&&/div&&p&至少能看到数倍的时间差距。&/p&&p&&br&&/p&&p&参考:&/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//www.gevent.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&What is gevent? - gevent 1.3.0.dev0 documentation&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//github.com/Tin/sqlalchemy-gevent-mysql-drivers-comparison& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Tin/sqlalchemy-gevent-mysql-drivers-comparison&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//techspot.zzzeek.org//asynchronous-python-and-databases/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Asynchronous Python and Databases&/a& - sqlalchemy 作者的文章&/p&
You build it, you run it. - Werner Vogels现在很多互联网公司采用了微服务架构,将业务拆分,保持代码仓库尽量精简。同时一个小团队负责开发和维护一个服务,提升了开发和部署效率(软件本身的组织结构与软件团队的组织结构式一致的,即康威定律)。 知乎…
&figure&&img src=&https://pic4.zhimg.com/v2-8df2e9df12fc4ec6a29c29ca97698cd5_b.jpg& data-rawwidth=&1345& data-rawheight=&575& class=&origin_image zh-lightbox-thumb& width=&1345& data-original=&https://pic4.zhimg.com/v2-8df2e9df12fc4ec6a29c29ca97698cd5_r.jpg&&&/figure&&p&高校似乎一般都会提供一个 IPv6 的接口,我所在的学校也是这样的。这个接口带来的不仅仅是更多的资源,也为我们的 学术研究 带来了很大的便利。&/p&&p&&br&&/p&&p&然而放了个暑假,回到学校,发现我的 IPv6 永远都是 无Internet访问权限 &/p&&p&&br&&/p&&p&这就很气了。放个假,我也没印象碰到了什么配置。并且后来问了问同学,好几个也是这样的情况。所以只能把锅甩给学校了。&/p&&p&&br&&/p&&p&今天突然有个同学跟我讲,他找到了一个奇技淫巧,就,上得去了。这就激发了我的好奇心。但是最后很迷的还没用到同学给的方法就接上了。&/p&&p&&br&&/p&&p&如果有懂的大佬,求解释。&/p&&p&&br&&/p&&p&首先是IPv6无Internet权限,但是ping的话可以ping到v6的地址,只是一直都是超时&/p&&figure&&img src=&https://pic3.zhimg.com/v2-5ba782da4ba20d880b4f7b14f4b9575e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&585& data-rawheight=&323& class=&origin_image zh-lightbox-thumb& width=&585& data-original=&https://pic3.zhimg.com/v2-5ba782da4ba20d880b4f7b14f4b9575e_r.jpg&&&/figure&&p&&br&&/p&&p&于是使用tracert指令&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-e6b3d4cda2f8cca7161d8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&708& data-rawheight=&507& class=&origin_image zh-lightbox-thumb& width=&708& data-original=&https://pic2.zhimg.com/v2-e6b3d4cda2f8cca7161d8_r.jpg&&&/figure&&p&接着就不知道要干嘛了[捂脸]&/p&&p&&br&&/p&&p&索性就找到了一个查ip地址的网站&/p&&p&一个一个往下查,一个一个ping&/p&&p&&br&&/p&&p&首先查到的是自己学校的地址&/p&&figure&&img src=&https://pic3.zhimg.com/v2-694c7a0afc58ca2dbf5ec9dad3be55b0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&519& data-rawheight=&102& class=&origin_image zh-lightbox-thumb& width=&519& data-original=&https://pic3.zhimg.com/v2-694c7a0afc58ca2dbf5ec9dad3be55b0_r.jpg&&&/figure&&p&然而这前面的 &a href=&https://link.zhihu.com/?target=http%3A//cernet.edu.cn& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&cernet.edu.cn&/span&&span class=&invisible&&&/span&&/a& ,直接访问的话,去到的是清华的网站??&/p&&figure&&img src=&https://pic3.zhimg.com/v2-e83c72bebde0c2d9d5a7ce_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&506& data-rawheight=&286& class=&origin_image zh-lightbox-thumb& width=&506& data-original=&https://pic3.zhimg.com/v2-e83c72bebde0c2d9d5a7ce_r.jpg&&&/figure&&p&这个地址是可以ping通的&/p&&p&&br&&/p&&p&继续追踪,下来是到了华南理工,再到华中科大&/p&&p&&br&&/p&&p&再接下来就跑香港去了???也就是到这里就ping不通了&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-042d666a2ba6ab9eab79_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&565& data-rawheight=&113& class=&origin_image zh-lightbox-thumb& width=&565& data-original=&https://pic3.zhimg.com/v2-042d666a2ba6ab9eab79_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-09a889f0c23eda88d5d9b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&588& data-rawheight=&115& class=&origin_image zh-lightbox-thumb& width=&588& data-original=&https://pic4.zhimg.com/v2-09a889f0c23eda88d5d9b_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-6e962aca10f1da7d0d987_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&386& data-rawheight=&99& class=&content_image& width=&386&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-d363ede9047e9adfd0acad_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&457& data-rawheight=&59& class=&origin_image zh-lightbox-thumb& width=&457& data-original=&https://pic4.zhimg.com/v2-d363ede9047e9adfd0acad_r.jpg&&&/figure&&p&&br&&/p&&p&但是往后又能继续往下ping,就,很好奇。搜了搜,发现也可能只是因为服务器禁止了被ping。&/p&&p&&br&&/p&&p&找了个老外的v6的ping的工具试了下,应该确实是这个路由器把ping给ban了吧&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-4f0fac713f4bd1be4c45bf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&650& data-rawheight=&164& class=&origin_image zh-lightbox-thumb& width=&650& data-original=&https://pic2.zhimg.com/v2-4f0fac713f4bd1be4c45bf_r.jpg&&&/figure&&p&&br&&/p&&p&可是我做完这一切之后。突然发现&/p&&figure&&img src=&https://pic1.zhimg.com/v2-9c7793aeb93b7a7ac574ea74c14fca86_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&366& data-rawheight=&129& class=&content_image& width=&366&&&/figure&&p&&br&&/p&&p&然后&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-d79ea685a2ffe0d8336a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&552& data-rawheight=&201& class=&origin_image zh-lightbox-thumb& width=&552& data-original=&https://pic3.zhimg.com/v2-d79ea685a2ffe0d8336a_r.jpg&&&/figure&&p&&br&&/p&&p&我喵喵喵????&/p&&p&&br&&/p&&p&========== 11月20 ==========&/p&&p&今天发现应该是tracert命令让v6能用了,但是具体的原因还是不懂!!&/p&&p&今天把电脑从睡眠唤醒之后,发现v6又用不了了。想到昨天的经历,就试了下&/p&&div class=&highlight&&&pre&&code class=&language-bash&&&span&&/span&tracert ipv6.baidu.com
&/code&&/pre&&/div&&p&结果瞬间就连上了&/p&&p&&br&&/p&&p&在知乎提问了,有懂得的大佬可以回答下哇&/p&&p&&a href=&https://www.zhihu.com/question/& class=&internal&&&span class=&invisible&&https://www.&/span&&span class=&visible&&zhihu.com/question/6838&/span&&span class=&invisible&&2042&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&p&========== 日 ==========&/p&&p&又发现一个很神奇的事情!!!!&/p&&p&前两天一个广外的同学来找我们玩,说起 IPv6 这件事,他突然说,在我们学校,就算是手机,也可以直接连上学校的 Wi-Fi 之后就能上去 Google 之类的了!&/p&&p&当时我就表示很震惊,因为我之前也用手机试过,不行啊!&/p&&p&&br&&/p&&p&所以我掏出手机想跟他一探究竟。结果发现上得去[捂脸]&/p&&p&打脸了打脸了!&/p&&p&&br&&/p&&p&然而就在三分钟前,我想查点东西,发现又不行了hhhh&/p&&p&&br&&/p&&p&========== 3月4号 ========== &/p&&p&神奇的事情又发生了!!!:&/p&&p&&br&&/p&&p&tracert 已经不管用了,但是[捂脸]又让我找着一个很奇怪的方法&/p&&p&&br&&/p&&p&电脑连上学校的网络之后是上不去 ipv6 的,这时候 ping google 得到的是 v4 的地址&/p&&p&就很恼火,干脆直接把 v4 给关了&/p&&p&&br&&/p&&p&神奇的事情发生了!!!再次 ping google,返回的是 v6 的地址&/p&&p&并且再次打开 v4 之后,仍然能保持 v6 的地址&/p&&p&&br&&/p&&p&不过每次重新连接网络之后,都得这样操作一波,就算是睡眠之后打开电脑,也得操作一波&/p&&p&&br&&/p&&p&以及移动设备通过 wifi 上 v6 的事情:&/p&&p&同学来这里玩的那阵子,好像我的设备只要连接上了一直都能用 v6 ,但是同学走了之后奏不行了!还很纳闷!!!!前两天中午试了一下又可以了!下午又跟同学逼逼,现场借 wifi ,打开浏览器,输入 google 一气呵成,然后,打脸了[捂脸] 又是不行emmm&/p&
高校似乎一般都会提供一个 IPv6 的接口,我所在的学校也是这样的。这个接口带来的不仅仅是更多的资源,也为我们的 学术研究 带来了很大的便利。 然而放了个暑假,回到学校,发现我的 IPv6 永远都是 无Internet访问权限 这就很气了。放个假,我也没印象碰到…
&figure&&img src=&https://pic3.zhimg.com/v2-5b18cdd62aeead010fbf10_b.jpg& data-rawwidth=&344& data-rawheight=&146& class=&content_image& width=&344&&&/figure&&h2&&b&题目介绍&/b&&/h2&&p&&a href=&https://link.zhihu.com/?target=http%3A//acme.org& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&acme.org&/span&&span class=&invisible&&&/span&&/a& 的工程师在 &a href=&https://link.zhihu.com/?target=https%3A//104.236.20.43/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&104.236.20.43/&/span&&span class=&invisible&&&/span&&/a& 上推出了新管理面板的新服务器。他坚信他的服务器不会被黑客攻击。他在里面设置了一个“机关”,一旦 flag 文件被读取他就会知道。他也提到 apache 的默认页面也在那儿,不过是他有意为之并无什么特殊意义。你的目标是什么呢?得到 flag !&/p&&p&Time to hack!&/p&&figure&&img src=&https://pic2.zhimg.com/v2-e591ed7a8f94dfb1a2de49bc7048491b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&320& data-rawheight=&240& data-thumbnail=&https://pic2.zhimg.com/v2-e591ed7a8f94dfb1a2de49bc7048491b_b.jpg& class=&content_image& width=&320&&&/figure&&h2&&b&目标侦查 &/b&&/h2&&p&在真正攻击之前,我首先是尽可能多的收集关于目标的信息。这些步骤包括对主机运行一些简单的命令,像 host 、 dig 、nslookup 等。然后,我在 shodan 上搜索了 Ip,使用了一些 google 搜索语法,尝试了 DNS 反向域名查找,构成了我信息收集的过程。不出所料,果然开放了 22 和 80 端口。而此时我正在进行被动侦查阶段,并记录下我的发现。&/p&&p&现在是时候与主机直接交互了。我在 nmap 上展开了完整的 TCP 扫描以确定是否有其他端口开放,结果证明只开放了 22 和 80 端口。在扫描过程中,我浏览了这个网站,发现了有名的 apache 默认页面,但是正如 &a href=&https://link.zhihu.com/?target=http%3A//acme.org& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&acme.org&/span&&span class=&invisible&&&/span&&/a& 的工程师提到的,这是故意的并无其它含义。另外,主机还泄露了 web 服务器的版本:apache v2.4.18,并且运行在 Ubuntu 的发行版本上。为了最精彩的部分,我仔细阅读了 apache 默认页面,企图找到蛛丝马迹,但都无济于事。&/p&&h2&&b&打破常规 &/b&&/h2&&p&为了这个得到 flag,我打算穷尽自己储备的知识并进行不懈的尝试!如果你不敢打破常规、大胆尝试,那你还算是个黑客吗?&/p&&figure&&img src=&https://pic1.zhimg.com/v2-f8d80cc9f0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&800& data-rawheight=&533& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic1.zhimg.com/v2-f8d80cc9f0_r.jpg&&&/figure&&p&&a href=&https://link.zhihu.com/?target=https%3A//twitter.com/jobertabma/status/989569& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Jobert 的话&/a& 引起了我的注意:CTF 中爆破服务器并不是解决问题的关键。&/p&&blockquote&大约12小时前,我们推出了一场CTF,为了赢得H1-212(NYC)12月份的入场券,与全球顶尖的黑客切磋。从那时起,34,921,283个请求发送到服务器。但只有两个人解决了这个问题。&b&也许暴力破解不是解决问题的关键&/b&。&/blockquote&&p&虽然不抱任何希望,我还是决定使用 burpsuite 的 intruder 模块跑几个字典试试。其中一个字典是我用 ceWL 自定义生成的。CTF 中我大多数情况见到是文件和目录名都被隐藏在主页里面。&/p&&p&在发送了几千个 HTTP 请求之后,唯一发现的是 /flag 这个目录。在看到文件内容之前我猜想,不出意外里面可能是:&/p&&blockquote&真的认为有这么简单吗?继续挖掘吧!&/blockquote&&h2&&b&改变战略&/b&&/h2&&blockquote&疯狂就是一遍又一遍地做同样的事情,却期待着不同的结果。&/blockquote&&p&此刻,我感觉自己什么也做不了。运行自动化工具可能也不会有任何发现。以我过去 CTF 的经验来看,题目的描述内容或许隐藏着线索。当我重读题目后发现了这么几个问题:&/p&&p&1. 为什么要提到 &a href=&https://link.zhihu.com/?target=http%3A//acme.org& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&acme.org&/span&&span class=&invisible&&&/span&&/a& ?&/p&&p&2. 这和真实的域名 &a href=&https://link.zhihu.com/?target=http%3A//acme.org& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&acme.org&/span&&span class=&invisible&&&/span&&/a& 有何联系?&/p&&p&3. 难道服务器是运行在指向 &a href=&https://link.zhihu.com/?target=http%3A//acme.org& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&acme.org&/span&&span class=&invisible&&&/span&&/a& 的虚拟主机上?&/p&&p&4. 为什么他们要提到一个 admin panel ?&/p&&p&5. 这儿有个叫 &a href=&https://link.zhihu.com/?target=http%3A//admin.acme.org& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&admin.acme.org&/span&&span class=&invisible&&&/span&&/a& 的虚拟主机?&/p&&p&现在是时候揭晓答案了。&/p&&h2&&b&虚拟主机发现&/b&&/h2&&p&这里我打算编写一个快速的脚本来枚举虚拟主机,但当我想起了Jobert的&a href=&https://link.zhihu.com/?target=https%3A//github.com/jobertabma/virtual-host-discovery& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&虚拟主机扫描&/a&工具,我又确保添加了 104.236.20.43 到 /etc/hosts 中,关键字 admin 就在这款工具的字典列表里并且可以触发它。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-8d3e30043cba9e16c554ab065e7e7b9a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&876& data-rawheight=&70& class=&origin_image zh-lightbox-thumb& width=&876& data-original=&https://pic4.zhimg.com/v2-8d3e30043cba9e16c554ab065e7e7b9a_r.jpg&&&/figure&&h2&&b&Admin panel&/b&&/h2&&p&正如所料,虚拟主机的发现结果变得有意思了,虚拟主机 &a href=&https://link.zhihu.com/?target=http%3A//admin.acme.org& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&admin.acme.org&/span&&span class=&invisible&&&/span&&/a& 存在并且分配给你一个奇怪的 cookie: admin=no 。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-482debb7f57b7628f8bcf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&628& data-rawheight=&331& class=&origin_image zh-lightbox-thumb& width=&628& data-original=&https://pic2.zhimg.com/v2-482debb7f57b7628f8bcf_r.jpg&&&/figure&&p&正如每个人都会做的一样,我把请求发送到了 repeater ,将 admin=no 改为 admin=yes 。我知道不会这么简单,但是服务器返回了一个 405 Method Not Allowed 。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-ff3ae80301f57aaf368e5_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&584& data-rawheight=&210& class=&origin_image zh-lightbox-thumb& width=&584& data-original=&https://pic4.zhimg.com/v2-ff3ae80301f57aaf368e5_r.jpg&&&/figure&&p&显然,服务器并不支持我的 HTTP GET 请求,那为什么不用一个空的 body 来发送一个 POST 请求呢?此刻,事情就变得有趣了。服务器响应了一个 406 Not Acceptable 错误。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-eda75ed7e7e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1262& data-rawheight=&273& class=&origin_image zh-lightbox-thumb& width=&1262& data-original=&https://pic2.zhimg.com/v2-eda75ed7e7e_r.jpg&&&/figure&&p&将 cookie 从 admin=yes 转换回 admin=no ,并发送同样的 POST 请求会得到一个 200 OK 的响应。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-c1d94afca3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1262& data-rawheight=&268& class=&origin_image zh-lightbox-thumb& width=&1262& data-original=&https://pic2.zhimg.com/v2-c1d94afca3_r.jpg&&&/figure&&p&奇怪的行为。经过一番在线搜索后我发现了 406 Not Acceptable:&/p&&blockquote&根据请求中接收到的主动协商报头字段,目标资源不具有用户代理可接受的当前表示,并且服务器不愿意提供默认表示。&br&来源:&a href=&https://link.zhihu.com/?target=https%3A//httpstatuses.com/406& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&httpstatuses&/a& &/blockquote&&p&我打算用大量不同的值通过 intruder 来 fuzz User-Agent 和 Accept 请求头,但是响应包的大小并没有改变。尽管我也向 &a href=&https://link.zhihu.com/?target=https%3A//admin.acme.org/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&admin.acme.org/&/span&&span class=&invisible&&&/span&&/a& 发送 POST 请求,然而并没有发现其路径下的任何文件。 emmmmm,PHP 可以运行吗?&/p&&p&就是 PHP !我向 /index.php 发送了 HTTP 请求。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-93d135dffdb0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1264& data-rawheight=&271& class=&origin_image zh-lightbox-thumb& width=&1264& data-original=&https://pic1.zhimg.com/v2-93d135dffdb0_r.jpg&&&/figure&&h2&&b&缺失的请求头&/b&&/h2&&figure&&img src=&https://pic1.zhimg.com/v2-6d89c1171cdfad78fec57_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1262& data-rawheight=&294& class=&origin_image zh-lightbox-thumb& width=&1262& data-original=&https://pic1.zhimg.com/v2-6d89c1171cdfad78fec57_r.jpg&&&/figure&&p&看到来自服务器的 418 I’m a teapot 响应了吗?太奇怪了,我花了数个小时来弄懂它的意图,并向&br&&a href=&https://link.zhihu.com/?target=https%3A//tools.ietf.org/html/rfc2324& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&HTCPCP &/a&发送了几种不同的请求。我决定将关注点放在原始的 POST 请求上并仔细分析。&/p&&p&看着这个请求头,我认为这儿好像有什么东西缺失了。实际上,这里是缺了 Content-Type 头。尝试了 application/xml、application/php、text/plain 和 text/html 这几种 MIME 类型之后,我得到了一个 application.json 类型的响应。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&{&error&:{&body&:&unable to decode&}}
&/code&&/pre&&/div&&p&上面的错误表明应用需要一个 json 格式的 body ,发送 body 内容为{}的请求,得到如下的结果&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&{&error&:{&domain&:&required&}} 。
&/code&&/pre&&/div&&figure&&img src=&https://pic3.zhimg.com/v2-df3ceaf7da9f0d9f9aeb1ce4_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1265& data-rawheight=&334& class=&origin_image zh-lightbox-thumb& width=&1265& data-original=&https://pic3.zhimg.com/v2-df3ceaf7da9f0d9f9aeb1ce4_r.jpg&&&/figure&&p&看来需要一个 domain参数,将 body 从 {} 改为 {&domain&:&test123&},这次产生了不同的错误:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&{&error&:{&domain&:&incorrect value, .com domain expected&}}
&/code&&/pre&&/div&&figure&&img src=&https://pic1.zhimg.com/v2-6ebbc34c64d285c7c14925_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1263& data-rawheight=&341& class=&origin_image zh-lightbox-thumb& width=&1263& data-original=&https://pic1.zhimg.com/v2-6ebbc34c64d285c7c14925_r.jpg&&&/figure&&p&期望一个 “.com” 形式的域名。改为 &a href=&https://link.zhihu.com/?target=http%3A//test.com& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&test.com&/span&&span class=&invisible&&&/span&&/a& 产生同样的错误。尝试了不同的组合之后发现 &a href=&https://link.zhihu.com/?target=http%3A//www.test123.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&www.test123.com&/a& 得到了不同的响应:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&{&error&:{&domain&:&incorrect value, sub domain should contain 212&}}
&/code&&/pre&&/div&&figure&&img src=&https://pic1.zhimg.com/v2-3ee54c5ca5f3da72ad4ce1d6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1294& data-rawheight=&335& class=&origin_image zh-lightbox-thumb& width=&1294& data-original=&https://pic1.zhimg.com/v2-3ee54c5ca5f3da72ad4ce1d6_r.jpg&&&/figure&&h2&&b&神秘的数字&/b&&/h2&&p&所以,子域名必须要包含数字 212 。最后尝试 &a href=&https://link.zhihu.com/?target=http%3A//212.test123.com& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&212.test123.com&/span&&span class=&invisible&&&/span&&/a& 终于得到了有用响应:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&{&next&:&\/read.php?id=0&}
&/code&&/pre&&/div&&figure&&img src=&https://pic4.zhimg.com/v2-92edcf8edb872bcfee3b06_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1261& data-rawheight=&338& class=&origin_image zh-lightbox-thumb& width=&1261& data-original=&https://pic4.zhimg.com/v2-92edcf8edb872bcfee3b06_r.jpg&&&/figure&&p&向 /read.php?id=0 发送 GET 请求,返回:{&data&:&}&/p&&figure&&img src=&https://pic4.zhimg.com/v2-8b6bb1f34fd3e0d1e0f257_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1262& data-rawheight=&275& class=&origin_image zh-lightbox-thumb& width=&1262& data-original=&https://pic4.zhimg.com/v2-8b6bb1f34fd3e0d1e0f257_r.jpg&&&/figure&&p&将 id 增加 1 ,得到相同的结果:{&data&:&},当id 大于等于2时,得到如下的错误:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&{&error&:{&row&:&incorrect row&}}
&/code&&/pre&&/div&&figure&&img src=&https://pic4.zhimg.com/v2-00a9fcfecbaf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1264& data-rawheight=&271& class=&origin_image zh-lightbox-thumb& width=&1264& data-original=&https://pic4.zhimg.com/v2-00a9fcfecbaf_r.jpg&&&/figure&&p&向 index.php 发送更多的请求 id 值就会依次加 1 。&/p&&p&接下来的思路是 SSRF 。怎样确定服务器会验证我提供的域名呢?出于好奇,我打算用真实存在的域名来测试。&/p&&p&我使用简单的 google 语法 :site:212.*.com 找到了 &a href=&https://link.zhihu.com/?target=http%3A//212.huelectricbike.com& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&212.huelectricbike.com&/span&&span class=&invisible&&&/span&&/a& 这个域名。&/p&&p&这次我用新找到的域名:&a href=&https://link.zhihu.com/?target=http%3A//212.huelectricbike.com& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&212.huelectricbike.com&/span&&span class=&invisible&&&/span&&/a& 向 /index.php 发送 POST 请求。&/p&&p&令我大吃一惊的是:使用新生成的 id 回到 /read.php 页面,竟然出现了一大串 base64 加密的数据。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&{&data&:&PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKICAgICAgICAiaHR...&}
&/code&&/pre&&/div&&figure&&img src=&https://pic2.zhimg.com/v2-b2c92c288d96b9f9e5acd341baf7fe3b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1293& data-rawheight=&377& class=&origin_image zh-lightbox-thumb& width=&1293& data-original=&https://pic2.zhimg.com/v2-b2c92c288d96b9f9e5acd341baf7fe3b_r.jpg&&&/figure&&p&解码发现这些数据正是 &a href=&https://link.zhihu.com/?target=http%3A//212.huelectricbike.com& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&212.huelectricbike.com&/span&&span class=&invisible&&&/span&&/a& 主页的源代码:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&base64 -d &&& PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKICAgICAgICAiaHR...
&/code&&/pre&&/div&&figure&&img src=&https://pic3.zhimg.com/v2-66da5b17c1a656cbda88d5fc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1223& data-rawheight=&252& class=&origin_image zh-lightbox-thumb& width=&1223& data-original=&https://pic3.zhimg.com/v2-66da5b17c1a656cbda88d5fc_r.jpg&&&/figure&&h2&&b&深入挖掘&/b&&/h2&&p&目前为止,我所得到信息有:&/p&&p&1. 212.*.com 站点对应用程序是有用的;&/p&&p&2. 该应用返回了网站的源码 ;&/p&&p&3. 应用对源码采用了 base64 加密;&/p&&p&4. 应用程序使用会随着每次请求而递增的 id 将加密后的数据存储在一种特殊的文件或数据库中;&/p&&p&5. 向 /index.php?id=ID_HERE 发送 GET 请求是有机会看到加密值的;&/p&&p&6. Id 似乎是为特定 用户生成的,意味着我不能查看别的用后存储的数据,这通过使用不同的 ip 测试得出的;&/p&&p&7. 应用程序似乎有某种正则机制来过滤一些模式和字符。&/p&&p&现在是时候来绕过这些过滤了,在测试了 \ / = - @ . % { } [ ] 这几个字符后,我发现 % 会在域名中被过滤掉:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Request body:
{&domain&:&212.huelectricbike%.com.com&}
{&error&:{&domain&:&domain cannot contain %&}}
&/code&&/pre&&/div&&figure&&img src=&https://pic1.zhimg.com/v2-38ff680810eefb936ed5ce8e3cb6f8ed_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1264& data-rawheight=&346& class=&origin_image zh-lightbox-thumb& width=&1264& data-original=&https://pic1.zhimg.com/v2-38ff680810eefb936ed5ce8e3cb6f8ed_r.jpg&&&/figure&&p&尝试了几种不同的绕过之后,我考虑到了未编码的 CRLF 注入,因为应用只是过滤了 % 而没有过滤 \ 。&/p&&h2&&b&Let's Play Fetch&/b&&/h2&&p&如果我能用 CRLF 注入绕过过滤并强制应用程序从&a href=&https://link.zhihu.com/?target=https%3A//0xc0ffee.io/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&我自己的域&/a&返回数据,那会怎么样呢?如果我能成功绕过过滤,我就可以向本地主机发送请求从而得到更多的信息。&/p&&p&在使用我自己的域之前,如果对这个站点进行 CRLF 注入会怎样呢?&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Request Body:
{&domain&:&\r\n212.huelectricbike.com&}
{&next&:&\/read.php?id=9&}
&/code&&/pre&&/div&&figure&&img src=&https://pic3.zhimg.com/v2-4ae52cde4e0b5d366ccd0d45af1c2aa0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1264& data-rawheight=&340& class=&origin_image zh-lightbox-thumb& width=&1264& data-original=&https://pic3.zhimg.com/v2-4ae52cde4e0b5d366ccd0d45af1c2aa0_r.jpg&&&/figure&&p&Id 从7 到 9 递增了2!我太激动了!这说明发送了2个请求而不是一个。接下来是绕过域名里必需神秘数字 212 。&/p&&p&经过多次失败的尝试,我发现可以绕过程序限定的 212 和.com ,并且意识到其实不需要回车符:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Request body:
{&domain&:&212\n0xc0ffee.io\n.com&}
{&next&:&\/read.php?id=15&}
&/code&&/pre&&/div&&p&漂亮的 GET 请求从目标主机发送到了我自己的服务器上:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-141b99bbb97d2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&639& data-rawheight=&37& class=&origin_image zh-lightbox-thumb& width=&639& data-original=&https://pic4.zhimg.com/v2-141b99bbb97d2_r.jpg&&&/figure&&p&并且真的返回了主页的源码。这次 id 递增了3,因为应用程序接受了三个请求(212,&a href=&https://link.zhihu.com/?target=http%3A//0xc0ffee.io& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&0xc0ffee.io&/span&&span class=&invisible&&&/span&&/a&,.com),显然这次的请求更加吸引我。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-68faca0ae034e22f4e9627_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1299& data-rawheight=&562& class=&origin_image zh-lightbox-thumb& width=&1299& data-original=&https://pic3.zhimg.com/v2-68faca0ae034e22f4e9627_r.jpg&&&/figure&&p&实际发生了什么:&/p&&p&1. 212 被程序执行了,也就是换行符被解析执行了;&/p&&p&2. &a href=&https://link.zhihu.com/?target=http%3A//0xc0ffee.io& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&0xc0ffee.io&/span&&span class=&invisible&&&/span&&/a&&br&也被程序执行了,换行符被执行了;&/p&&p&3. .com 也被执行了。&/p&&h2&&b&躲猫猫&/b&&/h2&&p&好了,那么 flag 藏在哪儿了呢?正如之前说过的,如果可以绕过过滤那么就能获得来自本地主机的数据。&/p&&p&发送如下的请求不会得到有用的响应:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Request body: {&domain&:&212\nlocalhost\n.com&}
{&error&:{&domain&:&incorrect value, .com domain
expected&}}
&/code&&/pre&&/div&&p&然而,过会儿我发现,我所需要的只是在 localhost 旁加一个点:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Request body:
{&domain&:&212\nlocalhost.\n.com&}
{&next&:&\/read.php?id=21&}
&/code&&/pre&&/div&&figure&&img src=&https://pic4.zhimg.com/v2-3e516f680a16fbc034d538_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1329& data-rawheight=&675& class=&origin_image zh-lightbox-thumb& width=&1329& data-original=&https://pic4.zhimg.com/v2-3e516f680a16fbc034d538_r.jpg&&&/figure&&p&正如上图所示,请求了Localhost:80 并返回 web 服务器的主页。为了确认一下,我发送了 /flag 请求却得到了这个臭名昭著的响应:&/p&&blockquote&You really thought it would be that easy? Keep digging!&/blockquote&&p&Emmmm,好吧,我知道 SSH 端口是开放的虽然不能建立连接,但我可以抓取 banner 信息呀:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Request:
{&domain&:&212\nlocalhost.:22\n.com&} Notice the :22 next
to .localhost?
Response: {&next&:&\/read.php?id=27&}
&/code&&/pre&&/div&&figure&&img src=&https://pic3.zhimg.com/v2-9fbe23cadde69_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1296& data-rawheight=&422& class=&origin_image zh-lightbox-thumb& width=&1296& data-original=&https://pic3.zhimg.com/v2-9fbe23cadde69_r.jpg&&&/figure&&p&太棒了,我可以进行端口扫描。有没有开放内部端口呢?是时候打开 intruder 了,我快速生成了一个 0-65535 的数字列表:seq 65535& port.txt&/p&&figure&&img src=&https://pic1.zhimg.com/v2-0cba25630eeadbf25f144cfb237d7a51_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1303& data-rawheight=&464& class=&origin_image zh-lightbox-thumb& width=&1303& data-original=&https://pic1.zhimg.com/v2-0cba25630eeadbf25f144cfb237d7a51_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-da08f40e7a00f5b13ccb89e39a61f6c3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&867& data-rawheight=&433& class=&origin_image zh-lightbox-thumb& width=&867& data-original=&https://pic2.zhimg.com/v2-da08f40e7a00f5b13ccb89e39a61f6c3_r.jpg&&&/figure&&p&在 194-200(除了22-80)响应长度都是相同的,我需要再次运行 intruder 但这次针对 read.php?id=ID_HERE 。&/p&&p&每个空的响应 {&data&:&&} 都有 178 个字节,但这里出现了一个210 字节长的响应并且 数据还被 bease64 加密了的:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-7792d5afe45acf764eaf562_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&772& data-rawheight=&176& class=&origin_image zh-lightbox-thumb& width=&772& data-original=&https://pic1.zhimg.com/v2-7792d5afe45acf764eaf562_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-edfd049485_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&712& data-rawheight=&322& class=&origin_image zh-lightbox-thumb& width=&712& data-original=&https://pic3.zhimg.com/v2-edfd049485_r.jpg&&&/figure&&p&哇,一些内部

我要回帖

更多关于 地铁风亭是不是出入口 的文章

 

随机推荐