[PHP] IIS ban

Pagina: 1
Acties:

Onderwerpen


  • reminder
  • Registratie: Maart 2001
  • Laatst online: 14-09 21:41
Ik ben dus opzoek naar een manier om vanuit een PHP script iemand een volledige ban te geven op m'n IIS server.
Nu heb ik eigenlijk 2 vraagjes :
Waar slaat IIS het op ? (heb al in het register gezocht maar kon het niet echt vinden)
En als het in het register staan, hoe kan ik dat met PHP aanpassen ?

( Btw, het is IIS 6.0 op een .NET server)

Each year, the Rainforest is responsible for over 3000 deaths from accidents, attacks or illnesses. There are over 700 things in the rainforest that cause cancer. Join the fight now and help stop the Rainforest before it's too late


Verwijderd

IIS = Internet Information Services

Verders geen id.

  • reminder
  • Registratie: Maart 2001
  • Laatst online: 14-09 21:41
Verwijderd schreef op 14 november 2002 @ 12:19:
IIS = Internet Information Services

Verders geen id.
Ja, zover was ik ook wel.... :Z

Each year, the Rainforest is responsible for over 3000 deaths from accidents, attacks or illnesses. There are over 700 things in the rainforest that cause cancer. Join the fight now and help stop the Rainforest before it's too late


  • HunterPro
  • Registratie: Juni 2001
  • Niet online
Je moet zorgen dat je in je scripts inbouwt (in alle scripts) dat ie eerst het IP checked tegen een lijst uit bijv mySQL (of een rauw text-bestand, if that pleases you). Als ie dus banned is kun je een lege page echo'en, of een nette page met een regel waarin de banreden staat. Je zou ook IIS' mogelijkheden van 'forbidden IP's' kunnen gebruiken, maar ik denk niet dat je daar met een script (zeker niet met PHP) zo bij kan.

Verwijderd

Op IIS niveau kan je aangeven welke IP adressen wel of geen toegang krijgen tot je website. Een andere manier is om in je code een IP adres te checken tegen bijvoorbeeld een database en daarmee de toegang te ontzeggen. Een nog mooiere methode (vind ik) is om met .Net een HttpModule te schrijven die de Beginrequest opvangt en de gegevens van de gebruiker checkt (IP adres dus).
Hoe je programmeertechnisch de IIS lijst van toegestane IP adressen benadert weet ik niet omdat ik dat nog nooit gedaan heb. Wel heb ik een pointer voor je en dat is het gebruik van ADSI. Met ADSI (en de IIS functie GetObject("IIS://...")) kan je IIS benaderen en de gegevens wijzigen. Ik kan met voorstellen dat je met deze methode ook de toegestane IP adressen kan bereiken en dus aanpassen. Hoe dat in PHP gaat... geen id.

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Oke dit is net helemaal mijn specialiteit aangezien ik niet met Windows Servers werk. Maar je kan eens kijken naar.

http://www.php.net/manual/en/ref.dotnet.php
en
http://www.php.net/manual/en/ref.w32api.php

Maar is Hunterpro's oplossing nix?

Programmer - an organism that turns coffee into software.


  • reminder
  • Registratie: Maart 2001
  • Laatst online: 14-09 21:41
LuCarD schreef op 14 November 2002 @ 13:00:
Maar is Hunterpro's oplossing nix?
Deze oplossing had ik dus zelf ook al in gedachten maar het is een hoop werk om alle scripts aan te passen en je kan nog gewoon gebruik maken van exploits (zoals /c/winnt/system32/cmd.exe die ik regelmatig in m'n log zie).

Zal eens even kijken of ik mischien vanuit een PHP script mischien een ASP script kan aanroepen die het dan doet zoals CJ_S voorstelt

Each year, the Rainforest is responsible for over 3000 deaths from accidents, attacks or illnesses. There are over 700 things in the rainforest that cause cancer. Join the fight now and help stop the Rainforest before it's too late


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

_DPC_Null2k schreef op 14 November 2002 @ 13:06:
[...]

Deze oplossing had ik dus zelf ook al in gedachten maar het is een hoop werk om alle scripts aan te passen en je kan nog gewoon gebruik maken van exploits (zoals /c/winnt/system32/cmd.exe die ik regelmatig in m'n log zie).
http://www.php.net/manual/en/configuration.directives.php en zoek auto_prepend .

Hiermee kan je automagisch voor elke PHP pagina een include file plakken.

/c/winnt/system32/cmd.exe <-- deze dingen komen meestal door Nimda of Code Red (I en II)
Zal eens even kijken of ik mischien vanuit een PHP script mischien een ASP script kan aanroepen die het dan doet zoals CJ_S voorstelt
Tuurlijk kan dat...

bv.
PHP:
1
file("http://localhost/mijnaspfile.asp?blockip=". $_SERVER['REMOTE_ADDR']);


of zo....

Programmer - an organism that turns coffee into software.


  • reminder
  • Registratie: Maart 2001
  • Laatst online: 14-09 21:41
Thx allemaal, het is gelukt
Ik heb het volgende stukje ASP code van de Microsoft site af. Deze roep ik dan weer aan met m'n PHP script
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<% 

' Remember to enable Integrated Windows Authentication and 

' disable Anonymous Access or you will get and Server 500 error.

Dim SecObj 

Dim MyIPSec

Dim IPList


' Get the IIS object that holds the info for the default site. 

' This could be any site root/vdir, or IIS://LocalHost/W3SVC for global 

' properties.

Set SecObj = GetObject("IIS://LocalHost/W3SVC/1/root") 


' Get the IIsIPSecurity object

Set MyIPSec = SecObj.IPSecurity

' Make sure GrantByDefault=TRUE or your changes will not count 

' Get the Deny list, as an array, and add your new restricted IP

IPList = MyIPSec.IPDeny

IPListSize = (UBound(IPList) - LBound(IPList)) + 1

Redim Preserve IPList(IPListSize + 1)

IPList(IPListSize + 1) = Request.QueryString("ip")


' Set the new lists back in the metabase in two stages, and then set 

' the metabase

MyIPSec.IPDeny = IPList

SecObj.IPSecurity = MyIPSec

SecObj.Setinfo

Response.Write "The IPRestriction has been set<BR>"

%>

[ Voor 0% gewijzigd door reminder op 14-11-2002 14:53 . Reden: foutje... :) ]

Each year, the Rainforest is responsible for over 3000 deaths from accidents, attacks or illnesses. There are over 700 things in the rainforest that cause cancer. Join the fight now and help stop the Rainforest before it's too late

Pagina: 1