1.csrf介绍
csrf跨站请求伪造 客户端请求伪造
ssrf服务器端请求伪造:是一种由攻击者构造形成由服务端请求的一个安全漏洞。一般情况下,ssrf攻击的目标是从外网无法访问的内部系统。
ssrf形成原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制,导致攻击者可以传入任意地址来让后端服务器发起请求,并返回对该目标地址请求的数据。
2.ssrf漏洞挖掘
(1)分享:通过url地址分享网页内容的地方
(2)转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览;由于手机屏幕大小原因,直接浏览网页内容时会造成不便,因此提供转码服务,把网页内容通过相关手段转为适合手机屏幕浏览的样式。例如:百度、腾讯、搜狗等公司都有提供在线转码服务。注意;百度搜索 快照功能已下架。
(3)在线翻译:通过URL地址翻译对应文本内容。
(4)图片文章收藏功能
(5)从URL关键字中寻找:利用Google语法加上关键字寻找ssrf漏洞
语法:inurl:?url=http
关键字:share、wap、url、link、src、source、target、u、display、sourceURL、imageURL、domain
3.php中产生ssrf漏洞的函数
(1)file_get_contents
(2)fsockopen()
(3)curl_exec()
4.ssrf用途
5.ssrf漏洞危害
(1)内网探测:攻击者若利用SSRF漏洞可以对内网服务器、办公机进行端口扫描、资产扫描、漏洞扫描,发现服务器内部的可用端口和漏洞等;
(2)窃取本地和内网敏感数据:攻击者实施SSRF攻击后可以访问和下载内网的敏感数据,利用文件传输协议访问服务器本地文件,上传木马或者病毒。
(3)攻击服务器本地或内网应用:攻击者借助SSRF漏洞发现服务器内部存在的其他漏洞,然后利用发现的漏洞进一步发起攻击利用。
(4)跳板攻击:借助存在 SSRF 漏洞的服务器对内或对外发起攻击,以隐藏自己真实IP地址用来防止受害者溯源和追踪。
(5)绕过安全防御:如果利用SSRF漏洞攻击者可以很简单的绕过常见的防御措施和设备,直接对内网进行攻击。
(6)无视CDN的防护:CDN主要可以对网站服务器的真实地址进行隐藏,而SSRF则可以无视CDN加速技术的防御直接识别真实的ip地址。
(7)攻击web应用:攻击内外网的 web 应用,主要是使用 GET 参数就可以实现的攻击。
(8)进行指纹识别:对内网 WEB 应用进行指纹识别,通过访问默认文件实现。
(9)实现CRLF注入:利用Redis未授权访问,HTTP CRLF注入实现getshell。
(10)利用file协议读取本地文件等。
6.防御SSRF漏洞
(1)过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。
(2)统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。
(3)限制请求的端口为http常用的端口,比如,80、443、8080、8090等端口。
(4)黑名单内网ip。避免应用被用来获取获取内网数据,攻击内网。
(5)禁用不需要的协议。仅仅允许http和https请求。可以防止类似于file:///
、gopher://
、ftp://
等引起的问题。
7.ssrf绕过
(1)限制为http://www.xxx.com域名时(利用@)
(2)采用短网址绕过
(3)采用进制转换
(4)利用特殊域名
(5)利用【::】
(6)利用句号
(7)CRLF编码绕过
(8)利用封闭的字母数字