PHP基础代码审计 2.3 文件操作漏洞
Local File Include
典型漏洞代码:
主要涉及到的函数
LFI漏洞的作用越来越小了、大多数都需要截断、PHP更新已经把这个古老的方法干掉了。。Orz
所以LFI可利用的地方
LFI 本地文件包含漏洞 Local File Include 典型漏洞代码: 主要涉及到的函数 LFI漏洞的作用越来越小了、大多数都需要截断、PHP更新已经把这个古老的方法干掉了。。Orz 所以LFI可利用的地方很少很少、、、 LFI漏洞挖掘LFI利用 包含环境变量文件 包含特殊权限的文件 包含web server日志文件 成功包含FTP日志文件 结合phpinfo包含临时文件 包含session文件 RFI 远程文件包含漏洞 Remote File Include RFI的危害最大、能实现的作用及利用方式更多 普通远程文件包含 需要 allow_url_include=On 利用php流input代码执行 利用php流filter读取任意文件 利用data URIs 利用XSS执行任意代码 有限制的远程文件包含 需要allow_url_fopen=On并且allow_url_include=On 只需要allow_url_include=On SSRF 服务端请求伪造攻击 Server-side Request Forgery 利用ssrf可以实现的攻击主要有5种 可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息; 攻击运行在内网或本地的应用程序(比如溢出); 对内网web应用进行指纹识别,通过访问默认文件实现; 攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等); 利用file协议读取本地文件等。 SSRF攻击可能存在任何语言编写的应用 PHP::file_get_contents() 这段代码使用file_get_contents函数从用户指定的url获取图片。然后把它用一个随即文件名保存在硬盘上php文件,并展示给用户。 PHP::fsockopen() 这段代码使用fsockopen函数实现获取用户制定url的数据(文件或者html)。这个函数会使用socket跟服务器建立tcp连接,传输原始数据。 PHP::curl_exec() 这是另外一个很常见的实现。使用curl获取数据。 SSRF内网渗透SSRF端口扫描&中继代理 大多数社交网站都提供了通过用户指定的url上传图片的功能。如果用户输入的url是无效的。大部分的web应用都会返回错误信息。攻击者可以输入一些不常见的但是有效的URI,比如 然后根据服务器的返回信息来判断端口是否开放。 大部分应用并不会去判断端口,只要是有效的URL,就发出了请求。而大部分的TCP服务,在建立socket连接的时候就会发送banner信息,banner信息是ascii编码的,能够作为原始的html数据展示。 当然,服务端在处理返回信息的时候一般不会直接展示,但是不同的错误码,返回信息的长度以及返回时间都可以作为依据来判断远程服务器的端口状态。 下面一个实现就可以用来做端口扫描的PHP例子 POST不同端口的正常URL到该文件,如果是正常web服务则返回网站页面,如果请求非http服务的端口则会返回banner信息,如果请求关闭的端口则会报错。 当然大多数互联网的应用并不会直接返回banner信息。不过可以通过前面说过的,处错误信息,响应时间,响应包大小来判断。 作为中继代理、上面的例子也可以用来访问内网的服务器、访问内网的网站! SSRF攻击应用程序(跨协议通信技术原理) 内网的安全通常都很薄弱,溢出,弱口令等一般都是存在的。通过ssrf攻击,可以实现对内网的访问,从而可以攻击内网或者本地机器,获得shell等。 【跨协议通信技术】跨协议通信技术(Inter-Protocol Communication)是指两种不同的协议可以交换指令和数据的技术。其中一种称为目标协议,另外一种称为载体协议。目标协议就是我们最终想要通信的协议,而载体协议是用来封装我们最后想要发送的指令和数据。 (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |