msoap/habrahabr.ru-get-favorites.coffee Last active Oct 9, 2015. Habrahabr кофе


Как я взломал Starbucks для безлимитного кофе Хабрахабр

Это история о том, как я нашел способ нагенерить неограниченное число денег на подарочные карты старбакса, тем самым обеспечить себе пожизненный бесплатный кофе, ну или украсть у них пару миллионов другими способами.

Итак, не так давно мне в голову пришла идея купить 3 карты Старбакса по $5 каждая.

На сайте starbucks.com есть личный кабинет, где можно добавить эти карты, смотреть баланс и даже переводить деньги между картами.

Есть такой малоизвестный класс уязвимостей «race condition». Могу с уверенностью заявить, что большинство приложений, которые могут быть уязвимы, к этой атаке скорее всего уязвимы, ведь далеко не каждый программист при проектировке программ учитывает такие факторы, как параллельность выполнения кода и его последствия.

В веб-приложениях он тоже встречается, обычно в функциях связанных с переводом денег/очков/фантиков/ваучеров. Обо всех тонкостях эксплуатации я расскажу в другой раз, а пока вернемся к переводу между картами в Старбаксе.

Перевод строился из нескольких stateful запросов. Схематично — первый запрос POST /step1?amount=1&from=wallet1&to=wallet2 закладывал все эти значения в сессию на сервере, и лишь второй POST/step2?confirm переводил данные уже заложенные в сессии и очищал ее.

Это существенно усложняет эксплуатацию относительно классической гонки, где нужно лишь повторить один и тот же запрос несколько раз одновременно. Ведь как только первый запрос очищает сессию, второй уже натыкается на пустую сессию! И чтобы как-то заставить это работать, пришлось бы делать сложную композицию запросов, записывающую в сессию сразу после ее очищения первым запросом и перед выполнением второго запроса. Такое могло бы сработать раз из миллиона попыток, или вообще не сработать.

Но всегда есть обход для таких «полу защит» — можно залогиниться в один и тот же аккаунт с двух разных браузеров / сессий. Тогда эксплуатация выглядит приблизительно так:

#закладываем параметры перевода в обе сессии curl starbucks/step1 -H «Cookie: session=session1» --data «amount=1&from=wallet1&to=wallet2» curl starbucks/step1 -H «Cookie: session=session2» --data «amount=1&from=wallet1&to=wallet2» #одновременное одобрение перевода $1 с карты 1 на карту 2. curl starbucks/step2?confirm -H «Cookie: session=session1» & curl starbucks/step2?confirm -H «Cookie: session=session2» &

После 5 попыток ничего интересного не произошло и я хотел уже было сдаться. Особенность состояния гонки в том, что ее можно лишь попытаться найти стороннему атакующему, ведь неизвестно, какие защиты стоят (число запросов по IP? запросов на аккаунт? запросов на действие?) и единственный способ проверить уязвимы ли вы — это тщательно проаудировать исходный код на наличие должных пессимистических локов в базе данных.

На 6-ой запрос произошло чудо — перевод был произведен два раза и у меня стало две карты с 15 и 5 долларами, 20 в сумме. Чтобы считать это за proof of concept, осталось убедиться, что магазин примет эти карты.

Я пошел в ближайший работающий Cтарбакс на market st.

— Дайте мне чего-нибудь на $16. — O_o. — Ну что у вас самое дорогое? — Вон те сэндвичи.

Вышло $16.70.

Итак, в нашу маленькую операцию Ы было инвестировано 15 долларов, а закупок сделано на 16.70. Зная отношение самого гуманного суда США к хакерам, я вернувшись домой, сразу зачислил еще $10 с кредитки на карту Старбакса, чтобы не быть должным корпорации целых $1.70, мало ли.

Дальше самое сложное — процесс репорта. Саппорт честно ответил, что не может связать меня с технической командой, ну вообще никак, и им очень жаль, что я feel this way. Написал на [email protected] 23 марта, тишина (ответили, кстати, аж 29 апреля). Пришлось через знакомых знакомых находить людей, которым не все равно и лишь через 10 дней уязвимость была исправлена.

Спасибо никто не сказал, зато был сделан не двусмысленный намек, что я совершил «fraud» и «malicious actions» и что они еще подумают, что со мной сделать.

А что мог сделать я? Я мог запустить ферму из фейковых гифт-карт, купленных в разных магазинах мира, нагенерить на них кучу денег и продавать на специальных промо сайтах с 50 процентной скидкой (чтобы не вызывать подозрения) за биткоины. Так, проработав год-другой, можно было бы высосать пару миллионов долларов из этой дружелюбной фирмы со сладким кофе.

