2021-40438漏洞所涉及到的知识盲区

一. SSRF漏洞

01SSRF概念

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

02SSRF的原理

很多web应用都提供了从其他的服务器上获取数据的功能。使用指定的URL,web应用便可以获取图片,下载文件,读取文件内容等。SSRF的实质是利用存在缺陷的web应用作为代理攻击远程和本地的服务器。一般情况下, SSRF攻击的目标是外网无法访问的内部系统,黑客可以利用SSRF漏洞获取内部系统的一些信息(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)。SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。

 

二. unix套接字是什么,有什么用?unix本地套接字是什么?可以攻击嘛?

  1,哎,套接字这个词太不好理解了,其实它就是socket。编程常见。

套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口

  2,本地套接字是 IPC,也就是本地进程间通信的一种实现方式;本地套接字一般也叫做 UNIX 域套接字。本地套接字是一种特殊类型的套接字,和 TCP/UDP 套接字不同。TCP/UDP 即使在本地地址通信,也要走系统网络协议栈,而本地套接字,严格意义上说提供了一种单主机跨进程间调用的手段,减少了协议栈实现的复杂度,效率比 TCP/UDP 套接字都要高许多。类似的 IPC 机制还有 UNIX 管道、共享内存和 RPC 调用等。

  本地字节流套接字和 TCP 服务器端、客户端编程最大的差异就是套接字类型的不同。本地字节流套接字识别服务器不再通过 IP 地址和端口,而是通过本地文件。

  3,

三. 反向代理是什么?

  反向代理是为服务器服务的,让人找不到服务器真实地址。

 

 四. CVE-2021-40438漏洞原理:利用apache函数缺陷,构造可控的反向代理:Apache在正常情况下,因为识别到了unix套接字,所以会把用户请求发送给这个本地文件套接字,而不是后端URL。使unix套接字过长,就会返回空,请求就会发送给后端的url。具体说明:当远程在目标环境(服务器)使用了mod_proxy做反向代理,比如ProxyPass / "http://localhost:8000/",此时通过请求http://target/?unix:{'A'*5000}|http://example.com/即可向http://自己的地址或自己可控的网站.com发送请求(这个请求就是从服务端发起的向自己的请求),造成一个SSRF攻击。

哎,这个反向代理和ssrf原理把我弄昏头了。理解了好久。。。也不知道我说明白了了没有。

 

另:https://blog.csdn.net/asasd101/article/details/120838177   这个文章写的很详细。

 

posted @ 2021-11-02 17:08  A思  阅读(1717)  评论(0编辑  收藏  举报