网站安全渗透测试 之squid代理漏洞挖掘与修复

简介: 在对网站进行渗透测试的时候,发现很多网站都在使用squid反向代理系统,该系统存在可以执行远程代码的漏洞,很多客户找我们SINE安全做渗透测试服务的同时,我们会先对客户的网站进行信息搜集工作,包括域名,二级域名收集,网站使用的反向代理系统,网站程序开发语言,是否使用开源的代码,以及网站后台路径收集,都在前期渗透中需要做的。

在对网站进行渗透测试的时候,发现很多网站都在使用squid反向代理系统,该系统存在可以执行远程代码的漏洞,很多客户找我们SINE安全做渗透测试服务的同时,我们会先对客户的网站进行信息搜集工作,包括域名,二级域名收集,网站使用的反向代理系统,网站程序开发语言,是否使用开源的代码,以及网站后台路径收集,都在前期渗透中需要做的。
3
前段时间某一个客户网站使用的就是squid反向代理系统,客户APP,以及网站后台都被攻击者篡改,被恶意提现,会员注单篡改,银行卡号篡改,充值通道篡改,给客户带来了很大的经济损失,通过老客户介绍找到我们SINE安全,我们对该情况进行详细的了解,针对实际情况,定制了详细的渗透测试服务方案。关于squid系统漏洞的检测,我们来详细的介绍一下:
4
squid是开源的一套网站反向代理系统,可以对网站进行加速,缓存,有些网站访问较慢,就会在国内的服务器节点做反向代理,加速网站的快速访问,将图片,以及JS文件,css文件进行缓存,还有一个好处通过squid可以隐藏网站的真实IP。squid支持很多种TCP协议,包括80端口的http协议,FTP的21端口协议,HTTPS433端口的协议,都可以进行反向代理,简单易用受到很多开发者的喜欢。

squid漏洞产生的原因在于缓冲区溢出导致可以执行远程代码,当反向代理收到cachemgr的请求时候,会使用parseheaders这个函数接口,将请求来的参数进行解析操作,并赋值于后端去,正常应该对请求的参数进行字数限制,而该请求并没有对字数多少进行限制,导致可以写入代码进行数据溢出,当长度超过squid的安全限制后,就会执行恶意的代码。漏洞的利用方式是,构造恶意的代码,使用FTP协议的方式进行请求 request-uri,将代码加密,提交到服务器中去,就可以达到渗透服务器的权限。代码如下:

2
1

当服务器执行恶意代码后,就会产生一个webshell到网站的根目录下,从而对网站进行控制,该webshell也叫网站木马后门,相当于网站的管理员权限,可以写入文件,修改文件,修改数据库等操作,通过对客户网站的渗透测试发现,导致被篡改的问题根源,是squid系统存在漏洞,随即我们SINE安全对客户的squid漏洞进行了修复,对代码的长度进行了限制,防止溢出,并对所有的请求包括get,post.cookies的请求都进行了字符长度限制。

相关文章
|
2天前
|
安全 程序员 网络安全
Kali渗透测试:对软件的溢出漏洞进行测试
Kali渗透测试:对软件的溢出漏洞进行测试
10 1
|
2天前
|
安全 网络协议 Linux
Kali渗透测试:使用Armitage针对漏洞进行攻击
Kali渗透测试:使用Armitage针对漏洞进行攻击
|
1月前
|
安全 Java 应用服务中间件
渗透测试-JBoss 5.x/6.x反序列化漏洞
渗透测试-JBoss 5.x/6.x反序列化漏洞
42 14
|
1月前
|
安全 网络安全 数据安全/隐私保护
渗透测试-Openssl心脏出血漏洞复现
渗透测试-Openssl心脏出血漏洞复现
47 7
|
12天前
|
安全 测试技术 Linux
CentOS7 安装vulhub漏洞测试环境
CentOS7 安装vulhub漏洞测试环境
28 0
|
2月前
|
安全 测试技术 网络安全
|
1月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
130 7
Jmeter实现WebSocket协议的接口测试方法
|
1月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
125 3
快速上手|HTTP 接口功能自动化测试
|
3天前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
7 0
|
1月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
32 5