note.taable.com

12 Different Types Of Coffee Explained

Latte, espresso, cappuccino – there are so many different types of coffee it becomes a language itself! That’s why this guide will explain the differences between 12 espresso based drinks and how they’re made. So no more getting confused at your local café.

What Are Espresso Based Drinks?

Espresso based drinks are coffees made with a cappuccino machine that share three common ingredients: espresso, steamed milk and foam.

The main differences between them are the proportions of espresso, steamed milk and foam within the beverage. Below are three popular machines used to make them.

Some coffees have extra toppings added to them to complete the beverage, such as chocolate on a cappuccino. But in essence every espresso-based drink shares the same three ingredients.

Before we learn each espresso drink recipe, below you’ll find a quick guide explaining the differences between the most common types of coffee.

Espresso Drink Recipes

Use the index below to jump to the instructions on how to make the different types of coffee. If you need a refresher on how to make espresso or steam milk make sure to check out our guides.

Different Types Of Coffee

Espresso (Short Black)

The espresso (aka “short black”) is the foundation and the most important part to every espresso based drink. So much so that we’ve written a guide on how to make the perfect espresso shot. But for the purposes of this post an espresso consists of:

• 1 Shot of espresso in an espresso cup

Double Espresso (Doppio)

A double espresso (aka “Doppio”) is just that, two espresso shots in one cup. Therefore a double espresso consists of:

• 2 shots of espresso in an espresso cup

 

Short Macchiato

A short macchiato is similar to an espresso but with a dollop of steamed milk and foam to mellow the harsh taste of an espresso. You will find that baristas in different countries make short macchiatos differently. However the traditional way of making a short macchiato is as follows:

• 1 Shot of espresso in a short glass or espresso cup• A dollop of steamed milk and foam placed on top of the espresso

Barista tip: The key to the perfect short macchiato is the rule of thirds. That is you want three different colored layers in the macchiato. A bottom dark layer to represent the espresso, a middle layer that mixes the espresso and the milk, and a top layer of predominantly steamed milk. Refer to the picture above as an example.

Long Macchiato

A long macchiato is the same as a short macchiato but with a double shot of espresso. The same rule of thirds applies in the traditionally made long macchiato:

• 2 shots of espresso in a tumbler glass or cup• A dollop of steamed milk and foam placed on top of the espresso

Barista tip: The key to making the perfect three layers is to place the dollop of steamed milk and foam on top of the espresso and then gently turning the cup clockwise a few times to mix the milk and espresso.

Ristretto

A ristretto is an espresso shot that is extracted with the same amount of coffee but half the amount of water. The end result is a more concentrated and darker espresso extraction. It is made as follows:

• Extract a standard espresso shot with half the amount of water.• Alternatively turn off a normal espresso extraction before the espresso starts to blonde.

Long Black (Americano)

A long black (aka “americano”) is hot water with an espresso shot extracted on top of the hot water. It is made as follows:

• Fill a cup with 2/3rds full of hot water• Extract 1 shot of espresso over the hot water

Barista Tip: Make sure you back-wash your portafilter before making a long black, otherwise you might find grinds from your coffee grinder floating in your coffee.

Café Latte

A café latte, or “latte” for short, is an espresso based drink with steamed milk and micro-foam added to the coffee. This coffee is much sweeter compared to an espresso due to the steamed milk. It is made as follows:

• Extract 1 shot of espresso into a tumbler glass• Add steamed milk• 1cm of micro-foam on top of the steamed milk

Barista tip: In the USA it is common to use a cup instead of a tumbler glass for a latte.

Cappuccino

A cappuccino is similar to a latte. However the key difference between a latte and cappuccino is that a cappuccino has more foam and chocolate placed on top of the drink. Further a cappuccino is made in a cup rather than a tumbler glass. It is made as follows:

• Extract 1 shot of espresso into a cup• Add steamed milk• Add 2-3cm of micro-foam on top of the steamed milk• Sprinkle chocolate on top of the coffee

Flat White

A flat white is a coffee you’ll primarily find in Australia and New Zealand. It is made the same as a cappuccino expect it does not have any foam or chocolate on top. It is made like this:

• 1 shot of espresso into a cup• Add steamed milk into the cup but no micro-foam

Piccolo Latte

A piccolo latte is a café latte made in an espresso cup. This means it has a very strong but mellowed down espresso taste thanks to the steamed milk and micro foam within it. There are two ways of making a piccolo latte, with either 1 espresso shot or 1 ristretto shot:

• 1 shot of espresso or 1 ristretto shot of espresso in a espresso cup• Add steamed milk and small amount of micro-foam.

