🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: nl.comp.programmeren
Article #16

Re: php header injection

#16
From: flor
Date: Sat, 10 Feb 2007 09:07
87 lines
4000 bytes
flor schreef:
> flor schreef:
>> Tim Van Wassenhove schreef:
>>> flor schreef:
>>>> Erick T. Barkhuis schreef:
>>>>> flor:
>>>>>> spammers misbruiken mijn php script.
>>>>>
>>>>>> is het mogelijk om de header injection ongedaan te maken?
>>>>>
>>>>> Weiger gewoon alle invoer die tot gevolg heeft dat er control 
>>>>> characters zoals \r en \n in de mailheaders terechtkomen.
>>>>>
>>>>> Met PHP iets als
>>>>> if (strstr($afzender,"\n")) {
>>>>>     header ("Location: $foutpagina");
>>>>>     exit;
>>>>> }
>>>>>
>>>>> ....waarbij $afzender een ingevoerd veld is waarvan de inhoud in 
>>>>> een mailheader terechtkomt, en $foutpagina de url bevat van een 
>>>>> webdocument waarheen je de booswicht wilt doorverwijzen.
>>>>
>>>> bedankt voor de hulp.
>>>> Ik slaag er echter niet in om het voor elkaar te krijgen.
>>>>
>>>> Mijn code:
>>>>
>>>>> <?php
>>>>> $email = $_POST['email_addr'] ;
>>>>>
>>>>> if (strstr($email,"\n")) {
>>>>>     header ("Location: $spamurl");
>>>>>     exit;
>>>>> }
>>>>>
>>>>> $add_subscriber = "insert into subscribers values (/de ingevulde 
>>>>> waarden/);
>>>>> mysql_query($add_subscriber,$conn) or die(mysql_error());
>>>>>
>>>>> header( "Location: $thankyouurl" );
>>>>> exit ;
>>>>> ?>
>>>>
>>>> als ik nu een "\n" in het emailadres zet, krijg ik toch nog de 
>>>> $thankyouurl en wordt alles mooi in de database gezet
>>>> wat doe ik mis?
>>>>
>>>
>>> http://www.php.net/strstr
>>> string strstr ( string haystack, string needle )
>>>
>>> Geeft alles van haystack van het eerste voorkomen van needle tot het 
>>> einde.
>>>
>>> Als needle niet gevonden wordt, retourneert deze functie FALSE.
>>>
>>> Als needle geen string is, wordt deze geconverteerd naar een integer 
>>> en toegepast als de ordinale waarde van dat karakter.
>>>
>>> Dus in dit geval, wil je dat strstr FALSE retourneert.
>>>
>>> if (strstr($email, "\n") !== FALSE) {
>>>  header('Location: http://example.com');
>>>  exit;
>>> }
>>>
>>
>> hallo,
>>
>> bedankt voor het antwoord, maar dit schijnt hetzelfde resultaat te geven
>>
> 
> ah! blijkbaar werkt het wel als ik de ! weglaat:
>  >> if (strstr($email, "\n") == FALSE)
> 
> bedankt!

oeps, te vroeg victorie gekraaid...
nu geeft hij ook bij geldige emailadressen dat het op een spambericht 
gaat...

-- 
Flor

Wat is het duurste internetland?
http://www.nationmaster.com/graph/int_int_cha-internet-charges
Technical Details
Message-ID: <DXfzh.1632$Gg.68676@phobos.telenet-ops.be>
Path: arc1-ca.pugleaf.net!g2news2.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!newsfeed.freenet.de!feeder.news-service.com!feeder.news-service.com!news.astraweb.com!newsrouter-eu.astraweb.com!hwmnpeer01.ams!news.highwinds-media.com!kramikske.telenet-ops.be!nntp.telenet.be!kwabbernoot.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail
References: <_dYxh.329365$zB3.6533177@phobos.telenet-ops.be> <MPG.20326fc52ebe7c7a98a4ff@news.individual.net> <NYmyh.331494$Mn7.6448246@phobos.telenet-ops.be> <q_OdnaaHRsXvFFbYRVnytQA@scarlet.biz> <0Pfzh.1619$Ja1.141448@phobos.telenet-ops.be> <0Sfzh.1624$xg.59451@phobos.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Thread: 107324,d41daf92e1d7a0a0
X-Google-Thread: 114bee,d41daf92e1d7a0a0
X-Google-Attributes: gid107324,gid114bee,public
X-Google-Language: DUTCH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news2.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!newsfeed.freenet.de!feeder.news-service.com!feeder.news-service.com!news.astraweb.com!newsrouter-eu.astraweb.com!hwmnpeer01.ams!news.highwinds-media.com!kramikske.telenet-ops.be!nntp.telenet.be!kwabbernoot.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail
From: flor <flor@no.spam>
User-Agent: Thunderbird 1.5.0.9 (Windows/20061207)
MIME-Version: 1.0
Newsgroups: nl.comp.programmeren,be.comp.internet.design
Subject: Re: php header injection
References: <_dYxh.329365$zB3.6533177@phobos.telenet-ops.be> <MPG.20326fc52ebe7c7a98a4ff@news.individual.net> <NYmyh.331494$Mn7.6448246@phobos.telenet-ops.be> <q_OdnaaHRsXvFFbYRVnytQA@scarlet.biz> <0Pfzh.1619$Ja1.141448@phobos.telenet-ops.be> <0Sfzh.1624$xg.59451@phobos.telenet-ops.be>
In-Reply-To: <0Sfzh.1624$xg.59451@phobos.telenet-ops.be>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 87
Message-ID: <DXfzh.1632$Gg.68676@phobos.telenet-ops.be>
Date: Sat, 10 Feb 2007 09:07:47 GMT
NNTP-Posting-Host: 84.194.42.128
X-Complaints-To: abuse@telenet.be
X-Trace: phobos.telenet-ops.be 1171098467 84.194.42.128 (Sat, 10 Feb 2007 10:07:47 MET)
NNTP-Posting-Date: Sat, 10 Feb 2007 10:07:47 MET
Organization: Telenet Internet