当前位置:网站首页>[vérification sur le Web - divulgation du code source] obtenir la méthode du code source et utiliser des outils

[vérification sur le Web - divulgation du code source] obtenir la méthode du code source et utiliser des outils

2022-07-05 03:36:00 Black zone (RISE)

Table des matières

Un.、Fuite de fichier de sauvegarde

1.1、Introduction:

1.2、Fichier de sauvegarde de texte

1.3、Fichier de sauvegarde du code source complet

2.、GitFuite

2.1、Outils(GitHack):

2.2、Produire:

2.3、Recherche par caractéristiques

2.4、Adoption.gitFuite

Analyse des sources:

Documentation:

Fonction personnalisée

Trois、svnFuite

3.1、Introduction:

3.2、Cause de l'accident:

3.3、Outils:

Seay-Svn(Simple.)

dvcs-ripper

Quatre、hg、CVS、Bazaar/bzrFuite du code source

4.1、Outils:

dvcs-ripper

Cinq、WEB-INF/web.xml Fuite

5.1、Introduction:

5.2、Cause de l'accident:

5.3、WEB-INF Contient principalement des fichiers ou des répertoires :

5.4、Utilisation:

Six、DS_Store Fuite de documents

6.1、Introduction:

6.2、Outils:

ds_store_exp

Sept、 Exploiter les fuites


Un.、Fuite de fichier de sauvegarde

1.1、Introduction:

Les fichiers de sauvegarde sont généralement dus à la négligence du personnel de maintenance , Fichiers laissés sur le serveur en oubliant de les supprimer .

Un attaquant énumère les noms de fichiers de sauvegarde communs , Pour obtenir le chemin correspondant , Et obtenir le Code clé , Pour vérifier le code source

Pour trouver ces fichiers de sauvegarde , En général, certains scanners de fichiers sensibles sont utilisés pour détecter .

Les fichiers de sauvegarde courants sont :Fichier de sauvegarde de texte、Fichier de sauvegarde du code source complet

Suffixe de fichier:.rar   .zip  .7z   .tar.gz   .bak    .swp   .txt   .sqlAttendez.

1.2、Fichier de sauvegarde de texte

InLinux Sous le système, des éléments tels que: vimOugeditAttendez l'éditeur de texte, Sauvegarde automatique du fichier courant lorsque l'éditeur s'écrase ou sort par exception ; Ou sauvegarder le Code après la mise en œuvre d'une fonction avant le développement ultérieur .

Fichiers de sauvegarde possibles (index.phpPar exemple):

.index.php.swp
.index.php.swo
index.php~
index.php.bak
index.php.txt
index.php.old
...

1.3、Fichier de sauvegarde du code source complet

Le code source complet sera emballé , Puis il est placé dans le Répertoire racine du site ,À ce moment - là,, Il suffit de trouver ce paquet pour commencer la vérification du code source .

Noms de fichiers de sauvegarde communs à l'ensemble du site :

www
wwwdata
wwwroot
web
webroot
backup
dist
...


Divers noms de suffixes de fichiers compressés :

.zip
.tar
.tar.gz
.7z
.rar
...

Vous pouvez également utiliser d'autres fichiers sensibles qui peuvent révéler la structure du répertoire ou le nom du fichier pour obtenir l'emplacement des fichiers de sauvegarde ,Par exemple:“.xx_xxx”



2.、GitFuite

2.1、Outils(GitHack):

GitHackC'est un.gitLes fuites exploitent les scripts,Par fuite.gitFichiers sous dossier,Reconstruire et restaurer le code source du projet.

Testeur de pénétration、Attaquant,Les codes peuvent être vérifiés plus en détail,Excavation:Téléchargement de fichiers,SQLInjection, etc.webUne brèche dans la sécurité.

GitHub - lijiejie/GitHack: A `.git` folder disclosure exploiticon-default.png?t=M5H6https://github.com/lijiejie/GitHack

Utiliser:

python GitHack.py http://www.openssl.org/.git/

2.2、Produire:

web Pendant la mise à niveau et la maintenance , Le fichier du site sera modifié , Vous aurez besoin de sauvegarder l'ensemble du site ou une partie de celui - ci

Quand le Code a été publié ,Si elle n'est pas supprimée.gitTable des matières, Publier directement sur le serveur , Un attaquant l'utilise pour récupérer le code source