Mocha

A mocha is a mix between a cappuccino and a hot chocolate. It is made by putting mixing chocolate powder with an espresso shot and then adding steamed milk and micro-foam into the beverage. The steps are as follows:

• Extract 1 shot of espresso into a cup• Add one spoon of chocolate powder into the espresso shot and mix• Add steamed milk• Add 2-3cm of micro-foam• Sprinkle chocolate powder on top

Affogato

An affogato is a simple dessert coffee that is treat during summer and after dinner. It is made by placing one big scoope of vanilla ice cream within a single or double shot of espresso:

• Add one scoop of vanilla ice-cream into a tumbler glass milk• Pour a single or double shot of espresso over the vanilla ice-cream

Barista Tip: If you feel like an irish kick add a shot of Frangelico liqueur into the mix.

www.latteartguide.com

News, Reviews, Opinion and Community for Coffee and Espresso

Find us on Google+
How to Make a CappuccinoTips and Tricks, 10.20.2017
Up Your Home Coffee Game, Pt. 1Professionally Speaking Article, 09.25.2017
Smoking Iced CoffeesArticle by Mark Prince, 08.17.2017
Benefits of a Zero Waste GrinderArticle by Mark Prince, 08.09.2017
Sette Grinder Game ChangerArticle by Mark Prince, 04.05.2016
Espresso Machine Buying GuideCoffeeGeek Guide, 01.16.2016
Charitable Coffee BusinessesArticle by CoffeeGeek Staff, 01.03.2016
Food 4 FarmersArticle by Mark Prince, 12.03.2015
Real Espresso Myths BustedArticle by Mark Prince, 09.10.2015
SCAA 2015 PreviewRoad Reports Article, 04.08.2015
Jura Z6Noteworthy InfoAd, 01.13.2018
News ItemsOutside News, 01.05.2018
Press ReleasesResources Subsection, 04.17.2017
La Marzocco Linea MiniFirst Look, 09.27.2015
Bonavita BV1800SS Coffee MakerQuickShot Review, 04.02.2015
Bonavita BV1800SS Coffee MakerQuickShot Review, 04.02.2015
Acaia Coffee ScaleFirst Look, 05.01.2014
Espro Toroid PitchersQuickShot Review, 04.18.2014
Cafelat XT PortafilterQuickShot Review, 04.07.2014
Saeco Exprelia EVONoteworthy InfoAd, 10.20.2013
Nuova Simonelli MCFBill Dakelski, 02.23.2018
KitchenAid ProLine GrinderChris Parcell, 02.09.2018
Neapolitan Brewers - AllJames B., 02.07.2018
Starbucks Buon Caffe 330Keith Jacobson, 02.07.2018
QM67 Dual BoilerB Beebee, 01.14.2018
Breville Barista Express BES860XL Combo MachineRichard S, 01.05.2018
Bezzera Espresso MachinesBert Van Galen, 01.04.2018
Capresso CoffeeTEAM TSWoody Windischman, 12.17.2017
Rancilio RockyTerry Kokosenski, 11.17.2017
Baratza Vario-W GrinderLisa Hardebeck, 09.24.2017

coffeegeek.com

Get user favorites from habrahabr.ru · GitHub

#!/usr/bin/env coffee # get user favorites from habrahabr.ru, geektimes.ru and megamozg.ru Jsdom = require "jsdom" HABRAHABR_HOSTS = ["http://habrahabr.ru", "http://geektimes.ru", "http://megamozg.ru"] HABR_USER_NAME = process.argv[2] || process.env.USER # ------------------------------------------------------------------ get_favorites_from_page = (habrahabr_host, favorites_url, result, on_complete_result) -> favorites_url = "#{habrahabr_host}/users/#{HABR_USER_NAME}/favorites/" if favorites_url == "" Jsdom.env url: favorites_url scripts: ["https://code.jquery.com/jquery-2.1.3.min.js"] done: (errors, window) -> $ = window.jQuery $('h2.title a.post_title').each (i, el) -> result.push title: el.textContent href: el.href next_page = $('div.page-nav > ul > li a[id=next_page]') if next_page.length > 0 get_favorites_from_page habrahabr_host, next_page[0].href, result, on_complete_result else on_complete_result habrahabr_host, result # ------------------------------------------------------------------ for habrahabr_host in HABRAHABR_HOSTS get_favorites_from_page habrahabr_host, "", [], (result_host, result) -> console.log "#{result_host} favorites for #{HABR_USER_NAME}:" result.reverse().map (row) -> console.log "#{row.href} #{row.title}" console.log ""

gist.github.com


Смотрите также