Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >网站安全维护公司 渗透测试项目详情

网站安全维护公司 渗透测试项目详情

原创
作者头像
技术分享达人
修改于 2019-10-09 10:07:31
修改于 2019-10-09 10:07:31
2K0
举报
文章被收录于专栏:网站漏洞修补网站漏洞修补

上一节讲到了渗透测试中xss跨站攻击检测方法和防护,这一节也是关于跨站攻击的另一个手法CSRF,很多客户找到我们Sinesafe想要了解更多的跨站攻击检测方法以及防御此类攻击的办法,想要让网站的安全性更加坚固,对此提醒大家渗透测试网站必须要拿到授权才能测试哦!

3.3.1. 简介

CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。

3.3.2. 分类

3.3.2.1. 资源包含

资源包含是在大多数介绍CSRF概念的演示或基础课程中可能看到的类型。这种类型归结为控制HTML标签(例如<image>、<audio>、<video>、<object>、<>等)所包含的资源的攻击者。如果攻击者能够影响URL被加载的话,包含远程资源的任何标签都可以完成攻击。

由于缺少对Cookie的源点检查,如上所述,此攻击不需要XSS,可以由任何攻击者控制的站点或站点本身执行。此类型仅限于GET请求,因为这些是浏览器对资源URL唯一的请求类型。这种类型的主要限制是它需要错误地使用安全的HTTP请求方式。

3.3.2.2. 基于表单

通常在正确使用安全的请求方式时看到。攻击者创建一个想要受害者提交的表单; 其包含一个Java片段,强制受害者的浏览器提交。

该表单可以完全由隐藏的元素组成,以致受害者很难发现它。

如果处理cookies不当,攻击者可以在任何站点上发动攻击,只要受害者使用有效的cookie登录,攻击就会成功。如果请求是有目的性的,成功的攻击将使受害者回到他们平时正常的页面。该方法对于攻击者可以将受害者指向特定页面的网络钓鱼攻击特别有效。

3.3.2.3.

这可能是最少看到的方式。

由于许多现代Web应用程序依赖XHR,许多应用花费大量的时间来构建和实现这一特定的对策。

基于XHR的CSRF通常由于SOP而以XSS有效载荷的形式出现。没有跨域资源共享策略(CORS),XHR仅限于攻击者托管自己的有效载荷的原始请求。

这种类型的CSRF的攻击有效载荷基本上是一个标准的XHR,攻击者已经找到了一些注入受害者浏览器DOM的方式。

3.3.3. 防御

  • 通过CSRF-token或者验证码来检测用户提交
  • 验证Referer/Content-Type
  • 对于用户修改删除等操作最好都使用POST操作
  • 避免全站通用的cookie,严格设置cookie的域

3.4. SSRF漏洞

3.4.1. 简介

服务端请求伪造(Server Side Request Forgery, SSRF)指的是攻击者在未能取得服务器所有权限时,利用服务器漏洞以服务器的身份发送一条构造好的请求给服务器所在内网。SSRF攻击通常针对外部网络无法直接访问的内部系统。

3.4.2. 漏洞危害

SSRF可以对外网、服务器所在内网、本地进行端口扫描,攻击运行在内网或本地的应用,或者利用File协议读取本地文件。

内网服务防御相对外网服务来说一般会较弱,甚至部分内网服务为了运维方便并没有对内网的访问设置权限验证,所以存在SSRF时,通常会造成较大的危害。

3.4.3. 利用方式

SSRF利用存在多种形式以及不同的场景,针对不同场景可以使用不同的绕过方式。

以curl为例, 可以使用dict protocol操作Redis、file协议读文件、gopher协议反弹Shell等功能,常见的Payload如下:

curl -vvv 'dict://127.0.0.1:6379/info'

curl -vvv 'file:///etc/passwd'

# * 注意: 链接使用单引号,避免$变量问题

3.4.4. 相关危险函数

SSRF涉及到的危险函数主要是网络访问,支持伪协议的网络读取。以PHP为例,涉及到的函数有 file_get_contents() / fsockopen() / curl_exec() 等。

3.4.5. 过滤绕过

3.4.5.1. 更改IP地址写法

一些开发者会通过对传过来的URL参数进行正则匹配的方式来过滤掉内网IP,如采用如下正则表达式:

  • ^10(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){3}$
  • ^172\.([1][6-9]|[2]\d|3[01])(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){2}$
  • ^192\.168(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){2}$

对于这种过滤我们采用改编IP的写法的方式进行绕过,例如192.168.0.1这个IP地址可以被改写成:

  • 8进制格式:0300.0250.0.1
  • 16进制格式:0xC0.0xA8.0.1
  • 10进制整数格式:3232235521
  • 16进制整数格式:0xC0A80001

