Специалисты по СУБД с сайта Oracle WTF заинтересовались, что же такое печатает в терминале юный хакер в фильме «Девушка с татуировкой дракона». По сюжету, это были запросы к базе данных полицейского отделения, с помощью которых она раскрыла убийства 40-летней давности.
![](https://habrastorage.org/r/w780q1/storage2/ff0/57a/7a7/ff057a7a7dbcf105f4ef9035d3bae470.jpg)
Склеив несколько кадров, можно частично рассмотреть SQL-запрос.
![](https://habrastorage.org/r/w780q1/storage2/cac/7c5/168/cac7c5168d4011963110432212e2efa6.jpg)
Как могут заметить кинозрители, это не Oracle SQL, поскольку используется некорректный оператор
Вот какой ответ приходит девушке с полицейского сервера.
![](https://habrastorage.org/r/w780q1/storage2/289/9c7/3e2/2899c73e213102eb64c2691f52260047.jpg)
Ответ ещё интереснее, чем запрос.
![](https://habrastorage.org/r/w780q1/storage2/74d/9b6/cc1/74d9b6cc12d9812e0d8d38514b2b634e.jpg)
«Шокированные кинозрители будут озадачены, что один из лучших в мире хакеров ничего не знает об операторе проверки соответствия шаблона LIKE, и почему, чёрт возьми, ни одна из жертв не имеет инициалов R.L.», — пишут юмористы с Oracle WTF.
![](https://habrastorage.org/storage2/ff0/57a/7a7/ff057a7a7dbcf105f4ef9035d3bae470.jpg)
Склеив несколько кадров, можно частично рассмотреть SQL-запрос.
![](https://habrastorage.org/storage2/cac/7c5/168/cac7c5168d4011963110432212e2efa6.jpg)
Как могут заметить кинозрители, это не Oracle SQL, поскольку используется некорректный оператор
AS
. На самом деле даже в заголовке терминала можно разглядеть mysql.Вот какой ответ приходит девушке с полицейского сервера.
![](https://habrastorage.org/storage2/289/9c7/3e2/2899c73e213102eb64c2691f52260047.jpg)
Ответ ещё интереснее, чем запрос.
![](https://habrastorage.org/storage2/74d/9b6/cc1/74d9b6cc12d9812e0d8d38514b2b634e.jpg)
SELECT DISTINCT v.fname, v.lname, i.year, i.location, i.report_file
FROM Incident AS i
LEFT JOIN V(ictim?)... -- presumably v.incident_id = i.id
LEFT JOIN Keyword AS k ON k.incident_id = i.id
WHERE i.year BETWEEN 1947 AND 1966
AND i.type = 'HOMICIDE'
AND v.sex = 'F'
AND i.status = 'UNSOLVED'
AND ...
OR v.fname IN ('Mari', 'Magda')
OR SUBSTR ...
AND (k.keyword IN ('rape', 'decapitation', 'dismemberment', 'fire', 'altar', 'priest', 'prostitute')
...
AND SUBSTR(v.fname, 1, 1) = 'R' AND SUBSTR(v.lname, 1, 1) = 'L');
+--------+---------+------+-----------+----------------------------------+
| fname | lname | year | location | report_file |
+--------+---------+------+-----------+----------------------------------+
| Anna | Wedin | 1956 | Mark | FULL POLICE REPORT NOT DIGITIZED |
| Linda | Janson | 1955 | Mariestad | FULL POLICE REPORT NOT DIGITIZED |
| Simone | Grau | 1958 | Goteborg | FULL POLICE REPORT NOT DIGITIZED |
| Lea | Persson | 1962 | Uddevalla | FULL POLICE REPORT NOT DIGITIZED |
| Kajsa | Severin | 1962 | Dals-Ed | FULL POLICE REPORT NOT DIGITIZED |
+--------+---------+------+-----------+----------------------------------+
«Шокированные кинозрители будут озадачены, что один из лучших в мире хакеров ничего не знает об операторе проверки соответствия шаблона LIKE, и почему, чёрт возьми, ни одна из жертв не имеет инициалов R.L.», — пишут юмористы с Oracle WTF.