Nous sommes le 10 Mar 2010, 12:26

Heures au format UTC + 1 heure [ Heure d'été ]






Poster un nouveau sujet Répondre au sujet  [ 21 messages ]  Aller à la page 1, 2, 3  Suivante
  Imprimer le sujet Sujet précédent | Sujet suivant 
Auteur Message
 Sujet du message: REMOTE ADDR
MessagePosté: 22 Jan 2010, 01:59 
Hors ligne

Inscription: 05 Juin 2009, 00:40
Messages: 380
Est-ce qu'on peut faire une injection SQL présente via un $_SERVER['REMOTE_ADDR'] (pas forwarded_for hein)?

J'imagine qu'envoyer un paquet avec pour IP source ', admin='1 doit pas être très faisable, donc j'demande si y'aurait pas une solution :).


Haut
 Profil  
 
 Sujet du message: Re: REMOTE ADDR
MessagePosté: 22 Jan 2010, 20:49 
Hors ligne

Inscription: 29 Oct 2008, 00:44
Messages: 2261
Il me semble que PHP vérifie que l'entrée a bien la forme d'une IP (c'est quand même une globale). Mais tu peux t'amuser à vérifier ça en changeant ton user agent (avec un plugin firefox par exemple) et en voyant si les variables globales retranscrivent l'info telles quelles, ou si ya un minimum de tests derrière.

La réponse m'intéresse =)

_________________
La preuve que les linuxiens sont des pirates
---
On a jamais trop à lire... [Pour les liens morts : cf Forum]


Haut
 Profil  
 
 Sujet du message: Re: REMOTE ADDR
MessagePosté: 22 Jan 2010, 20:59 
Hors ligne

Inscription: 05 Juin 2009, 00:40
Messages: 380
m4nch0tdunet a écrit:
Il me semble que PHP vérifie que l'entrée a bien la forme d'une IP (c'est quand même une globale). Mais tu peux t'amuser à vérifier ça en changeant ton user agent (avec un plugin firefox par exemple) et en voyant si les variables globales retranscrivent l'info telles quelles, ou si ya un minimum de tests derrière.

La réponse m'intéresse =)

Justement, je ne parle pas de l'user agent, ni du x-forwarded-for, qui sont elles modifiables justement via un plugin, mais bien de la variable chopée par REMOTE_ADDR...

Si c'est l'ip du visiteur, récupérée par apache, je vois pas trop comment faire, mais bon, je demande au cas où :).


Haut
 Profil  
 
 Sujet du message: Re: REMOTE ADDR
MessagePosté: 22 Jan 2010, 23:15 
Hors ligne

Inscription: 29 Oct 2008, 00:44
Messages: 2261
Strayyy a écrit:
m4nch0tdunet a écrit:
Il me semble que PHP vérifie que l'entrée a bien la forme d'une IP (c'est quand même une globale). Mais tu peux t'amuser à vérifier ça en changeant ton user agent (avec un plugin firefox par exemple) et en voyant si les variables globales retranscrivent l'info telles quelles, ou si ya un minimum de tests derrière.

La réponse m'intéresse =)

Justement, je ne parle pas de l'user agent, ni du x-forwarded-for, qui sont elles modifiables justement via un plugin, mais bien de la variable chopée par REMOTE_ADDR...

Si c'est l'ip du visiteur, récupérée par apache, je vois pas trop comment faire, mais bon, je demande au cas où :).



Oui, j'ai supposé que toutes les variables avaient le même niveau de contrôle. Puisque de toute façon l'IP aussi est changeable (requêtes forgées).

Mais en localhost tu peux vérifier si les variables subissent des test en injectant ce que tu veux via l'user agent.

_________________
La preuve que les linuxiens sont des pirates
---
On a jamais trop à lire... [Pour les liens morts : cf Forum]


Haut
 Profil  
 
 Sujet du message: Re: REMOTE ADDR
MessagePosté: 23 Jan 2010, 00:24 
Hors ligne

Inscription: 05 Juin 2009, 00:40
Messages: 380
m4nch0tdunet a écrit:
Oui, j'ai supposé que toutes les variables avaient le même niveau de contrôle. Puisque de toute façon l'IP aussi est changeable (requêtes forgées).

Voilà, du coup j'ai tenté en speed avec scapy, mais ce couillon essaye de résoudre un nom de domaine :p.
'Pis franchement, vu que l'IP est codée sur 32 bits, j'vois pas trop comment faire. Sans parler du routage impossible toussa.

Bref, à mon avis, c'était une question conne.

(quand à l'injection dans un user-agent et x-forwarded-for, sauf erreur de ma part -et de tutos sur le net-, c'est possible)


Haut
 Profil  
 
 Sujet du message: Re: REMOTE ADDR
MessagePosté: 23 Jan 2010, 00:49 
Hors ligne

Inscription: 29 Oct 2008, 00:44
Messages: 2261
C'est peut-être pas impossible... Ça commence à m'intéresser ce truc.

Déjà en localhost on peut aisément faire ce qu'on veut. Si j'ai un peu de temps cette nuit j'essaierais de voir ce que ça donne.

Par la suite si ya moyen, faudra réfléchir à comment on peut envoyer ce genre de données sans avoir à se soucier du routage

_________________
La preuve que les linuxiens sont des pirates
---
On a jamais trop à lire... [Pour les liens morts : cf Forum]


Haut
 Profil  
 
 Sujet du message: Re: REMOTE ADDR
MessagePosté: 23 Jan 2010, 13:28 
Hors ligne
Staff
Staff
Avatar de l'utilisateur

Inscription: 22 Mar 2008, 22:45
Messages: 915
Je pense que php récupère l'adresse IP distante fournie par apache.
Donc, je pense pas qu'il y ait une autre solution que le spoofing classique.


Haut
 Profil  
 
 Sujet du message: Re: REMOTE ADDR
MessagePosté: 23 Jan 2010, 22:18 
Hors ligne

Inscription: 18 Jan 2010, 00:54
Messages: 2
perso je me debrouille dans ce domaine (injection sql) sans me vanter, j'ai beaucoup appris sur un site anglophone assez pro la dedans.

pour les interessés je vous file les prog que j'utilise couramment pour mes injections:

Sql dork scanner:
http://www.ziddu.com/download/7040665/e ... r.rar.html
password: hackingguide

havij sql injection tool:
http://www.multiupload.com/UG5F2XNH4C

ExploitMyUnion.py:
http://www.seeon.fr/tools_seeon/windows.txt
http://www.seeon.fr/tools_seeon/linux.txt

Sqli helper:
http://www.multiupload.com/VN15TNFOQW

ta juste a coller ton URL vulnerable dans le prog et c'est tout ( http://www.xxx.com/truc.php?id=11)

avec ca, yen a qui pourrait faire tomber un bon stock de serveurs. :)