还有一种特殊的省略模式,例如10.0.0.1这个IP可以写成10.1。 访问改写后的IP地址时,Apache会报400 Bad Request,但Nginx、MySQL等其他服务仍能正常工作。 另外,0.0.0.0这个IP可以直接访问到本地,也通常被正则过滤遗漏。

3.4.5.2. 使用解析到内网的域名

XSS全称为Cross Site ing,为了和CSS分开简写为XSS,中文名为跨站脚本。该漏洞发生在用户端,是指在渲染过程中发生了不在预期过程中的Java代码执行。XSS通常被用于获取Cookie、以受攻击者的身份进行操作等行为。

3.4.5.3. 利用解析URL所出现的问题

在某些情况下,后端程序可能会对访问的URL进行解析,对解析出来的host地址进行过滤。这时候可能会出现对URL参数解析不当,导致可以绕过过滤。

比如 //@192.168.0.1/ 当后端程序通过不正确的正则表达式(比如将http之后到com为止的字符内容,也就是,认为是访问请求的host地址时)对上述URL的内容进行解析的时候,很有可能会认为访问URL的host,而实际上这个URL所请求的内容都是192.168.0.1上的内容。

3.4.5.4. 利用跳转

如果后端服务器在接收到参数后,正确的解析了URL的host,并且进行了过滤,我们这个时候可以使用跳转的方式来进行绕过。

可以使用如 http://域名.org/redirect-to?url=http://192.168.0.1 等服务跳转,但是由于URL中包含了192.168.0.1这种内网IP地址,可能会被正则表达式过滤掉,可以通过短地址的方式来绕过。

常用的跳转有302跳转和307跳转,区别在于307跳转会转发POST请求中的数据等,但是302跳转不会。

3.4.5.5. 通过各种非HTTP协议

如果服务器端程序对访问URL所采用的协议进行验证的话,可以通过非HTTP协议来进行利用。

比如通过gopher,可以在一个url参数中构造POST或者GET请求,从而达到攻击内网应用的目的。例如可以使用gopher协议对与内网的Redis服务进行攻击。

除了gopher协议,File协议也是SSRF中常用的协议,该协议主要用于访问本地计算机中的文件,我们可以通过类似 file:///path/to/file 这种格式来访问计算机本地文件。使用file协议可以避免服务端程序对于所访问的IP进行的过滤。例如我们可以通过 file:///d:/1.txt 来访问D盘中1.txt的内容。

3.4.5.6. DNS Rebinding

一个常用的防护思路是:对于用户请求的URL参数,首先服务器端会对其进行DNS解析,然后对于DNS服务器返回的IP地址进行判断,如果在黑名单中,就禁止该次请求。

但是在整个过程中,第一次去请求DNS服务进行域名解析到第二次服务端去请求URL之间存在一个时间差,利用这个时间差,可以进行DNS重绑定攻击。

要完成DNS重绑定攻击,我们需要一个域名,并且将这个域名的解析指定到我们自己的DNS Server,在我们的可控的DNS Server上编写解析服务,设置TTL时间为0。这样就可以进行攻击了,完整的攻击流程为:

  • 服务器端获得URL参数,进行第一次DNS解析,获得了一个非内网的IP
  • 对于获得的IP进行判断,发现为非黑名单IP,则通过验证
  • 服务器端对于URL进行访问,由于DNS服务器设置的TTL为0,所以再次进行DNS解析,这一次DNS服务器返回的是内网地址。
  • 由于已经绕过验证,所以服务器端返回访问内网资源的结果。

3.4.5.7. 利用IPv6

有些服务没有考虑IPv6的情况,但是内网又支持IPv6,则可以使用IPv6的本地IP如 [::] 0000::1或IPv6的内网域名来绕过过滤。

3.4.5.8. 利用IDN

一些网络访问工具如Curl等是支持国际化域名(Internationalized Domain Name,IDN)的,国际化域名又称特殊字符域名,是指部分或完全使用特殊的文字或字母组成的互联网域名。

在这些字符中,部分字符会在访问时做一个等价转换,例如 ⓔⓧⓐⓜⓟⓛⓔ.ⓒⓞⓜ 和 example.com 等同。利用这种方式,可以用 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ 等字符绕过内网限制。

3.4.6. 可能的利用点

