🟠 Cieć. Zwykolak #001. Od niego zaczęła się cała ta patologia.
Najmłodszego już poznaliście — Liczysław niedawno oficjalnie wszedł na produkcję.
Więc teraz cofamy taśmę.
Do czasów, kiedy nie było jeszcze Gildii.
Nie było Zwykolaków.
Nie było nawet nazw.
Był tylko problem.
GENEZA
Przy części naszych systemów płatniczych muszę wykonywać raporty bezpieczeństwa wymagane przez Elavon.
Pierwszy raz, kiedy zobaczyłem taki raport, trochę mnie pojebało. 😂
Raport ciężki jak cholera.
Cała masa języka elfickiego, o którym nie mam zielonego pojęcia.
Raport wyrzucał mi między innymi:
Command Injection (CVE-2023-51385, CVE-2020-15778), Row Hammer (CVE-2023-51767), eskalację uprawnień (CVE-2021-41617), wystawiony MySQL na 3306/tcp i jeszcze jakieś 170 innych powodów, dla których człowiek zaczyna żałować że się uczył.
Część oczywiście false positive.
Znaczy kolega mówił, bo ja nie rozumiem XD
I musiał potem tłumaczyć wyjątki supportowi.
Ciężka ta robota kolegi. Zdecydowanie powinien dostać podwyżkę (gdyby jego szef to czytał).
Patrzę na to wszystko i myślę:
dlaczego raport nie sprawdza najprostszych rzeczy?
Czyli zamiast wymyślać włamanie rodem z Mission: Impossible:
może najpierw sprawdźmy, czy admin nie zostawił otwartych drzwi.
I tak powstał pierwszy skrypt.
Napisany szybko, bez wielkiej filozofii.
PHP.
Cron.
Kilka testów.
Raport.
PIERWSZY PROBLEM
Dopisuje blok kodu, testuje, dopisuje, testuje…
Test leci przez HTTP, bo wygodniej.
Tylko każdy kolejny skan trwa coraz dłużej, aż w końcu wjeżdża limit requestu:
30s
i serwer mówi:
timeout -.-
Skan dalej miał robotę do wykonania. HTTP już nie chciało czekać.
Chciałem zwiększyć limit po stronie serwera.
Tylko że był akurat jakiś długi weekend czy inne święto, admini infrastruktury pili prawdopodobnie drinki z palemką, a ja chciałem testować teraz, a nie po powrocie administracji do świata żywych.
I nie zamierzałem też za każdym testem siedzieć i czekać, aż łaskawie odpali cron.
Długo więc nie myśląc:
odpaliłem Ciecia z CLI.
Warstwa HTTP?
Do widzenia.
Timeout requestu?
Nie moja impreza.
Piu. Piu. Piu. Madafaka.
Oczywiście, komunikat CLI musiał oddawać moje samopoczucie w tamtej chwili:
„Serwer nie odpowiada, admini piją drinki. Piu, piu, piu, madafaka — strzelamy z CLI.”
I właśnie w takich momentach człowiek zaczyna rozumieć, że jego oprogramowanie niepotrzebnie zaczyna mieć osobowość.
DRUGI PROBLEM
Jak poinformować admina o podatności? Mailem? Kto czyta maile? 😀
Dostał więc własnego bota na Telegramie, postawionego przez BotFathera.
Jak już ojciec chrzestny botów dodał swoje DNA do projektu to komunikat też musiał być godny.
Nie:
„Administratorze, uprzejmie informuję…”
Tylko:
„ADMIN TO IDIOTA. NIE POZDRAWIAM. Chcesz coś z Avonu?”
Subtelny komunikat skierowany bezpośrednio do autora tego burdelu, czyli do mnie. 😂
Bo skoro programista ma dostać alert o własnym błędzie, to niech przynajmniej będzie z tego jakaś rozrywka.
I właśnie wtedy narodził się Cieć.
Obchodzi strony.
Szarpie za klamki.
Zagląda pod wycieraczkę.
Sprawdza, czy ktoś nie zostawił otwartego okna.
A jeśli zostawił:
drze mordę na Telegramie.
Strzały z crona zresztą lecą do dziś.
I chyba właśnie tutaj, zupełnie przypadkiem, powstało DNA całej późniejszej Gildii:
jedno konkretne zadanie, prosty kod, automatyzacja i absolutnie niepotrzebna osobowość.
Witaj świecie.
Cieć.
Zwykolak #001.
Pierwszy na służbie.
Pierwszy od:
piu piu piu madafaka
I pierwszy, który obrażał mnie za błędy we własnym kodzie. 🫡
POST-CREDITS: STACK
Engine: PHP. Wszystko.
Trigger: cron tylko strzela.
Requesty: cURL.
Telegram: cURL → Bot API.
Dziękuję, do widzenia. Jesteśmy ludźmi cywilizowanymi.
In PHP We Trust.

