Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cve-2023-50164 | Kitploit
Outils/GitHubGitHub/helsecert/cve-2023-50164
Analyse des VulnérabilitésAnalyse de CodeExploitationCollecte d'InformationsSécurité WebTests d'Intrusion
GitHubhelsecert/cve-2023-50164

cve-2023-50164

Voir le dépôt
1il y a 2 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2023-50164

Versions vulnérables

  • Struts 2.0.0 - Struts 2.3.37 (EOL)
  • Struts 2.5.0 - Struts 2.5.32
  • Struts 6.0.0 - Struts 6.3.0

Versions où la vulnérabilité est corrigée

  • Struts 2.5.33
  • Struts 6.3.0.2

Script de recherche

Windows/PowerShell

Pour PowerShell 5.1 et versions ultérieures. Écrit par Kjetil Sigvartsen chez Norsk helsenett SF.

root@kitploit:~
[String[]]$Extensions = @('*.jar', '*.war', '*.ear')
[string]$searchString = 'struts2-core'

foreach ($Disk in (Get-CimInstance Win32_LogicalDisk)) {

    [string]$DriveLetter = $Disk.DeviceID
    [string]$Path        = "$($driveLetter)\"

    foreach ($ChildItem in (Get-ChildItem -Path $Path -Recurse -Include $Extensions -File -ErrorAction SilentlyContinue)) {
        [String]$FilePath = $ChildItem.FullName
        $Content  = Get-Content -Path $filePath -Raw
        if ($Content -like "*$searchString*") {
            Write-Output $filePath
        } #if
    } #foreach

} #foreach

Windows/PowerShell Multi-threaded

Pour PowerShell 5.1 et versions ultérieures. Écrit par Kjetil Sigvartsen chez Norsk helsenett SF. Ce script peut être plus intensif en CPU, mais sera considérablement plus rapide que la variante ci-dessus. Notez que C:\Windows est également filtré pour des raisons de rapidité. Si une sortie plus détaillée est souhaitée, ajoutez ce qui suit en haut du script :

root@kitploit:~
$VerbosePreference = 'Continue'

Le code est par ailleurs le suivant :

root@kitploit:~
[String[]]$Extensions = @('*.jar', '*.war', '*.ear')
[string]$searchString = 'struts2-core'
[string[]]$Exceptions = @('C:\Windows')

foreach ($Disk in (Get-CimInstance Win32_LogicalDisk)) {

    [string]$DriveLetter = $Disk.DeviceID
    [string]$Path        = "$($driveLetter)\"

    Write-Verbose -Message "Working on $Path"

    try {
        [System.IO.DirectoryInfo[]]$Folders = Get-ChildItem -Path $Path -Directory -ErrorAction Stop
    } #try
    catch {
        Write-Verbose -Message "Unable to get child folders in disk $Path"
        continue
    } #catch

    [System.Management.Automation.Job[]]$Jobs = $Null
    [System.Management.Automation.Job[]]$Jobs = foreach ($Folder in $Folders) {
        [string]$JobName = $Path + $Folder.Name

        if ($Exceptions -contains $JobName) {
            Write-Verbose -Message "Skipping $JobName, in exception list"
            continue
        } #if

        Write-Verbose -Message "Starting jobs for $JobName"

        Start-Job -Name $JobName -ScriptBlock {
            Return (Get-ChildItem -Path $Using:JobName -Recurse -Include $Using:Extensions -File -ErrorAction SilentlyContinue)
        } #Start-Job
    } #Foreach


    [System.Object[]]$JobResults = $Null
    [System.Object[]]$JobResults = Receive-Job -Job $Jobs -AutoRemoveJob -Wait -ErrorAction Stop

    [System.Management.Automation.Job[]]$RemainingJobs = $Null
    [System.Management.Automation.Job[]]$RemainingJobs = get-Job -Name "$Path*" -ErrorAction Stop

    if ($RemainingJobs) {
        Write-Verbose -Message "$($RemainingJobs.count) jobs remaining"
    } #if


    foreach ($ChildItem in $JobResults) {
        [String]$FilePath = $ChildItem.FullName
        [string]$Content  = Get-Content -Path $filePath -Raw
        if ($Content -like "*$searchString*" -or $FilePath -like "*$searchString*") {
            Write-Output $filePath
        } #if
    } #foreach

} #foreach

Linux/Bash

root@kitploit:~
sudo find / -type f \( -iname "*.jar" -o -iname "*.war" -o -iname "*.ear" \) -exec grep -Fl "struts2-core" {} 2>/dev/null \;

Interprétation des résultats

Les scripts listeront les fichiers qui sont, ou contiennent, la bibliothèque struts2 core. Quelques exemples :

/chemin/vers/dossier/struts2-core-6.3.0.2.jar - ici la bibliothèque struts2 core se trouve directement sur le système de fichiers, et la version est 6.3.0.2, où la vulnérabilité est corrigée.

/chemin/vers/dossier/apps/struts2-showcase-6.3.0.2.war - ici la bibliothèque struts2 core se trouve à l'intérieur du fichier .war, et son contenu doit être listé pour voir quelle version de Struts2 est incluse :

Linux/Bash

root@kitploit:~
$ unzip -l /chemin/vers/dossier/apps/struts2-showcase-6.3.0.2.war | fgrep struts2-core
  1519992  2023-12-05 05:58   WEB-INF/lib/struts2-core-6.3.0.2.jar

Windows/PowerShell:

Pour PowerShell 5.1 et versions ultérieures. Écrit par Kjetil Sigvartsen chez Norsk helsenett SF.

root@kitploit:~
[string[]]$ZipFiles = @(
	'C:\chemin\vers\dossier\apps\struts2-showcase-6.3.0.2.war'
)

Add-Type -AssemblyName System.IO.Compression.FileSystem

foreach ($ZipFile in $ZipFiles) {
	foreach ($Entry in ([System.IO.Compression.ZipFile]::OpenRead($zipFile).Entries)) {
		if ($Entry.FullName -like "*struts2-core*") {
			Write-Output $Entry.FullName
		} #if
	} #foreach
} #foreach
Télécharger l’outil