正向代理和反向代理是forward/reverseproxy的意思,在代理功能上来讲,有一点不太一样。
举个例子:
你要去租房,你找房屋中介找房子,房屋中介找房屋的全权代理人要房子,房屋的全权代理人是由户主委托的。这里有四个角色:
你=client
房屋中介=forword proxy
代理人=reverse proxy
户主=server
客户端访问网络如果需要指定某个代理服务器为你去获取内容,那就是正向代理
而服务器隐藏在代理服务器后面,让代理服务器作为冲锋陷阵的,那这个代理服务器就是反向代理。
而squid是一个 forword/reverse proxy,两个功能兼备,一般可以作为局域网的上网缓存,此时作为正向代理。
一般服务器会让squid作为前端,那就是充当反向代理,反向代理有很多软件都可以,比如nginx、lighttpd,但他们两个一般做不了正向代理。
正向代理是一个位于客户端和原始服务器(originserver)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。使用ProxyRequests指令即可激活正向代理。因为正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的名字空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。另外,还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。
Ok,介绍完了代理相关,我介绍下之前盒子项目的一次漏洞经验。
当时厂商给出了一批指定的域名,几个app,还有就是几个网段,当我来到某个ip地址时,通过介绍知道了反向代理一般都是选择nginx作为代理服务器,当时发现一个8086端口恰好用了nginx,
看着平淡无奇的页面,接下来慢慢测试下,
来通过url策略来访问一个内网地址发现存在返回信息,虽然没啥用,但这是一个信息。
现在可以判断这里可能存在代理不当的问题,接下来通过intruder爆破一下地址试试。
进行爆破内网地方,发现很多内网信息直接返回了
不存在的直接返回503了
因为确定了确实代理有问题,接下来直接可以通过这个服务器进行访问试试,挂好代理
直接进内网,,,
oa系统啥的都出来了
其他测试途中一共发现5,6个内网段,为了测试而已只跑了上面的一个网段证明下影响,这个漏洞思路很早之前就有了,都是李姐姐大牛的作品,所以希望表哥们没事可以学学大佬们的骚操作。
http://wooyun.chamd5.org/bug_detail.php?wybug_id=wooyun-2015-0131169
http://wooyun.chamd5.org/bug_detail.php?wybug_id=wooyun-2014-083202
http://wooyun.chamd5.org/bug_detail.php?wybug_id=wooyun-2016-0191121
之前在freebuf上也发现一篇文章,也是代理问题,
http://mp.weixin.qq.com/s/hYZr6EjwE99uTQpzoJRp0g
其实这类漏洞感觉挺少见的,扫ip看看见nginx的都可以关注一下,文章有错误的欢迎指出,我也是第一次写文章,。