-: Dans cette section, nous
allons parler de tests d'intrusion d'applications Web.
Avant de pouvoir en parler,
nous devons comprendre ce qu'est un site Web.
Comme je l'ai
dit précédemment, un site Web est simplement une application installée sur un ordinateur.
Cet ordinateur a probablement de meilleures
spécifications que
votre ordinateur, mais, fondamentalement, il fonctionne exactement
comme un autre ordinateur.
Il possède un
système d'exploitation et plusieurs applications lui
permettant de jouer le rôle de serveur Web.
Les deux principales applications qu’il possède
probablement sont un serveur Web et une base de données.
Un serveur Web s'apparente à Apache
et une base de données, à MySQL.
Le serveur Web comprend et exécute
l'application Web.
Votre application Web serait écrite en PHP ou Python,
dans n’importe quel langage de programmation.
La seule chose
à faire est que le serveur
Web doit pouvoir comprendre et exécuter cette application Web.
La base de données contient les données utilisées par l'application Web.
Tout cela est stocké sur un ordinateur appelé le serveur.
L'ordinateur est connecté à Internet et dispose d'une adresse
IP réelle. Ainsi, tout le monde
peut accéder à cet ordinateur et lui envoyer une requête ping.
L'application Web est exécutée par le serveur
Web installé sur votre serveur, sur votre cible.
Par conséquent, chaque fois que vous demandez une page ou exécutez
l'application Web, celle-ci est
en fait exécutée sur le serveur Web
et n'est pas exécutée sur l'ordinateur du client.
Il est exécuté sur
le serveur Web, puis une page HTML prête à
être lue par la personne cible ou les clients.
Regardons un exemple.
Disons que vous êtes au téléphone ou sur votre ordinateur et que vous
vouliez aller sur Facebook. com.
Donc, vous tapez facebook. com dans votre URL.
Cela sera traduit à l'aide d'un serveur DNS en une
adresse IP.
Il y a un serveur qui traduit chaque nom. com,. edu, ou tout site Web avec un nom de domaine, il s’agit donc
d’un nom de domaine, avec son
adresse IP correspondante.
Alors, vous demandez facebook. com, la demande va à un
serveur
DNS, il traduit facebook. com sur l'IP où Facebook
est
stocké, puis il ira à l'adresse IP de
Facebook, exécutera la page que vous voulez en utilisant toutes les applications
dont nous avons parlé, puis
vous donnera un code HTML prêt.
Ce que vous récupérez est simplement un balisage
écrit en HTML, qui est un langage de balisage, du résultat
de l'exécution du programme.
Le programme est exécuté sur le serveur
et vous obtenez simplement le résultat.
Ceci est très important car à l'avenir, si
nous voulions que quelque chose
soit exécuté sur le serveur Web, si nous
voulions faire
exécuter un shell, un shell inversé ou un virus
sur l'ordinateur cible, nous devrons l'envoyer
dans un langage. que le serveur Web comprend.
Par exemple, PHP.
Une fois que vous l'exécutez là,
il sera exécuté sur cet ordinateur, pas sur votre ordinateur.
Quelle que soit la personne qui accède à la page, le shell
Web que vous allez envoyer, s'il est
écrit en PHP, dans un
langage compris par
le serveur, sera exécuté sur le
serveur et non sur votre ordinateur.
Par conséquent, cela vous donnera accès au
serveur et non à la personne qui a accédé à ce serveur.
JavaScript, d’autre part, certains sites Web
utilisent JavaScript.
JavaScript est un langage client.
Si vous parvenez à trouver
un site Web vous permettant d'exécuter du code
JavaScript, celui-ci sera exécuté par les clients.
Même si le code peut être injecté dans
le serveur Web, il sera exécuté côté
client et vous permettra
de faire des choses sur l'ordinateur client et non sur le serveur.
Il est très important de séparer un langage
côté client d'un langage côté serveur.