nmap

dirbuster

gobuster

收集的信息有点少啊,是不是漏了什么。

有一个在线处理图片的网页,但是访问不了。

手动添加dns以后即可访问

看描述是一个吧图片里的文字转化为文本形式的功能,上传一个玩玩。

感觉已经很明显了需要上传shel,不过先要找到上传文件的位置。

等等……Flask?该不会存在SSTI吧

首先在目录尝试SSTI

想试试直接在图片里面弄个SSTI文本上传会怎么样,结果还被发现了。

试试混着一堆字母,目前成功。

那么问题来了,接下来怎么构造一个SSTI呢,有一个小的方法就是面对搜索引擎学习。


因为flask中默认的模板引擎是Jinja2,还是有点多,我在多个区域随机选一个测试。

其中经过简单测试发现对部分字符进行了检查。

貌似对某些字符还会存在误差判断

我让报错位置弄三个"_"它识别出来三个"_",我弄两个“_”,它又只识别出来一个,估计是字体问题,没办法只能继续测试 。

想办法配合图片识别这花的时间比较多,最终测试这个可以。


不过这个识别真的需要耐心慢慢来。

原打算用python socket反shell,然而……
原文件是这样


并且目标也收到了

然而我去看目标收到的文件内容,它把 "给我转化为了unicode码 ",#后面直接被注释没了。好吧我真的很感谢它。

换方法,要么用短小精悍的反弹语句,要么还可以找到私钥用ssh。因为前面得知了用户svc_acc。
先用ssh吧,找到用户文件里的.ssh看看有没有用户的私钥。


找到私钥,把它打出来。



首先不知道密码 sudo -l也就看不了,没有sudoers的权限,history也只有自己的。

再找找这个与这个用户有关的所有文件,-type f 搜索普通文件
先用find / -type f -user svc_acc > svc_acc_file把有关用户的名单弄进去,再用grep -v "Permission denied" svc_acc_file过滤掉没有权限访问的文件。
在一堆滚动的字符中看到了/usr/local/sbin/ssh-alert.sh。

如果嫌麻烦可以用LinEnum.sh,但是我的LinEnum.sh貌似没有找到那个文件。

简单分析一下,就是会给root@late.htb发送ssh相关的信息,
可以看看此用户的权限有读和执行但是没有写入权。
再来认识个命令lsattr用来显示文档的隐藏属性,如果用chattr给了隐藏属性就可以用lsattr查看。

有个有关lsattr的网站可以去看看,里面也有细致的参数说明那些。

可以看到有a和e,我们主要关注a,简单来说就是可以附加,也就是说我们可以在那个文件后面附加一段代码。

所以我之前复制了python socket的反弹代码不想浪费了,正好拿来用了,当然可以用/dev/tcp连接。

然后记住这个shell.py和ssh-alert.sh,我的反弹脚本在

而要附加的文件在

所以如果要让sh运行shell.py就需要准确位置../../../home/svc_acc/shell.py。

因为这个sh可能会在ssh启动的时候才会执行,所以先弄个进程循环,再用ssh登录看看是否如此,能看到使用ssh登陆的时候会自动执行sh。

先退出ssh,开个nc,再连接ssh,动作尽量要快点,估计又有时间任务。


root后去查看crontab。

每分钟都会执行/root/scripts/cron.sh这个文件。
