ప్రోహోస్టర్ > బ్లాగ్ > ఇంటర్నెట్ వార్తలు > అపాచీ టామ్క్యాట్లోని దుర్బలత్వం JSP కోడ్ను ప్రత్యామ్నాయం చేయడానికి మరియు వెబ్ అప్లికేషన్ ఫైల్లను పొందేందుకు మిమ్మల్ని అనుమతిస్తుంది
అపాచీ టామ్క్యాట్లోని దుర్బలత్వం JSP కోడ్ను ప్రత్యామ్నాయం చేయడానికి మరియు వెబ్ అప్లికేషన్ ఫైల్లను పొందేందుకు మిమ్మల్ని అనుమతిస్తుంది
చైనీస్ కంపెనీ చైటిన్ టెక్ పరిశోధకులు కనుగొన్నారు దుర్బలత్వం (CVE-2020-1938) లో అపాచీ టాంక్ట్, జావా సర్వ్లెట్, జావా సర్వర్ పేజీలు, జావా ఎక్స్ప్రెషన్ లాంగ్వేజ్ మరియు జావా వెబ్సాకెట్ టెక్నాలజీల బహిరంగ అమలు. దుర్బలత్వానికి Ghostcat అనే కోడ్ పేరు మరియు క్లిష్టమైన తీవ్రత స్థాయి (9.8 CVSS) కేటాయించబడింది. సమస్య డిఫాల్ట్ కాన్ఫిగరేషన్లో, నెట్వర్క్ పోర్ట్ 8009లో అభ్యర్థనను పంపడం ద్వారా, సెట్టింగ్లు మరియు అప్లికేషన్ సోర్స్ కోడ్లతో కూడిన ఫైల్లతో సహా వెబ్ అప్లికేషన్ డైరెక్టరీ నుండి ఏదైనా ఫైల్ల కంటెంట్లను చదవడానికి అనుమతిస్తుంది.
దుర్బలత్వం ఇతర ఫైల్లను అప్లికేషన్ కోడ్లోకి దిగుమతి చేయడాన్ని కూడా సాధ్యం చేస్తుంది, ఇది సర్వర్కి ఫైల్లను అప్లోడ్ చేయడానికి అప్లికేషన్ అనుమతించినట్లయితే సర్వర్లో కోడ్ అమలును అనుమతిస్తుంది (ఉదాహరణకు, దాడి చేసే వ్యక్తి చిత్రంగా మారువేషంలో ఉన్న JSP స్క్రిప్ట్ను అప్లోడ్ చేయవచ్చు. చిత్రం అప్లోడ్ ఫారమ్). AJP హ్యాండ్లర్తో నెట్వర్క్ పోర్ట్కు అభ్యర్థనను పంపడం సాధ్యమైనప్పుడు దాడిని నిర్వహించవచ్చు. ప్రాథమిక డేటా ప్రకారం, ఆన్లైన్ కనుగొన్నారు AJP ప్రోటోకాల్ ద్వారా 1.2 మిలియన్ కంటే ఎక్కువ హోస్ట్లు అభ్యర్థనలను అంగీకరిస్తున్నారు.
దుర్బలత్వం AJP ప్రోటోకాల్లో ఉంది మరియు పిలవలేదు అమలులో లోపం. HTTP (పోర్ట్ 8080) ద్వారా కనెక్షన్లను ఆమోదించడంతో పాటు, Apache Tomcat డిఫాల్ట్గా AJP ప్రోటోకాల్ (AJP ప్రోటోకాల్ ద్వారా వెబ్ అప్లికేషన్ను యాక్సెస్ చేయడానికి అనుమతిస్తుంది.Apache Jserv ప్రోటోకాల్, పోర్ట్ 8009), ఇది అధిక పనితీరు కోసం ఆప్టిమైజ్ చేయబడిన HTTP యొక్క బైనరీ అనలాగ్, సాధారణంగా టామ్క్యాట్ సర్వర్ల క్లస్టర్ను సృష్టించేటప్పుడు లేదా రివర్స్ ప్రాక్సీ లేదా లోడ్ బ్యాలెన్సర్లో టామ్క్యాట్తో పరస్పర చర్యను వేగవంతం చేయడానికి ఉపయోగిస్తారు.
AJP సర్వర్లో ఫైల్లను యాక్సెస్ చేయడానికి ప్రామాణిక ఫంక్షన్ను అందిస్తుంది, ఇది బహిర్గతం చేయని ఫైల్లను పొందడంతోపాటు ఉపయోగించవచ్చు. AJP విశ్వసనీయ సర్వర్లకు మాత్రమే అందుబాటులో ఉంటుంది, అయితే వాస్తవానికి టామ్క్యాట్ యొక్క డిఫాల్ట్ కాన్ఫిగరేషన్ అన్ని నెట్వర్క్ ఇంటర్ఫేస్లలో హ్యాండ్లర్ను అమలు చేస్తుంది మరియు ప్రామాణీకరణ లేకుండా అభ్యర్థనలను ఆమోదించింది. ServletContext.getResourceAsStream()కి కాల్ చేయడం ద్వారా అందించబడిన WEB-INF, META-INF మరియు ఏదైనా ఇతర డైరెక్టరీల కంటెంట్లతో సహా ఏదైనా వెబ్ అప్లికేషన్ ఫైల్లకు యాక్సెస్ సాధ్యమవుతుంది. AJP వెబ్ అప్లికేషన్కి యాక్సెస్ చేయగల డైరెక్టరీలలో ఏదైనా ఫైల్ను JSP స్క్రిప్ట్గా ఉపయోగించడానికి కూడా మిమ్మల్ని అనుమతిస్తుంది.
13 సంవత్సరాల క్రితం విడుదలైన టామ్క్యాట్ 6.x బ్రాంచ్ నుండి సమస్య కనిపిస్తుంది. టామ్క్యాట్ సమస్యతో పాటు ప్రభావితం చేస్తుంది మరియు Red Hat JBoss వెబ్ సర్వర్ (JWS), JBoss ఎంటర్ప్రైజ్ అప్లికేషన్ ప్లాట్ఫారమ్ (EAP), అలాగే ఉపయోగించే స్వీయ-నియంత్రణ వెబ్ అప్లికేషన్లు వంటి ఉత్పత్తులు స్ప్రింగ్ బూట్. ఇలాంటి దుర్బలత్వం (CVE-2020-1745) ప్రస్తుతం వెబ్ సర్వర్లో undertow, వైల్డ్ఫ్లై అప్లికేషన్ సర్వర్లో ఉపయోగించబడుతుంది. JBoss మరియు Wildflyలో, డొమైన్.xmlలో స్వతంత్ర-full-ha.xml, standalone-ha.xml మరియు ha/full-ha ప్రొఫైల్లలో మాత్రమే AJP డిఫాల్ట్గా ప్రారంభించబడుతుంది. స్ప్రింగ్ బూట్లో, AJP మద్దతు డిఫాల్ట్గా నిలిపివేయబడింది. ప్రస్తుతం, వివిధ సమూహాలు డజనుకు పైగా దోపిడీకి సంబంధించిన ఉదాహరణలను సిద్ధం చేశాయి ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11).
టామ్క్యాట్ విడుదలలలో దుర్బలత్వం పరిష్కరించబడింది 9.0.31, 8.5.51 и 7.0.100 (6.x శాఖ నిర్వహణ నిలిపివేయబడింది) మీరు ఈ పేజీలలో పంపిణీ కిట్లలో అప్డేట్ల లభ్యతను ట్రాక్ చేయవచ్చు: డెబియన్, ఉబుంటు, RHEL, Fedora, SUSE, FreeBSD. ప్రత్యామ్నాయంగా, మీరు టామ్క్యాట్ AJP కనెక్టర్ సేవను నిలిపివేయవచ్చు (లోకల్ హోస్ట్కు లిజనింగ్ సాకెట్ను బైండ్ చేయండి లేదా కనెక్టర్ పోర్ట్ = "8009"తో లైన్ను వ్యాఖ్యానించండి) అవసరం లేకుంటే, లేదా ఏర్పాటు mod_jk మరియు mod_proxy_ajp (mod_cluster ప్రమాణీకరణకు మద్దతు ఇవ్వదు) ఆధారంగా ఇతర సర్వర్లు మరియు ప్రాక్సీలతో పరస్పర చర్య చేయడానికి సేవను ఉపయోగించినట్లయితే, “రహస్యం” మరియు “చిరునామా” లక్షణాలను ఉపయోగించి ప్రామాణీకరించబడిన ప్రాప్యత.