Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2023-50164 — # نصوص كشف لـ CVE-2023-50164 في Apache Struts2، توفر أدوات PowerShell و Bash لفحص الإصدارات المعرضة للخطر عبر أنظمة الملفات والأرشيفات. | Kitploit
أدوات/GitHubGitHub/helsecert/cve-2023-50164
تحليل الثغرات الأمنيةتحليل الكودالاستغلالجمع المعلوماتأمن الويباختبار الاختراق
GitHubhelsecert/cve-2023-50164

cve-2023-50164

# نصوص كشف لـ CVE-2023-50164 في Apache Struts2، توفر أدوات PowerShell و Bash لفحص الإصدارات المعرضة للخطر عبر أنظمة الملفات والأرشيفات.

عرض المستودع
11منذ 2 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2023-50164

الإصدارات المعرضة للخطر

  • 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

الإصدارات التي تم إصلاح الثغرة فيها

  • Struts 2.5.33
  • Struts 6.3.0.2

سكربت البحث

Windows/PowerShell

من أجل Powershell 5.1 والإصدارات الأحدث. كتبه Kjetil Sigvartsen من 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 متعدد الخيوط

من أجل Powershell 5.1 والإصدارات الأحدث. كتبه Kjetil Sigvartsen من Norsk helsenett SF. قد يكون هذا السكربت أكثر استهلاكًا لوحدة المعالجة المركزية (CPU) إلى حد ما، لكنه أسرع بشكل ملحوظ من النسخة المذكورة أعلاه. لاحظ أن C:\Windows مستبعد أيضًا حفاظًا على السرعة. إذا رغبت في الحصول على مخرجات أكثر تفصيلًا، أضف ما يلي إلى أعلى السكربت:

root@kitploit:~
$VerbosePreference = 'Continue'

أما بقية الكود فهو كالتالي:

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 \;

تفسير النتائج

ستقوم السكربتات بإدراج الملفات التي تمثل مكتبة struts2 core أو تحتوي عليها. وفيما يلي مثالان على ذلك:

/sti/til/mappe/struts2-core-6.3.0.2.jar - هنا توجد مكتبة struts2 core مباشرة على نظام الملفات، والنسخة هي 6.3.0.2، حيث تم إصلاح الثغرة.

/sti/til/mappe/apps/struts2-showcase-6.3.0.2.war - هنا توجد مكتبة struts 2 core داخل ملف .war، ويجب عرض محتوياته لمعرفة إصدار Struts2 المضمّن:

Linux/Bash

root@kitploit:~
$ unzip -l /sti/til/mappe/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:

من أجل Powershell 5.1 والإصدارات الأحدث. كتبه Kjetil Sigvartsen من Norsk helsenett SF.

root@kitploit:~
[string[]]$ZipFiles = @(
	'C:\sti\til\mappe\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
تنزيل الأداة