当前位置:网站首页>[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.2、Fichier de sauvegarde de texte
1.3、Fichier de sauvegarde du code source complet
2.3、Recherche par caractéristiques
Quatre、hg、CVS、Bazaar/bzrFuite du code source
5.3、WEB-INF Contient principalement des fichiers ou des répertoires :
Six、DS_Store Fuite de documents
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 exploithttps://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.)
dvcs-ripper
Télécharger l'adresse:
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:
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:
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
边栏推荐
- Kubernetes -- cluster expansion principle
- Une question est de savoir si Flink SQL CDC peut définir le parallélisme. Si le parallélisme est supérieur à 1, il y aura un problème d'ordre?
- Linux安装Redis
- v-if VS v-show 2.0
- How to define a unified response object gracefully
- Pat grade a 1119 pre- and post order traversals (30 points)
- The perfect car for successful people: BMW X7! Superior performance, excellent comfort and safety
- Simple use of devtools
- 腾讯云,实现图片上传
- 【软件逆向-分析工具】反汇编和反编译工具
猜你喜欢
Hot knowledge of multithreading (I): introduction to ThreadLocal and underlying principles
The perfect car for successful people: BMW X7! Superior performance, excellent comfort and safety
51 independent key basic experiment
el-select,el-option下拉选择框
[luat-air105] 4.1 file system FS
Pat class a 1160 forever (class B 1104 forever)
Talk about the SQL server version of DTM sub transaction barrier function
Tencent cloud, realize image upload
How to define a unified response object gracefully
看 TDengine 社区英雄线上发布会,听 TD Hero 聊开发者传奇故事
随机推荐
The perfect car for successful people: BMW X7! Superior performance, excellent comfort and safety
How rem is used
Jd.com 2: how to prevent oversold in the deduction process of commodity inventory?
NPM introduction link symbolic link
Tiny series rendering tutorial
深度学习——LSTM基础
Kubernetes - identity and authority authentication
Delphi free memory
Qrcode: generate QR code from text
[105] Baidu brain map - Online mind mapping tool
[move pictures up, down, left and right through the keyboard in JS]
Huawei MPLS experiment
[luat-air105] 4.1 file system FS
MySQL winter vacation self-study 2022 11 (9)
FBO and RBO disappeared in webgpu
Logstash、Fluentd、Fluent Bit、Vector? How to choose the appropriate open source log collector
Devtools的簡單使用
Pat class a 1160 forever (class B 1104 forever)
为什么腾讯阿里等互联网大厂诞生的好产品越来越少?
Anchor free series network yolox source code line by line explanation Part 2 (a total of 10, ensure to explain line by line, after reading, you can change the network at will, not just as a participan