一、ssrf漏洞
1、ssrf原理?危害?修复(防御)?
原理:SSRF就是服务器端请求伪造漏洞、它是一种由攻击者构造,由服务端发起请求的一个网络攻击,一般用来在外网探测或攻击内网服务,然后它的影响效果根据服务器用的函数不同,从而造成不同的影响。
危害:
1.内外网的端口和服务扫描
2.主机本地敏感数据的读取
3.内外网主机应用程序漏洞的利用
4.内外网Web站点漏洞的利用
防御:1.可以过滤返回信息,验证远程服务器对请求的响应是⽐较容易的⽅法。如果web应⽤是去获取某⼀种类型的⽂件。那么在把返回结果展示给⽤户之前先验证返回的信息是否符号标准。 2.统⼀错误信息,避免⽤户可以根据错误信息来判断远端服务器的端⼝状态。 3.限制请求的端⼝为http常⽤的端⼝,⽐如80,443,8080,8090。 4.禁⽤不需要的协议,仅仅允许http和https请求,可以防⽌类似file://、gopher://等协议引起的问题。
2、ssrf一般存在于哪里,从哪里寻找?(漏洞挖掘)
分享:通过URL地址分享⽹⻚内容
下载:通过URL地址加载或下载图⽚
图⽚、⽂章收藏功能
3、ssrf常用的协议?
dict:词典网络协议,用来进行(内网)端口探测
file:伪协议,用来读取本地文件
gopher:(重点):gopher协议支持发出GETPOST请求:可以先截获get请求包和post请求包,在构成符合gopher协议的请求。gopher协议是ssr利用中最强大的协议。
http协议:超文本传输协议
4、ssrf漏洞的函数?
file_get_contents:这个函数可以从⽤户指定的url获取图⽚,然后把它⽤⼀个随机⽂件名保存在硬盘上,并展示给⽤户。
fsockopen():这个函数可以实现获取⽤户制定url的数据(⽂件或者html)。这个函数会使socket跟服务器建⽴ TCP连接,传输原始数据。
curl_exec():curl是⼀个⾮常常⻅的实现,通过php获取数据。⽂件/数据被下载并存储在curled⽂件夹下的磁盘中,并附加⼀个 随机数和“.txt”⽂件扩展名。
5、csrf和ssrf的区别?
CSRF是跨站请求伪造攻击,由客户端发起;由于未验证refer来源,导致攻击者可以利用用户的cookie访问网站。SSRF是服务器端请求伪造,由服务器发起;对用户提供的url过于信任,导致可以访问任意url。