18/1/2015
Po SQL injection w nazwie firmy, wstrzykniętym do Centralnej Ewidencji Informacji o Działalności Gospodarcej — pora na paragon “z dodatkiem” :-)
Jak słusznie zauważa @kerouanton, pewnie nikt tego nie zauważył, bo z reguły u dołu paragonów prezentowane są różne enigmatyczne ciągi znaków.
PS. W temacie “ataków na sklepy” polecamy też lekturę wpisu Hackowanie czytników kodów kreskowych w Leroy Merlin oraz Przepis na darmową kawę w IKEA.
Te enigmatyczne znaki na końcu to zazwyczaj systemowy numer paragonu i numer unikatory drukarki / kasy fiskalnej.
SQL był raczej w jakimś programie z którego ten paragon został wydrukowany.
Drukarka czy też kasa fiskalna nie mają bezpośredniego połączenia z bazą danych.
Na pewno !? moja żona ma kawiarnię wszystkie paragony są zapisywane na urządzeniu/karcie pamięci, nie wnikałem jaki to format ale fakt jest faktem że wszystko jest zapisane na kasie
Format zapewne Posnetu albo Novitusa, zresztą oba bardzo zbliżone do siebie :) tylko te dwa formaty są o tyle fajne, że nie można sobie wysłać na wyjście paragonu byle czego, bo jedynym typem paragonu jaki może nosić dowolny tekst jest “rejestracja transakcji” (najczęściej stosowany do wydruków z wirtualnych terminali karcianych (apka na “kasie” + podłączony pinpad). W paragonach fiskalnych i raportach funkcji operatora znaki są przyjmowane tylko w nazwie towaru :)
@Kamil
W przypadku kas i drukarek z kopią elektroniczną zamiast rolek, są to najzwyczajniej w świecie pliki tekstowe.
Jeśli wyjmiesz SD z kasy żony i wrzucisz w czytnik to znajdziesz struksturę mniej więcej taką:
archiwum -> nr unikatowy -> 0,1,2,3,4,5 … -> 01, 02 .. 11, 12
gdzie pierwsze cyferki to numery raportów dobowych (zazwyczaj do 1830), a kolejne to nr paragonów :)
Tylko uwaga, możesz sobie te plik skopiować i pooglądać, ale pod żadnym pozorem nic w nich nie zmieniaj, zmiana daty modyfikacji pliki może skończyć się ponownym zainicjowaniem karty pamięci – co oznacza kuku dla Twojej pani.
Dani producenci udostępniają nawet gotowy soft do tego (do zgrywania kopii również, ale jest to wolne)
Co z tego może wyniknąć ? nic… co ktoś uzyska ile sklep sprzedał mleka ? :P
Kamil – to jest zapisywane w pamieci fiskalnej – nieulotnej, niezniszczalnej itp – ale daleko temu kawalkowi krzemu do bazy SQL :)
Pamięć fiskalna trzyma tylko kwoty obrotu transakcji, NIP podatnika, obowiązujące stawki podatku, dobowe raporty fiskalne i rejestry czynności technicznych :)
Program wykonał złą operację podczas pobierania numeru ostatniego paragonu a komunikat błędu poszedł na wyjście drukarki razem z następnymi błędami
Widzę, że z tureckiego podwórka…
Merhaba ;) na to samo zwróciłem uwagę :)
To jest SQL, ale nie injection. Po prostu na paragonie został wydrukowany komunikat błędu razem z zapytaniem, które się nie udało.
@Etam
Ta, i zupełnie przypadkiem “zwyczajny” SELECT kończy się “WHERE (1=1)” ??
Ale jakbyś się znał na zapytaniach, to byś wiedział że to where (1=1) nie zmienia w tym zapytaniu nic, równie dobrze może go tam nie być.
To popularna “procedura” stosowana w sytuacji, gdy zapytanie jest budowane z “klocków” – where nie może być pusty, więc wpisuje się 1=1 na wypadek, gdyby żaden inny klocek (tu: klauzula) nie był w danej sytuacji dostawiany.
Przecież zdjęcie nie przedstawia paragonu fiskalnego, a już na pewno nie z polskiego paragonu fiskalnego. Zawartość paragonu fiskalnego jest ściśle opisana przez rozporządzenie MF. To raczej jakiś wydruk z POSa, na którym śmigają przeważnie windy.