Dziwne modyfikacje CHMOD


(kosciuszkomailer) #1

Dz dobry
Walczę takim problemem na mojej stronie
Mam na stronie prosty shoutbox którego wpisy są zapisywane w pliku txt a następnie wyświetlane przy pomocy warstwy w skrypcie php - poniżej fragment

<?php $plik=file("op.txt"); // otwarcie pliku for($i=count($plik)-1; $i>-1 ; $i--) ....

gdzie div id=“shoutbox” to warstwa gdzie na stronie ładowany jest plik op.txt.
Na czym polega mój problem?. Otóż od pewnego czasu jakiś złośliwy boot? czy też inne paskudztwo wstawia w ten plik (op.txt) seryjnie linki reklam a to stron “fu fu fu” a to różnych maści tabletek wiadomo jakich itp itd.
Nie pomaga zmiana nazwy pliku txt ani ustawienie CHMOD na 600. Nawet gdy przestawię CHMOD to-to pieruństwo “potrafi” zmienić ten CHMOD na 644 a nawet utworzyć plik pod zmienioną nazwą kiedy takiego nie ma (na przykład gdy zmienię nazwę pliku op . txt na op123UTr.txt) a fizycznie go na serwerze nie ma to to-to coś utworzy taki plik.
Podejrzewam że to-to podpatruje nową nazwę pliku w kodzie php j.w i jakimś cudem może ten plik utworzyć na serwerze - tylko jakim sposobem?
Żadnych podejrzanych zmian zarówno w kodzie podstawowym ani w kodzie pliku shoutbox.php nie zaobserwowałem.
Pytanie - można w jakiś sposób zablokować/ .htaccess ?/ wyświetlanie źródła php bez szkody dla wyświetlania strony?
Czy może ktoś mi pomóc uporać się z tym problemem?


(Fizyda) #2

Aby powstrzymać się od zbędnych uwag i komentarzy w punktach wypiszę odpowiedzi na zadane przez Ciebie pytania.

  • Jeśli serwer jest poprawnie skonfigurowany nie ma możliwości wyświetlenia źródła pliku php bez wcześniejszego wykonania kodu który w nim się znajduje.
    Jeśli serwer jest poprawnie skonfigurowany to otwierając plik php z przykładowo taką treścią <?php echo "Witamy" ?> zobaczysz na stronie sam tekst Witamy zamiast całej zawartości pliku.
  • Chmody zmienia Ci skrypt który tworzy dany plik - w końcu musi mieć do niego dostęp.
  • Plik tworzy Ci skrypt bo gdzieś musi zapisywać wpisy.
  • Bot nie modyfikuje pliku, a dodaje zwyczajnie w świecie wpis do shoutboxa jak zwykły user ponieważ masz źle napisanego i zabezpieczonego shoutboxa. Więc nie musi znać nazwy pliku, ani tego gdzie ten plik jest bo dodaje reklamę poprzez skrypt tego shoutboxa.

(kosciuszkomailer) #3

W tym cały sęk że:
po pierwsze: serwer nie jest w PL
po drugo:
Nie za bardzo rozumiem to zdanie:
Chmody zmienia Ci skrypt który tworzy dany plik - w końcu musi mieć do niego dostęp.
plik .txt zmienia CHMOD?

jak chcesz podam więcej kodu z tego pliku shoutbox - poniżej

<?php $plik=file("op.txt"); // otworzenie pliku for($i=count($plik)-1; $i>-1 ; $i--) { $wpis=split(":%:", $plik[$i]); // plik jest podzielny na linie a linie na pola oddzielone znakami '%' $msg = str_replace("", "", $wpis[2]); echo "
".$wpis[0]."It writes:".$wpis[1]."
".$wpis[2]."
"; } ?>

cały ten plik shoutbox.php jest częścią strony w której jest też captcha . I nawet ona nie pomaga :frowning:


(Fizyda) #4

Nie plik, a skrypt shoutboxa, ten który odpowiada za dodawanie wpisów do tego pliku.

Biorąc pod uwagę ten kod który załączyłeś jestem w stanie w ciemno uznać, że masz źle zaimplementowaną captche. Albo masz starą którą boty bez problemu obchodzą.


(kosciuszkomailer) #5

Rzeczywiście - masz rację captchę mam z aplikacji Internet Captcha V1_2
Pytanie - czy na prv mógłbyś udzielić porady w zaimplementowaniu czegoś nowszego?


(Fizyda) #6