sinon ya un truc du genre:

dork: inurl:"AdminLogin.asp"
dork: inurl:"login.asp"

login: admin
pwd: 'or''='

parfois ca fonctionne aussi.


Haut
 Profil  
 
 Sujet du message: Re: REMOTE ADDR
MessagePosté: 24 Jan 2010, 14:17 
Hors ligne
Staff
Staff
Avatar de l'utilisateur

Inscription: 22 Mar 2008, 22:45
Messages: 915
Pré Scriptum : J'ai supprimé tous les messages s'éloignant trop de bisounours-land.

suxx0r, dis-moi mon grand. T'as lu la question avant de sortir tes liens ?
Parce qu'il me semble que la question est plutôt : "Comment donner une valeur arbitraire à la variable superglobale $_SERVER['REMOTE_ADDR'] ?".
Et non : "Comment on fait une injection SQL ?".
De plus que même à cette dernière question, tes liens n'y répondent que très partiellement.

On pourrait épiloguer sur le fait que tu dérive le sujet et que tu commences par "sans vouloir me vanter, je me débrouille bien" avant de balancer un tas de liens de SK. Mais en fait, tout le monde t'as déjà cerné.


Et sinon, pour apporter des précisions par rapport à mon précédent message :
Le spoofing te permettra de modifier la valeur de _SERVER['REMOTE_ADDR'], mais tu ne pourras y mettre que des adresses IP. Donc pas d'injection SQL possible.
Sinon, tu peux toujours tenter de modifier la variable. À priori je ne vois pas pourquoi php ferait un quelconque contrôle dessus si le script à envie de modifier la variable.
Il fut un temps, quand le register_globals était activé par défaut, on pouvait modifier certaines variables superglobales via l'url. Tu peux toujours tenter ça. Sinon, tu peux chercher une autre manière de modifier cette variable.


