Moonpig är ett välkänt hälsningskortföretag i Storbritannien. Du kan använda sina tjänster för att skicka personliga hälsningskort till dina vänner och familj. [Paul] bestämde sig för att göra lite grävning och upptäckte några säkerhetsproblem mellan Moonpig Android-appen och deras API.
Först och främst märkte [Paul] att systemet använde grundläggande autentisering. Det här är inte idealiskt, men företaget använde minst SSL-kryptering för att skydda kundens referenser. Efter avkodning av autentiseringsrubriken märkte [Paul] något konstigt. Användarnamnet och lösenordet som skickas med varje förfrågan var inte hans egna referenser. Hans kund-ID var där, men de faktiska referenserna var fel.
[Paul] skapade ett nytt konto och fann att referenserna var desamma. Genom att ändra kund-id i HTTP-begäran av hans andra konto kunde han lura webbplatsen för att spotta ut all den sparade adressinformationen för hans första konto. Detta innebar att det var i huvudsak ingen autentisering alls. Alla användare kan efterlikna en annan användare. Att dra adressinformation kanske inte låter som en stor sak, men [Paul] hävdar att varje API-begäran var så här. Detta innebar att du kunde gå så långt som beställningar under andra kundkonton utan sitt samtycke.
[Paul] Begagnade Moonpigs API-hjälpfiler för att hitta mer intressanta metoder. En som stod ut till honom var getcreditcarddetails-metoden. [Paul] gav det ett skott, och säkra noga systemet dumpade ut kreditkortsuppgifter, inklusive de sista fyra siffrorna i kortet, utgångsdatum och namnet som är associerat med kortet. Det kan inte vara fullt kortnummer men det här är fortfarande uppenbarligen ett ganska stort problem som skulle fixas omedelbart … rätt?
[Paul] avslöjade sårbarheten ansvarsfullt till Moonpig i augusti 2013. Moonpig svarade med att säga att problemet berodde på äldre kod och det skulle lösas omedelbart. Ett år senare följde [Paul] upp med Moonpig. Han fick höra att det skulle lösas före jul. Den 5 januari 2015 var sårbarheten fortfarande inte löst. [Paul] bestämde sig för att det inte var tillräckligt, och han kunde också bara publicera sina fynd online för att hjälpa till att trycka på problemet. Det verkar ha fungerat. Moonpig har sedan inaktiverat sin API och släppte ett uttalande via Twitter som hävdar att “all lösenord och betalningsinformation är och har alltid varit säkra”. Det är bra och allt, men det skulle innebära lite mer om lösenorden faktiskt spelade roll.