Nie pomagam na priv bo nikt inny z tego nie skorzysta. Jeśli mam poświęcać swój czas pomagając to niech ma możliwość skorzystania z tego większe grono ludzi o podobnym problemie.
Druga sprawa to, że w zależności od Twoich umiejętności taka pomoc może być bardzo czasochłonna i wręcz sprowadzać się do napisania tutoriala how to z wdrożeniem jakiegoś nawet gotowego shoutboxa na własnej stronie.

Na podstawie fragmentu kodu jaki dałeś uważam nawet, że ze względów bezpieczeństwa trzeba byłoby się zająć całą stroną, a nie samym shoutboxem. Przynajmniej warto byłoby przejrzeć kod strony i ocenić czy potrzeby stawiane względem niej wymagają większych modernizacji czy też może jednak można ją zostawić i wystarczy dodać normalnego shoutboxa.

Poza tym szukając gotowego skryptu shoutboxa w sieci na 100% będziesz miał w jego dokumentacji opisany sposób jego wdrażania na stronie. Powinieneś też do popularniejszych rozwiązań bez większego problemu znaleźć tutoriale z przykładami takich wdrożeń.

Więc jeśli masz jakieś pytania to pytaj na forum, ja lub ktoś inny na pewno Ci pomoże. Jeśli chcesz zlecić jakieś zmiany na swojej stronie w tedy możesz pisać też do mnie na priv, albo szukać kogoś innego w odpowiednich miejscach.


(kosciuszkomailer) #7

Szukałem w między czasie i znalazłem ten link
Ciekawy link do captchy
co o tym sądzisz?


(Fizyda) #8

Nie wiem, nie używam. Gdybym miał użyć jakiejś captchy to pierwsze co bym próbował to tą https://www.google.com/recaptcha/intro/android.html


(roobal) #9

Jakie to ma znaczenie gdzie jest serwer? Myślisz, że botom z dalekiego wschodu to przeszkadza? Jeśli Twoja strona jest w języku polskim i do tego w domenie pl, to możesz mieć serwer nawet na księżycu lub marsie, dla spamerów to żadne ograniczenie.


(roobal) #10

Skrypt uruchamia jakiś użytkownik w systemie, na którym działa interpreter php. Najczęściej jest to użytkownik apache, nginx, www-data, www lub taki jaki sobie wymyśliłeś na serwerze. Jeśli skrypt ma prawod do czytania, wykonania i zapisywania w katalogu, gdzie jest plik, to skrypt go tam zapisuje z takim użytkownikiem i grupą do jakiej należy. Jeśli plik nie istnieje, tworzy go, bo ma do tego uprawnienia.

Gdy wbijasz się na serwer przez FTP jako użytkownik koszciuszkomailer i nie masz żadnego sgid itp. to katalogi i pliki tworzysz jako użytkownik koszciuszkomailer. Tak samo działa Twój skrypt.

Znajomość chmod i posługiwanie się nim to za mało. Wygląda na to, że nie wiesz jak działają systemy operacyjne, skoro tego nie rozumiesz i uważasz, że jakiś bot zapisje Tobie pliki. Masz prawo nie znać się na systemach operacyjnych i klepać kod, ale w takim razie warto się podszkolić lub dać komuś pod opiekę ten serwer :wink:


(Fizyda) #11

Czepamiam się wiem, ale chcę Ci tylko zwrócić uwagę, że w pośpiechu zapewne sam nie napisałeś do końca prawdy. Jakie ma znaczenie dla bota czy domena jest w domenie pl, com, com.pl, gov, edu, de, io czy innej? Żadne. Więc ani serwer ani typ domeny nie mają znaczeni, ba nawet dla większości botów nie ma znaczenia język strony ani kontentu :smiley: .


(roobal) #12

Oczywiście, że nie ma. Napisałem celowo o domenie pl, bo kolega pewnie napisze, że dostaje spam tylko z polskimi treściami. To czy spamuje ktoś z polski, czy z chin nie ma znaczenia. Domena ma znaczenie jedynie przy wyborze języka. Jakiś czas temu dostawałem sporo spamu na maila z japoni i treść nie była pisana łamaną polszczyzną. Gdybym miał domenę nl, pewnie dostawałbym to samo po niderlandzku :wink:

Bardziej o to mi chodziło, bo wiem, że domena nie ma aż takiego znaczenia na otrzymywanie spamu. Ale spoko, pozwoliłem Ci się wykazać :wink:


(Bzyt_ek) #13