sftp

  • tftp(UDP协议扩展)
  • dict
  • gopher
  • ldap
  • imap/imaps/pop3/pop3s/smtp/smtps(爆破邮件用户名密码)
  • rtsp – smb/smbs(连接SMB)
  • telnet
  • http、https
  • mongodb
  • ShellShock命令执行
  • JBOSS远程Invoker war命令执行
  • Java调试接口命令执行
  • axis2-admin部署Server命令执行
  • Jenkins s接口命令执行
  • Confluence SSRF
  • Struts2 命令执行
  • counchdb WEB API远程命令执行
  • docker API远程命令执行
  • php_fpm/fastcgi 命令执行
  • tomcat命令执行
  • Elasticsearch引擎Groovy脚本命令执行
  • WebDav PUT上传任意文件
  • WebSphere Admin可部署war间接命令执行
  • Apache Hadoop远程命令执行
  • zentoPMS远程命令执行
  • HFS远程命令执行
  • glassfish任意文件读取和war文件部署间接命令执行

3.4.7. 防御方式

  • 过滤返回的信息
  • 统一错误信息
  • 限制请求的端口
  • 禁止不常用的协议
  • 对DNS Rebinding,考虑使用DNS缓存或者Host白名单,如果想要更完善的网站安全防护,以及提前渗透测试可以找专业的网站安全公司,国内做的比较好的如Sinesafe,绿盟,启明星辰等等。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SSRF漏洞原理、挖掘技巧及实战案例全汇总