Les fichiers de sauvegarde sont placés dans web Sous le Répertoire accessible par le serveur

2.3、Recherche par caractéristiques

Quand un site Web a une chaîne de caractères distinctive

Il est possible de passer par GitHub Fonction de recherche pour rechercher l'article

2.4、Adoption.gitFuite

Chaquegit Il y en a un dans le Répertoire racine du projet .gitDossiers, Le but est de stocker des informations sur le projet

Outils:GitHackEt le code source


Analyse des sources:

Commencez par créer un git Ingénierie et initialisation ,Et puis...commitUne fois.

Entrée.gitSous la table des matières, Regardez les fichiers dans le répertoire

C'est sûr.commitObjet,Voir les objets

L'entrée existe“.git”Dans le catalogueurl

Continuez à voirHEAD Emplacement de la branche d'acquisition de fichiers , Et j'ai eu la branche hashValeur

Je l'ai.hash Initialisation locale d'un git,Et puisparseCommit Obtenir tous les objets

Utilisation finalereset Réinitialiser la branche , Le projet a été reconstruit avec succès localement


Documentation:

Documents clés (Une partie):

HEAD:Marquer le courantgit Dans quelle branche .

refs: Marquer chaque branche du projet pointant vers commit.

objects:git Tous les objets stockés dans l'entrepôt local .

gitObjet de:

commit: Marquer un dossier de soumission pour un article .

tree: Marquer le répertoire ou le Sous - répertoire d'un élément .

blob: Fichier pour marquer un projet .

tag: Nommez une soumission .


Fonction personnalisée

(1)parseCommitFonctions:

Action:TéléchargercommitObjet,Mets - le.parent Télécharger ensemble

Code:

