Rappelez-vous ma pratique d'exploration de vulnérabilité - la vulnérabilité d'injection SQL d'une entreprise

 Table des matières

Introduction

2. Processus d'exploitation minière

1. Recherche aléatoire de grammaire Google

2. Accédez au site Web

3. Détection des points d'injection

3. Dynamitage SQLMAP

(1) Bibliothèque explosive

(2) Rafale

(3) Champ de salve

 3. Résumé


Introduction

  J'ai soumis la vulnérabilité sur la boîte de vulnérabilité, et il y a un projet appelé SRC de bien-être public dessus. Public Wealness src est une plate-forme permettant aux white hats de soumettre des vulnérabilités découvertes au hasard. Nous pouvons soumettre les vulnérabilités que nous avons découvertes au hasard ou activement trouvées dans la boîte de vulnérabilité. Ne franchissez pas la ligne rouge lors de l'extraction de src. En général, il vous suffit d'obtenir le nom de la base de données pour prouver l'existence de la vulnérabilité lors d'une injection SQL. Il est préférable de ne pas l'obtenir davantage. La vulnérabilité xss n'obtient que des informations telles que son propre cookie ou son adresse IP pour prouver l'existence de la vulnérabilité. En cas de fuite d'informations, s'il existe une situation dans laquelle des fichiers sensibles peuvent être téléchargés, les fichiers doivent être supprimés une fois la vulnérabilité confirmée.

2. Processus d'exploitation minière

1. Recherche aléatoire de grammaire Google

inurl:php?id=1

Cette grammaire de Google doit être familière à beaucoup d'amis, c'est une grammaire très classique utilisée pour rechercher des sites Web qui peuvent avoir des vulnérabilités d'injection SQL.

Les amis qui veulent aller sur Google peuvent rechercher un logiciel fanqiang ou quelque chose du genre. Si vous ne le trouvez pas, le navigateur Edge fourni avec win11 prend également en charge cette syntaxe, vous pouvez donc l'essayer.

2. Accédez au site Web

Pour la commodité de l'opération, j'ai copié l'URL dans le navigateur Firefox. Vous pouvez voir qu'il y a un paramètre id derrière l'URL supérieure. Généralement, nous devons être sensibles à voir ce paramètre dans l'exploration de vulnérabilité, car les sites Web avec ce paramètre peuvent avoir Le problème, tout d'abord, entre autres, le site Web qui peut afficher le paramètre id utilise la méthode de transfert de paramètre GET.Cette méthode de transfert de paramètre est facile à provoquer des fuites d'informations, donc en pratique, il est préférable d'utiliser le paramètre POST méthode de transfert pour transmettre des données, et minimiser la divulgation directe d'informations.

3. Détection des points d'injection

Pour la commodité de l'opération, mettez l'URL dans le hakbar

Après avoir entré les paramètres suivants, j'ai constaté qu'il manque une image en bas du site Web, continuez à tester

id=1'

Après avoir entré les paramètres suivants, il revient à la normale (par souci de confidentialité, nous utilisons ici une carte pour le couvrir pour tout le monde)

id=1'and'1'='1

Entrez les paramètres suivants et l'image signale à nouveau une erreur. Il s'agit d'une vulnérabilité d'injection SQL de type caractère très typique.

id=1'and'1'='2

3. Dynamitage SQLMAP

Pourquoi devrais-je utiliser SQLmap ? Le premier est d'améliorer l'efficacité. Après tout, SQLMAP est un outil automatisé qui peut nous aider à extraire plus efficacement les informations de la base de données. Le second est que j'ai déjà essayé l'injection manuelle et que je n'ai pas pu obtenir beaucoup d'informations, j'ai donc choisi SQLMAP dynamitage.

 En fait, selon les informations d'analyse préliminaires de SQLMAP, vous pouvez également voir le type d'injection SQL, le système d'exploitation, le langage de développement, la version de la base de données et d'autres informations qui existent sur ce site Web.

(1) Bibliothèque explosive

On peut voir que l'entreprise dispose actuellement de bases de données disponibles 5. Afin d'assurer la confidentialité de l'entreprise, toutes sont codées à l'exception de la base de données information_schema.

De plus, lorsque vous creusez des vulnérabilités, je suggère personnellement que la bibliothèque information_schema ne soit pas altérée, car les informations clés de toute la base de données sont stockées dans cette base de données, et nous ne pouvons pas assumer la responsabilité en cas de problème.

sqlmap -u URL --dbs 

(2) Rafale

sqlmap -u URL --tables -D 数据库名

Ici, j'ai choisi une base de données nommée par eux-mêmes et, par conséquent, la table d'administration est apparue lorsque je l'ai saisie. À ce moment-là, j'ai deviné que le nom d'utilisateur et le mot de passe devaient y être stockés.

 

(3) Champ de salve

sqlmap -u URL --columns -T 表名 -D 数据库名

Comme prévu, grâce au dynamitage sur le terrain, deux champs, compte et mot de passe, y ont été trouvés. Il peut y avoir un nom d'utilisateur et un mot de passe (c'est juste une supposition, je n'ose pas aller plus loin), mais pour des raisons de sécurité et de mon sécurité personnelle, je prévois de m'y arrêter et de déposer un rapport de bogue sur SRC

 

 3. Résumé

Il existe de nombreuses méthodes de défense pour l'injection SQL, et c'est aussi un problème courant

1. 使用参数化查询:使用参数化查询可以防止SQL注入攻击。参数化查询是将SQL语句和参数分开发送到数据库,而不是将它们组合在一起。这样可以确保参数不会被解释为SQL代码。

2. 对输入进行验证和过滤:在将用户输入传递给数据库之前,应该对其进行验证和过滤。可以使用正则表达式或其他方法来验证输入是否符合预期格式。还可以过滤掉不必要的字符,例如单引号和双引号。

3. 最小化数据库权限:将数据库用户的权限限制为最小化,只允许其执行必要的操作。这样可以减少攻击者利用SQL注入漏洞的机会。

4.永远不要太相信用户输入的东西!


等等.............

Lorsque vous creusez des trous, tout le monde doit également faire attention. Certaines informations très sensibles seront ignorées après avoir été creusées. Ne les diffusez pas au hasard et ne les utilisez pas à volonté, sinon toute la nature changera. Ensuite, n'oubliez pas de soumettre le rapport de vulnérabilité à temps. Un chapeau juste blanc, c'est OK !

C'est la première fois que j'écris ce genre d'article pratique, merci de signaler les mauvais côtés ! ! !

Je suppose que tu aimes

Origine blog.csdn.net/qq_60503432/article/details/130465208
conseillé
Classement