当前位置: 代码迷 >> 综合 >> BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传
  详细解决方案

BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传

热度:83   发布时间:2023-09-23 00:22:00.0

0X00 文件包含

1. 什么是“文件包含”?

在通过服务器脚本的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄露、恶意代码的注入等。

文件包含分为本地文件包含和远程文件包含。

2. 本地文件包含利用方式

btslab只有本地文件包含,所以这里只演示本地文件包含的利用方式。
注意这里的url包含了一个文件news.php
BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传
我们在本地创建一个新的文件phpinfo.php,然后去包含访问
BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传
代码成功执行,本地包含漏洞利用成功。

0x01 SSRF

1. 什么是“SSRF”?

SSRF(Server-Side request Forgery,服务器端请求伪造)是一种由攻击者构造请求,由服务器发起请求的安全漏洞。一般情况下,SSRF攻击的目标是外网无法访问的内部系统(正是因为请求是由服务器端发起的,所以服务端能请求到与自身相连而与外网隔离的内部系统)。

2. SSRF漏洞原理

SSRF的形成大多是由服务端提供了从其他服务器获取引用数据的功能且没有对目标地址做过滤和限制。
例如:黑客操作服务端从指定的url地址获取网页文本内容,加载指定地址的图片等,利用的是服务器端的请求伪造。SSRF利用存在缺陷的Web应用作为代理攻击远程和本地的服务器。

3. 主要攻击方式

  1. 对外网、服务器所在的内网、本地进行端口扫描,获取一些服务的banner信息。
  2. 攻击运行在内网或者在本地的应用程序。
  3. 对内网应用进行指纹识别,识别企业内部的资产信息。
  4. 攻击内外网的web应用,主要是使用HTTP GET 请求就可以实现的攻击。
  5. 利用file协议读取本地文本文件等。

4. SSRF漏洞利用

BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传
我们在当前目录下新建一个temp.jpg图片,然后输入图片地址http://127.0.0.1/btslab/vulnerability/ssrf/temp.jpg打印
BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传
这里我们输入地址为本地文件file:///C:/Windows/win.ini
BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传

0x02 点击劫持

1. 什么是“点击劫持”?

百度百科:
点击劫持,clickjacking,也被称为UI-覆盖攻击。这个词首次出现在2008年,是由互联网安全专家罗伯特·汉森和耶利米·格劳斯曼首创的。
它是通过覆盖不可见的框架误导受害者点击。
虽然受害者点击的是他所看到的网页,但其实他所点击的是被黑客精心构建的另一个置于原网页上面的透明页面。
这种攻击利用了HTML中<iframe>标签的透明属性。

BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传

2. 点击劫持漏洞利用

我们回到题目中,查看元素可知,一个input标签被隐藏了,
BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传
input中的value为当前的session,当前用户是tom,再看源码可知,用户名username正是从当前会话中得到,
BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传
由上面的分析已经可以知道,删除的用户名被隐藏了,所以当我们点击删除是时候,就会删除当前用户。
BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传
回到主页,发现登录状态已经丢失,在数据库中查看,发现用户tom已经被删除
BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传

0x03 无限制文件上传

BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传
新建一个phpinfo.php文件,上传
BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传
成功上传到服务器
BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传
访问上传上去的phpinfo.php,成功解析,可见,客户端和服务器对文件上传并没有做任何限制。
BTS测试实验室 --- 文件包含、SSRF、点击劫持、无限制文件上传