Haut
 Profil  
 
 Sujet du message: Re: REMOTE ADDR
MessagePosté: 25 Jan 2010, 11:42 
Hors ligne

Inscription: 20 Déc 2009, 21:42
Messages: 42
Salut, voilà une question intéressante !!!
Je vais essayer de vous donner mon point de vue...

$_SERVER est un tableau associatif dont le remplissage est effectué (pas forcément tous les champs ne sont remplis, des fois il y en a même qui peuvent être rajoutés) à partir des infos fournies "directement" par le client, ou alors par le serveur lui-même (et c'est le cas ici).

Pour l'IP du client, ça donnerait un truc du genre :

$_SERVER = array((bla bla bla)...'REMOTE_ADDR' => '201.124.56.72'...(bla bla bla));
ou alors un remplissage au fur et à mesure :

$_SERVER = array();
//(bla bla bla)
$_SERVER['REMOTE_ADDR']='201.124.56.72'; // Je ne me rappelle pas la fonction qui extrait l'IP de la couche réseau, donc je la rentre ici en dur, mais postulons que ça marche à peu près comme ça
//(bla bla bla)

Et donc, on y accède en utilisant $_SERVER['REMOTE_ADDR'] comme tu le sais.

Tout ça pour dire trois choses :

1°) C'est le serveur qui va chercher directement ton IP. La remplacer par quelque chose d'autre pourrait conduire à des problèmes de routage...

2°) Même si tu arrives à remplacer ton IP par une requête quelconque, tu en fais quoi après ? A quel moment le serveur risque de la manipuler ? Peut-être s'il fait un log des users connectés, il inscrira $_SERVER['REMOTE_ADDR'] dans une BDD (et si c'est le cas, il y aura certainement une contrainte sur la longueur de l'enregistrement), et encore...mais il y a très peu de chances pour qu'elle soit manipulée autrement !
Autre possibilité, si tu essaies de la remplacer non pas par une requête mais par une fonction PHP quelconque, même une fonction existante, comment va-t-elle pouvoir être interprétée et à quel moment ?

3°) Le vrai "problème", c'est que c'est le serveur qui va chercher cette IP depuis la couche réseau, et quoi qu'il arrive elle aura toujours la forme que l'on connaît (des bits, des points...une IP quoi). Je suis pratiquement certain qu'il y a une vérification de l'IP avec une expression régulière ou quelque chose d'approchant.

A mon avis, le seul truc que tu puisses faire, et ça a déjà été dit, c'est la spoofer...

Et le cas échéant te pencher vers d'autres champs de ce tableau associatif, ceux sur lesquels l'utilisateur a plus de "contrôle" ;)

En espérant avoir pu t'aider un peu...

@++


Haut
 Profil  
 
Afficher les messages précédents:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 21 messages ]  Aller à la page 1, 2, 3  Suivante

Heures au format UTC + 1 heure [ Heure d'été ]


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  



HZV WILL NEVER DIE !!