SSRF(Server-Side Request Forgery:服务器端请求伪造)产生原因是服务端提供了从其他服务器应用获取数据的功能,比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。
Jayway
2019/09/29
5.9K0
SSRF漏洞原理、挖掘技巧及实战案例全汇总
SSRF安全指北
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成,由服务端发起请求的一个安全漏洞。SSRF是笔者比较喜欢的一个漏洞,因为它见证了攻防两端的对抗过程。本篇文章详细介绍了SSRF的原理,在不同语言中的危害及利用方式,常见的绕过手段,新的攻击手法以及修复方案。
腾讯安全应急响应中心
2021/01/26
1.7K0
SSRF安全指北
SSRF简单复现
​ 翻译: 提供需要翻译的文字 -> 翻译软件 -> 返回翻译后的数据 ​ A 控制 B 去访问 C ​ 网页翻译原理: ​ 方案A: ​ 1.请求目标站点 ​ 2.获取浏览器上面的目标站点数据 ​ 3.翻译软件把数据返回 ​ 方案B: ​ 1.提供目标网址给翻译网站 ​ 2.翻译网站代访问,得到目标网站数据 ​ 3.翻译网站返回翻译后的数据
kam1
2022/03/08
7160
SSRF简单复现
一篇文章深入学习SSRF漏洞
博客原文地址: https://hack-for.fun/posts/20200120/
IFONLY@CUIT
2020/02/19
2.9K0
Web 安全漏洞 SSRF 简介及解决方案
Update: 掘金评论区有同学提出通过域名获取 IP 地址时可能遭遇攻击,感谢提醒。本人非安全专业相关人士,了解不多,实在惭愧。
逆葵
2019/04/25
1.7K0
前端网络安全 常见面试题速查
XSS 安全漏洞 简单转义是否有防护作⽤ HTML 标签⽂字内容 有 HTML 属性值 有 CSS 内联样式 ⽆ 内联 JavaScript ⽆ 内联 JSON ⽆ 跳转链接 ⽆
Cellinlab
2023/05/17
7420
浅谈云上攻防--SSRF漏洞带来的新威胁
前言 在《浅谈云上攻防——元数据服务带来的安全挑战》一文中,生动形象的为我们讲述了元数据服务所面临的一系列安全问题,而其中的问题之一就是通过SSRF去攻击元数据服务;文中列举了2019年美国第一资本投资国际集团(Capital One Financial Corp.,下“Capital One公司”)信息泄漏的案例;我们内部也监测到过类似的事件:测试人员通过SSRF漏洞攻击元数据服务,并将获取到的AK信息存储到日志服务中,然后在日志服务中获取到了AK信息,最终通过获取到的AK信息控制了超过200台服务器。
云鼎实验室
2021/10/09
2.1K0
SSRF漏洞原理解析[通俗易懂]
SSRF全称:Server-Side Request Forgery,即,服务器端请求伪造。是一个由攻击者构造请求,在目标服务端执行的一个安全漏洞。攻击者可以利用该漏洞使服务器端向攻击者构造的任意域发出请求,目标通常是从外网无法访问的内部系统。简单来说就是利用服务器漏洞以服务器的身份发送一条构造好的请求给服务器所在内网进行攻击。
全栈程序员站长
2022/09/12
9.8K0
SSRF漏洞原理解析[通俗易懂]
从一文中了解SSRF的各种绕过姿势及攻击思路
文章首发于跳跳糖社区https://tttang.com/archive/1648/
用户9691112
2023/05/18
5.2K0
从一文中了解SSRF的各种绕过姿势及攻击思路
渗透测试网站安全检测具体方法
这几天整理了下网站渗透测试中基础部分的第三节,我们SINE安全渗透工程师对代码安全审计,手工渗透测试检查代码的危险漏洞方法,找出安全问题重点,配合工具扫描来达到测试漏洞的目的,本测试重点仅限于客户授权才能操作,切记忽非法尝试入侵!以下方法只是提供网站安全检测的具体参考意见。
技术分享达人
2019/09/25
3.6K0
渗透测试网站安全检测具体方法
服务器端请求伪造——SSRF
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是由攻击者构造形成的由服务端发起请求的一个安全漏洞。
宸寰客
2020/08/25
4.4K0
服务器端请求伪造——SSRF
干货| WEB安全漏洞之SSRF
“ ” 什么是SSRF 大家使用的服务中或多或少是不是都有以下的功能: 通过 URL 地址分享内容 通过 URL 地址把原地址的网页内容调优使其适合手机屏幕浏览,即所谓的转码功能 通过 URL 地址翻译对应文本的内容,即类似 Google 的翻译网页功能 通过 URL 地址加载或下载图片,即类似图片抓取功能 以及图片、文章抓取收藏功能 简单的来说就是通过 URL 抓取其它服务器上数据然后做对应的操作的功能。以 ThinkJS 代码为例,我们的实现方法大概如下: const re
腾讯NEXT学位
2019/07/29
9770
干货| WEB安全漏洞之SSRF
干货 | SSRF的防御与绕过
http://www.baidu.com@10.10.10.10与http://10.10.10.10请求是相同的
HACK学习
2022/02/11
3.7K0
干货 | SSRF的防御与绕过
系统的讲解 - PHP WEB 安全防御
SQL注入攻击是通过WEB表单提交、URL参数提交或Cookie参数提交,将怀有恶意的“字符串”,提交到后台数据库,欺骗服务器执行恶意的SQL语句。
新亮
2019/05/28
1.2K0
系统的讲解 - PHP WEB 安全防御
分享:安全服务工程师面试知识点大纲
布尔盲注可以使用的函数很多,例如可以使用length函数来判断需要查询的内容的字符长度,使用substring函数来读取字符串的每一个字符,使用ascii函数来转换为相应的ascii值,最后通过布尔运算来判断字符的ascii值。
一名白帽的成长史
2019/10/08
3.1K0
分享:安全服务工程师面试知识点大纲
渗透测试面试问题合集
b、端口,弱口令,目录等扫描,对响应的端口进行漏洞探测,比如 rsync,心zang出血,mysql,ftp,ssh弱口令等。
行云博客
2022/05/11
2.7K0
渗透知识总结
web应用程序没有对输入的数据进行安全过滤,或者过滤不全面,导致攻击者通过将恶意的SQL语句插入到应用的输入参数中,再在后台SQL服务器上解析执行进行的攻击。
LuckySec
2022/11/02
2.7K0
网安渗透-面试技巧-面试考题
注意!HR面试的时候会有非常多的坑,熟悉我在这里写的问题,回答的时候情商高一点,不要跟HR吵起来,也不要有不合时宜的意见分歧,这个度最好自己能让同学、朋友担任面试官,多多挑你的刺,不断练习自己的反应能力。技术面试通过的,在HR这边通不过的例子是有很多的!
知孤云出岫
2024/02/07
6490
网安渗透-面试技巧-面试考题
2024全网最全面及最新且最为详细的网络安全技巧五 之 SSRF 漏洞EXP技巧,典例分析以及 如何修复 (下册)———— 作者:LJS
最近两天看到了字节脉搏实验室公众号上有一篇《Gopher协议与redis未授权访问》的文章,其中对gopher协议进行了比较详细的介绍,所以打算跟着后面复现学习一下。
盛透侧视攻城狮
2024/10/21
1690
2024全网最全面及最新且最为详细的网络安全技巧五 之 SSRF 漏洞EXP技巧,典例分析以及 如何修复 (下册)———— 作者:LJS
SSRF漏洞学习
SSRF(Server-Side Request Forgery:服务器端请求伪造)
全栈程序员站长
2022/09/12
7500
SSRF漏洞学习
相关推荐
SSRF漏洞原理、挖掘技巧及实战案例全汇总
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档