博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络信息安全中最热门的果然是它
阅读量:6988 次
发布时间:2019-06-27

本文共 1602 字,大约阅读时间需要 5 分钟。

昨天的问卷调查发布后,我们收到了大家的积极反馈,看到了很多用心的留言回复,小编真的特别感动,再次感谢所有参与投票的小伙伴们!

投票仍在继续,公众号会根据最后的结果进行数据分析,从而做出相应调整,尽最大努力去满足大家的要求。

目前从现有的数据来看,大家对于技术类的文章,偏爱Web安全内容的人更多一些,所以今天我们就从Web安全的技术内容出发,分享的是刺透内网的HTTP代理的相关内容,希望对大家有所帮助。

从偶然出发

在做测试的时候发现了这样一个漏洞,原请求报文如下:

当时是想测SSRF的,但是经过测试没发现存在漏洞,后来想起之前看过的一些漏洞案例,将请求报文中的URI部分替换成了网址:http://gh0st.cn,就变成了如下的请求:

在BurpSuite里进行重放测试发现返回的响应正文就是http://gh0st.cn 的,也就是说这里的attack_website可以被作为HTTP代理,于是进入下一步的测试能否使用非http/https协议进行请求?例如file:/// ,测试后发现确实没办法这样玩,看来是这里的代理服务器不支持。

在这里替换URI部分为内网的地址,可以直接漫游内网的系统,进行深入的渗透测试,后续的事情先不多说了,我们先来研究为什么会有这样的问题?

从被动偶然到主动发现

01正向代理

  • 浏览器(/全局)设置代理服务器IP和对应端口。

  • 浏览器输入目标地址->代理服务器->目标服务器。

简而言之,正向代理类似我们经常用到的跳板机,利用代理去访问外部的资源。

02反向代理

反向代理相对浏览器来说是透明的,不需要在浏览器(/全局)做什么配置,而是有反向代理服务器自己做请求转发到其服务器上所配置的地址。

大致如下的流程:

  • 浏览器访问网站(网站所指即反向代理服务器)。

  • 网站(反向代理服务器)做处理,将请求转发给所设置的目标服务器。

  • 由请求最终到达的目标服务器响应给网站(反向代理服务器),然后再通过其返回给浏览器。

Tips

1、反向代理服务器也可以变成WAF(例如Nginx支持反代功能,nginx+lua也可以搭建网站waf)。

2、反向代理服务器也可以起到负载均衡的作用,由反向代理服务器做选择分配Web服务器。

主动发现脚本开发

脚本语言选择:python2.7

系统环境:all

思考

如何判断这个网站存在可以作为HTTP代理访问资源?唯一特征是什么?

脑子中唯一的思路就是IP,如果这目标站点能作为HTTP代理访问资源,那么我设置的这个资源就是返回真实IP的,这样就可以判断了。

这里我在团队官网上小小的写了一个,但是在大批量去测试却无法使用,因为官网的空间没那么大的吞吐量,承载不住高并发,后期建议大家使用 http://httpbin.org/ip 这个接口。

http://www.hi-ourlife.com/getip.php

PHP代码:

代码构建

Import 库【import urllib, sys, re】

全局变量【poc = "http://www.hi-ourlife.com/getip.php"】

获取使用代理访问资源后内容(IP)函数:

正常本机获取IP函数:

防止有些会出错返回的内容不是IP,其实返回不是IP也就间接证明不存在这种漏洞,所以需要写个正则来匹配,这时候判断是否是IP的函数就诞生了:

对比IP函数:

单线程批量

从扫描器里把代码模板剥离出来,如下图:

最后

使用方法:python proxy_vul.py urls.txt

urls.txt 格式:

http://www.hi-ourlife.com/

https://gh0st.cn/

http://mst.hi-ourlife.com:8080/

建议批量方法:

扫描所有想检测站点的web服务端口(Nginx容器存在此类问题居多),然后使用脚本检测。

 

转载地址:http://yowvl.baihongyu.com/

你可能感兴趣的文章
Android:Activity(八):Fragment的生命周期
查看>>
通过JDBC向数据库中存储&读取Blob数据
查看>>
NoSQL最新现状和趋势:云NoSQL数据库将成重要增长引擎
查看>>
2019年我国云计算行业存在的问题和发展趋势
查看>>
利用ARP欺骗另一台电脑并偷窥
查看>>
第一周作业
查看>>
第六章 总结
查看>>
内置模块(二)
查看>>
C编程技巧
查看>>
week5
查看>>
Unity3D常用网络框架与实战解析 学习
查看>>
继承(原型链继承)
查看>>
如何利用 Visual Studio 自定义项目或工程模板(转载)
查看>>
java.lang.Object底层代码分析-jdk1.8
查看>>
获取函数所在模块的方法
查看>>
Linux信号处理
查看>>
VS预定义宏
查看>>
QtTableView
查看>>
*****运维人员如何最大限度避免误删除文件?
查看>>
Android应用开发基础--Adapter
查看>>