Kako nas je slabo zasnovan uporabniški vmesnik na testu za koronavirus skoraj spravil v samoizolacijo, rešila pa nas je varnostna luknja

Kako nas je slabo zasnovan uporabniški vmesnik na testu za koronavirus skoraj spravil v samoizolacijo, rešila pa nas je varnostna luknja
To sem jaz, pišem skript za naštevanje parametrov za zahtevo POST na gov.tr, sedim pred mejo s Hrvaško.

Kako se je vse začelo

Z ženo potujeva po svetu in delava na daljavo. Pred kratkim smo se preselili iz Turčije na Hrvaško (najboljša točka za obisk Evrope). Da ne bi šli v karanteno na Hrvaškem, morate imeti opravljeno potrdilo o negativnem covid testu najkasneje 48 ur pred vstopom.

Ugotovili smo, da je relativno donosno (2500 rubljev) in hitro (vsi rezultati pridejo v 5 urah) opraviti test na letališču v Istanbulu, s katerega smo pravkar odleteli.

Na letališče smo prispeli 7 ur pred odhodom, našli testno točko. Vse naredijo kaotično: prideš gor, daš potni list, plačaš, dobiš 2 nalepki s črtno kodo, greš v mobilni laboratorij, kjer ti vzamejo eno od teh nalepk za identifikacijo tvoje analize. Ko odidete in vam rečejo: pojdite na to spletno mesto: enabiz.gov.tr/PcrTestSonuc, vnesite črtno kodo in zadnje 4 številke potnega lista, čez nekaj časa bo rezultat.

Kako nas je slabo zasnovan uporabniški vmesnik na testu za koronavirus skoraj spravil v samoizolacijo, rešila pa nas je varnostna luknja

Če pa podatke vnesete takoj po opravljeni analizi, stran prikaže napako.

Kako nas je slabo zasnovan uporabniški vmesnik na testu za koronavirus skoraj spravil v samoizolacijo, rešila pa nas je varnostna luknja
Kako nas je slabo zasnovan uporabniški vmesnik na testu za koronavirus skoraj spravil v samoizolacijo, rešila pa nas je varnostna luknja

Že takrat so se mi v glavo prikradle misli o »lepem« UX, v katerem s kakršno koli napako operaterja, ki je vnesel podatke o potnem listu, ni mogoče izvedeti vašega rezultata.

Pred odhodom

Pride čas odhoda, vnesem svoje podatke in vidim, da so dokumenti zanje že tam, čeprav še ni rezultata testa.

Kako nas je slabo zasnovan uporabniški vmesnik na testu za koronavirus skoraj spravil v samoizolacijo, rešila pa nas je varnostna luknja
Kako nas je slabo zasnovan uporabniški vmesnik na testu za koronavirus skoraj spravil v samoizolacijo, rešila pa nas je varnostna luknja

Jasno je celo, da so testi prispeli v laboratorij pred 1.5 ure. Toda vnos podatkov moje žene še vedno daje napako, da vnos ni bil najden. In kar je najpomembnejše, ne boste mogli kar vprašati, kaj je narobe, ker. Test smo opravili v coni pred kontrolo potnih listov.

Ob vkrcanju na let so nas prosili za rezultate testov, a smo na srečo uspeli prepričati letališkega predstavnika, da se bodo kmalu pojavili (pokazal jim je črtne kode), v skrajnem primeru pa bomo šli v karanteno.

Takoj ko sem stopil na letalo, je koda pokazala, da imam negativen test.

Kako nas je slabo zasnovan uporabniški vmesnik na testu za koronavirus skoraj spravil v samoizolacijo, rešila pa nas je varnostna luknja

Ob prihodu

In tu se začne zabava! Takoj, ko smo prileteli in se povezali z lokalnim WiFi, se je izkazalo, da zapisa moje žene ni v bazi. In na sami meji so se dokumentov lotili zelo previdno: mejni policist je naredil test na koronavirus in ga odnesel v ločen prostor, da bi preveril njegovo resničnost. Odločili smo se, da bomo svojo zgodbo zaupanja povedali takšno, kot je, in ugotovili, kakšne možnosti imamo.

Ko smo stali v vrsti, sem se odločil preveriti pravilne (moje) in napačne podatke, kako se odziva validacijska stran.

Izkazalo se je, da pošlje zahtevo po pošti na www.enabiz.gov.tr/PcrTestSonuc/GetPcrRaporVerifyWithKimlik, z naslednjimi parametri:

št. črtne kode=XX
kimlikNo=YY
kimlikTipi=2
če črtna koda št – številko črtne kode, kimlikŠt - potni list, kimlik Tipi – fiksni parameter enak 2 (če sta izpolnjeni le prvi dve polji). Noben žeton ni bil viden. Zahteva je vrnila 1 za pravilne parametre (moje podatke) in 0 za nepravilne.

Od poštarja sem poskušal razvrstiti 40 kombinacij (naenkrat napaka enega znaka), vendar ni bilo nič.

V tistem trenutku smo stopili do mejnega policista, prisluhnil je naši zgodbi in predlagal karanteno. Vendar očitno nismo želeli sedeti v stanovanju 14 dni, zato smo prosili, da malo počakamo v tranzitni coni, da bi poskusili rešiti težavo v nekaj urah. Mejni stražar je vstopil na naš položaj, šel pogledat, ali lahko sedimo v beli coni, in s privolitvijo vodje rekel: "dobro, samo nekaj ur."

Začel sem iskati telefone tistih, ki so opravili kronski test, in se vzporedno odločil preizkusiti noro hipotezo: če ima ta sistem tako grozen UX, potem varnostni sistem ne bi smel biti dober, čeprav je gov.tr ​​​​domena.

Posledično sem med klicem napisal majhen skript, ki je razvrstil vse številke od 0000 do 9999 v polju kimlikNo. barkodNo, imeli smo na nalepki, tako da ni moglo biti narobe.

Predstavljajte si moje presenečenje, ko tudi po 500 neprekinjenih zahtevah nisem bil prepovedan in je skript še naprej deloval z 20 zahtevami na sekundo iz letališkega WiFi-ja.

Klici niso bili uspešni: preusmerjali so me z enega oddelka na drugega. Toda zelo kmalu je scenarij dal želeno vrednost 6505, ki sploh ni bila podobna pravim 4 števkam potnega lista.

Po nalaganju dokumenta se je izkazalo, da to očitno ni potni list moje žene (ruski tujci sploh nimajo takšnih številk), vsi drugi podatki (vključno z imenom, priimkom in datumom rojstva) pa so pravilni.

Kako nas je slabo zasnovan uporabniški vmesnik na testu za koronavirus skoraj spravil v samoizolacijo, rešila pa nas je varnostna luknja

Najbolj zanimivo je, da črtne kode tudi niso naključne, ampak gredo skoraj ena za drugo. Tako bi teoretično lahko našel stike, ki so dobili številko potnega lista moje žene, in na splošno gladko črpal zasebne podatke drugih ljudi.

Ura pa je bila 9 zjutraj in neprespana noč, zamujal sem na spletni sestanek in bil vesel, da so nas spustili noter brez karantene, tako da sem šele začel svojo pot po Evropi.

Vir: www.habr.com

Dodaj komentar