Cross Site Request Forgery
Cross site Request forgery leverages trust a website has in the user(or at least the user’s browser)
CSRF takes advantage of active session a browser has with the target site:
- The attack is possible due to predictable parameters on the sensitive transactions
- An example money transaction user case might have two predictable parameters : Dest account & and Amount
CSRF is similar to XSS , but it doesn’t require that the attacker inject code into a web application. CSRF simply leverages the fact that web servers trust the authenticated users, and is possible to pass un-authorized commands from client to there sever without users knowledge.These commands are then executed on server with clients authenticated privileges.
Walkthrough
——————
- Attacker determines a link to initiate a transaction that uses predictable parameters
- Attacker posts the link on a site he controls :
- The site could even be a Facebook page or similar
- Or attacker to force the users to the site through DNS poisoning.
- User logs into the application normally
- While users are still logged in, they browse the link from the attacker
- The link could be
- Image tag
- An iframe
- Css or Javascript import
- XMLHTTP
- This initiates transaction as the victim
- The application isn’t aware that user didn’t mean to submit the transaction
CSRF covers scripting requests in general, but most concerning types could easily be called the script-based web session hijacking. Take the CiscoWorks example.
Imagine that a Cisco works admin, bob, is logged in to a Cisco works web console while doing other work. Attacker inserts a malicious link into a comment section on a popular IT website. When bob visits the website and clicks the link, his browser is directed to request the link, which executes functions within the Cisco works server. At this time attacker could be requesting changes to the network, potentially opening up holes for a later attacks.
Detecting CSRF
————————
- Find pages that have sensitive actions & have predictable parameters
- Then create a HTML document that contains a tag referring to the sensitive page.
- After log in , acmes the created document.
- Verify if the functionality actually ran.
https://twitter.com/YourNextBugTip/status/1233956268072521728/photo/1
https://twitter.com/Manojkhd/status/1231175934285271041
Bypassing GitHub's OAuth flow
https://blog.teddykatz.com/2019/11/05/github-oauth-bypass.html
Comments
Post a Comment