Dz dobry
Wczoraj nie mogłem się zalogować? przez moje normalne konto tylko przez kosciuszkomailer.
Ad rem
W kwestii pojawiającego się u mnie na stronie spamu to fakty są takie że spam przychodzi po angielsku i po rosyjsku! a nie po polsku czy :wink: niderlandzku.
Strona jest na serwerze w domenie .au
Jak wytłumaczyć fakt że pliki ma zmieniony przeze mnie CHMOD na 600 a po dopisaniu do niego spamu CHMOD zmienia się na 644? / w tym akurat jestem laik/
Może jeszcze ktoś wypowie się na temat tego skryptu captha i jego opisanych tam przykładowych zastosowań.
To że "wbijam się " na serwer jako “ja” to wiem tylko czy istnieje sposób by wyczaić kto to jeszcze robi?


(Fizyda) #14

Sprawdzić logi.

Najwidoczniej interpreter php ustawia takie chmody lub wymusza to konfiguracja serwera. Nie wiemy nic na temat Twojego serwera więc nie oczekuj odpowiedzi.


(Bzyt_ek) #15

Z twojej wypowiedzi w kwestii podanego przeze mnie linku wnioskuję że do niezbyt dobre rozwiązanie :thinking:


(Fizyda) #16

Popatrz jakie zmiany w ostatnim czasie przeszła recaptcha od google. Powodem tego jest udostępnienie bibliotek do maszynowego uczenia się w kwestii rozpoznawania tekstów z grafik, to spowodowało, że wszelkiej maści boty potrafią obejść zabezpieczenia wymagające przepisania tekstu z grafiki. Obecnie weryfikacja czy mamy do czynienia z botem czy człowiekiem jeśli ma być skuteczna musi być bardzie rozbudowana.

Zresztą biorąc pod uwagę Twoje posty i wątpliwości możesz mieć równie dobrze dziurawy skrypt strony i to wcale niekonicznie shoutboxa. Chociaż wszystko wskazuje na problem z nim, jednak bez przeprowadzenia audytu strony nic nie da się powiedzieć ani wykluczyć.


(Bzyt_ek) #17

Na skrypt strony składa się “zwykły” tekst w php w którym zawarta jest walidacja capthą / przyznam że trochę stary ten mój kod / i walidacja .js pól formularza i licznik znaków też w .js
poniżej początek kodu php / nie wiem czy dobrze wkleiłem ten kod :frowning: nie mogę znaleźć znacznika [code] ? w opcjach edycji /

<? session_start(); header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1 header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); // HTTP/1.0 $key = $_POST['key']; $info = "Enter the code below (lower case)"; if(!empty($key)) { $info = ''; if ($key==$_SESSION['code']) { if(!empty($_POST['nick']) && !empty($_POST['message'])) { date_default_timezone_set('Poland/Warsaw'); // strefa czasowa $name=$_POST['nick']; $msg=$_POST['message']; $msg = str_replace("\n", "", $msg); $now = date("H:i:s d-m-Y"); // czas serwera w wybranym formacie $row=$name.":%:".$now.":%:".$msg."\r\n"; // dodajemy do pliku date separatorem pozostaje "%" $plik = fopen("op.txt","a"); fputs($plik,$row); fclose($plik);// zamykamy plik header("Location: http://-----.org.au/welcome-eng.php#wpis-box-eng/eng-book.php"); } else { header("Location: http://-----.org.au/welcome-eng.php#wpis-box-eng/eng-book.php"); } } else { $info = "Characters you entered are not consistent with".$_SESSION['code']." 
Try again."; } } ?>

dalej jest “zwykły” kod html z polami do wypełnienia i .js z walidacją wypełnionych pólTekst sformatowany


(Fizyda) #18

Pierwszy raz spotykam się z pojęciem

skrypt strony składa się “zwykły” tekst w php

więc nie umiem się do tego odnieść, tym bardziej nie wiem co przez to możesz rozumieć.

Umieść kod na jakiejś wklejce czy czymś skoro nie umiesz umieścić go tutaj (przyznam, nie jest to za bardzo intuicyjne na początku). Grunt by kod był czytelny bo w obecnej formie to tylko interpreter phpa jest w stanie go zrozumieć. Ja takich zdolności nie posiadam.


(Bzyt_ek) #19

fragment tego “zwykłego” .php wkleiłem w post
ok będziesz jeszcze ??? bo zaraz zacznę to wklejać i podam link do wklejki


(Fizyda) #20

Zarywam kolejną nockę więc pewnie do do 2 a nawet 3 będę bez większego problemu.