function parseCommit {
        echo parseCommit $1
        downloadBlob $1
        tree=$(git cat-file -p $1| sed -n '1p' | awk '{print $2}')
        parseTree $tree
        parent=$(git cat-file -p $1 | sed -n '2p' | awk '{print $2}')
        [ ${#parent} -eq 40 ] && parseCommit $parent
}


(2)parseTreeFonctions:

Action:TéléchargertreeObjet,Et listetreeTous les objets sous,Classé comme suit:treeOublobPost - traitement

Code:

function parseTree {
        echo parseTree $1
        downloadBlob $1
        while read line
        do
        type=$(echo $line | awk '{print $2}')
        hash=$(echo $line | awk '{print $3}')
        [ "$type" = "tree" ] && parseTree $hash || downloadBlob $hash
        done < <(git cat-file -p $1)
}


(3)downloadBlobFonctions:

Action:Télécharger avechashFichiers correspondants

function downloadBlob {
        echo downloadBlob $1
        mkdir -p ${1:0:2}
        cd $_
        wget -q -nc $domain/.git/objects/${1:0:2}/${1:2}
        cd ..
}



Trois、svnFuite

3.1、Introduction:

Subversion(SVN) Est un système de contrôle de version Open Source, C'est - à - dire Subversion Gérer les données qui changent au fil du temps. Ces données sont conservées dans un fichier central(repository) Moyenne. Cette archive ressemble beaucoup à un serveur de fichiers normal, Mais il se souviendra de chaque changement de document. Afin que vous puissiez restaurer les fichiers dans les anciennes versions, Ou parcourir l'historique des changements de fichier.

En serviceSVNLors de la gestion du code local,Génère automatiquement un.svnDossier caché pour,Il contient des informations importantes sur le code source.

3.2、Cause de l'accident:

Lors de la publication du Code ,Non utilisé‘Exporter’Fonction,.Au lieu de cela, copiez le dossier de code directement àWEBSur le serveur,Ce qui fait.svn Les dossiers cachés sont exposés à l'environnement extranet ,Peut être utilisé.svn/entriesDocumentation, Obtenir le code source du serveur .

3.3、Outils:

Seay-Svn(Simple.)

http://www.vuln.cn/wp-content/uploads/2015/10/Seay-Svn.raricon-default.png?t=M5H6http://www.vuln.cn/wp-content/uploads/2015/10/Seay-Svn.rar


dvcs-ripper

Télécharger l'adresse:

GitHub - kost/dvcs-ripper: Rip web accessible (distributed) version control systems: SVN/GIT/HG...icon-default.png?t=M5H6https://github.com/kost/dvcs-ripper

‎Rip WebAccessible(Distribué)Système de contrôle de version:SVN,GIT,Mercurial/hg,bzr,...‎

‎ Même si la navigation dans le répertoire est désactivée , Il peut également extraire le dépôt .‎

‎ Assurez - vous de vous mettre à télécharger / Dans le répertoire vide du dépôt clone .‎



Quatre、hg、CVS、Bazaar/bzrFuite du code source

4.1、Outils:

dvcs-ripper

Télécharger l'adresse:

GitHub - kost/dvcs-ripper: Rip web accessible (distributed) version control systems: SVN/GIT/HG...icon-default.png?t=M5H6https://github.com/kost/dvcs-ripper

‎Rip WebAccessible(Distribué)Système de contrôle de version:SVN,GIT,Mercurial/hg,bzr,...‎

‎ Même si la navigation dans le répertoire est désactivée , Il peut également extraire le dépôt .‎

‎ Assurez - vous de vous mettre à télécharger / Dans le répertoire vide du dépôt clone .‎



Cinq、WEB-INF/web.xml Fuite

5.1、Introduction:

WEB-INF- Oui.JavaDeWEBRépertoire de sécurité appliqué,Le client n'est pas accessible,Seul le serveur peut accéder à,Si vous souhaitez accéder directement aux fichiers de la page,Doit passerweb.xmlFichiers mapper les fichiers auxquels vous accédez pour accéder à.

5.2、Cause de l'accident:

Lors de l'utilisation de l'architecture réseau , La cartographie des répertoires ou des fichiers des ressources statiques n'est pas correctement configurée , Les problèmes de sécurité qui en résultent ,Causeweb.xmlEt les fichiers peuvent être lus

5.3、WEB-INF Contient principalement des fichiers ou des répertoires :

(1)/WEB-INF/web.xml :

WebProfil de l'application(DescriptionservletEt d'autres règles de configuration et de nommage des composants d'application)

(2)/WEB-INF/database.properties:

Profil de la base de données

(3)/WEB-INF/classes/:

StockageJavaFichiers de classe(.class),Contient tous les Servlet Classes et autres fichiers de classe , Les fichiers de classe ont une structure de répertoire qui correspond à leurs noms de paquets

(4)/WEB-INF/lib/ :

Pour entreposer une bibliothèque emballée (.jar),C'est - à - dire:webToutes sortes deJARDocumentation

(5)/WEB-INF/src/ :

Répertoire des sources,Stocker le code source(.aspEt.phpAttendez.)

5.4、Utilisation:

En trouvant web.xml Documentation,Inférence class Chemin du fichier,Trouver class Documentation, Et en décompilant class Documentation,Obtenir le code source du site.



Six、DS_Store Fuite de documents

6.1、Introduction:

.DS_Store- Oui.MacEn bas.Finder Utilisé pour enregistrer les fichiers de présentation /Dossiers Fichier de données pour( C'est - à - dire la propriété d'affichage du dossier , Et l'emplacement des icônes de fichier ), Un sous chaque dossier


Quand vous téléchargez le Code ,Un fonctionnement sûr et correct devrait .DS_Store Suppression de fichiers, Si elle n'est pas supprimée ,.DS_Store Sera téléchargé et déployé sur le serveur , Risque de fuite de documents (Structure du Répertoire、Fichiers de sauvegarde、Fichier source)

6.2、Outils:

ds_store_exp

C'est un .DS_Store Les fuites de fichiers utilisent des scripts ,Il analyse.DS_Store Fichier et télécharger Récursivement le fichier localement .

Télécharger l'adresse:

GitHub - lijiejie/ds_store_exp: A .DS_Store file disclosure exploit. It parses .DS_Store file and downloads files recursively.icon-default.png?t=M5H6https://github.com/lijiejie/ds_store_exp



Sept、 Exploiter les fuites

Combinaison d'une vulnérabilité d'inclusion de fichier arbitraire ou d'une vulnérabilité de téléchargement de fichier arbitraire

Peut être téléchargé dans le code source , Et l'audit

原网站

版权声明
本文为[Black zone (RISE)]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207050304262546.html