Sploitus

Exploit for CVE-2021-2471

kitploit ┬╖ 2026-08-28

Exploit Code

MARKDOWN44 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-DRUNKENSHELLS-CVE-2021-2471
# CVE-2021-2471 - MySQL Connector/J рдореЗрдВ XXE

Oracle MySQL рдХреЗ MySQL Connectors рдЙрддреНрдкрд╛рдж рдореЗрдВ рднреЗрджреНрдпрддрд╛ (рдШрдЯрдХ: Connector/J)ред рдкреНрд░рднрд╛рд╡рд┐рдд рд╕рдорд░реНрдерд┐рдд рд╕рдВрд╕реНрдХрд░рдг 8.0.26 рдФрд░ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╣реИрдВред   
рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдХреЗ рд╕рдлрд▓ рд╣рдорд▓реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреЗрдЯрд╛ рддрдХ рдЕрдирдзрд┐рдХреГрдд рдкрд╣реБрдВрдЪ рдпрд╛ рд╕рднреА MySQL Connectors рд╕реБрд▓рдн рдбреЗрдЯрд╛ рддрдХ рдкреВрд░реНрдг рдкрд╣реБрдВрдЪ рдФрд░ MySQL Connectors рдХрд╛ рд╣реИрдВрдЧ рдпрд╛ рдмрд╛рд░-рдмрд╛рд░ рдХреНрд░реИрд╢ (рдкреВрд░реНрдг DOS) рдХрд░рдиреЗ рдХреА рдЕрдирдзрд┐рдХреГрдд рдХреНрд╖рдорддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

### рдЕрд╕реНрд╡реАрдХрд░рдг:

рдпрд╣ рднреЗрджреНрдпрддрд╛ Alibaba Cloud Security Team рдХреЗ Xu Yuanzhen рдФрд░ Alibaba рдХреЗ Hongkun Chen рджреНрд╡рд╛рд░рд╛ рдкрд╛рдИ рдЧрдИ рдереАред   
рдпрд╣ PoC рдХреЗрд╡рд▓ рд╢реЛрдз рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рд▓рдХреНрд╖реНрдпреЛрдВ рдкрд░ рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рди рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ exploit рдХрд░рдиреЗ рдХреА рд╕реНрдкрд╖реНрдЯ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред

### рд╡рд┐рдХреНрд░реЗрддрд╛ рдкреНрд░рдХрдЯреАрдХрд░рдг:

рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХреНрд░реЗрддрд╛ рдХрд╛ рдкреНрд░рдХрдЯреАрдХрд░рдг рдФрд░ рд╕рдорд╛рдзрд╛рди рдпрд╣рд╛рдБ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

### рдкреНрд░реВрдл рдСрдл рдХреЙрдиреНрд╕реЗрдкреНрдЯ:

XXE рднреЗрджреНрдпрддрд╛ рдореЗрдВ рдПрдХ XML рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг DTD Entities рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ MysqlSQLXML рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рддрдм рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреА рд╣реИ рдЬрдм getSource() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред   


рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ mysql-connector-java-8.0.26.jar рдХреЗ рдХреЛрдб рдореЗрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдм DOMSource рдХреНрд▓рд╛рд╕ рдХреЛ getSource() рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ DocumentBuilder рдХреЛ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрджрд┐ рдХреЛрдИ рд╣рдорд▓рд╛рд╡рд░ builder рдХреЛ рдкрд╛рд░рд┐рдд inputSource рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ XXE рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддрд╛ рд╣реИ:

root@kitploit:~
    
    
    public <T extends Source> T getSource(Class<T> clazz) throws SQLException {
            try {
                this.checkClosed();
                this.checkWorkingWithResult();
                InputSource reader;
                if (clazz != null && !clazz.equals(SAXSource.class)) {
                    SQLException sqlEx;
                    if (clazz.equals(DOMSource.class)) {
                        try {
                            DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
                            builderFactory.setNamespaceAware(true);
                            DocumentBuilder builder = builderFactory.newDocumentBuilder();
                            if (this.fromResultSet) {
                                inputSource = new InputSource(this.owningResultSet.getCharacterStream(this.columnIndexOfXml));
                            } else {
                                inputSource = new InputSource(new StringReader(this.stringRep));
                            }
    
                            return new DOMSource(builder.parse(inputSource));