annyoung

XSS 필터링 우회 본문

모의해킹

XSS 필터링 우회

nopsled 2023. 11. 1. 14:10

img 태그 자체를 빈 공백으로 치환하거나 보안장비에서 차단하는 경우가 있는데, 이럴 경우엔 image 태그와 함께 attribute를 섞어주면 된다.

<html>
<body>
<image/src/onerror=alert`1`>
</body>
</html>

파라미터에 <img/src/onerror=alert(1)> 처럼 쓰지 않고, <image/src/onerror=alert(1)>로 써주면 크롬에서는 페이로드가 잘 동작한다.

 

view-source로 봤을때 코드

view-source에서 보면 image로 잘 나와있지만,

 

동작한 alert과 image 태그가 img로 치환된 모습

요소검사로 확인해보면 img 태그로 반영되어 있고, 브라우저가 image를 해석할 때 img 태그로 치환해주면서 동작하는 것으로 보인다.

 

아마도 개발자들이 img를 쓰려다가 풀네임으로 썼다고 생각해서 치환해주는게 아닐까 하고 생각이 드는데 아시는 분 있으면 알려주심 좋겠다!

 

 

+ 추가

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/image

 

<image>: The Image element - HTML: HyperText Markup Language | MDN

The <image> HTML element is an ancient and poorly supported precursor to the <img> element. It should not be used.

developer.mozilla.org

image가 몇 번 언급이 있긴 했으나 비표준에 deprecated 되었다고 한다.

뭐.. 존재는 했다만 이제는 쓰진 않는다. 하지만 지원은 한다?라는 얘기인듯하다.

 

따라서 브라우저에서는 deprecated된 태그를 img 태그로 치환해주는 것 같다.

 

caniuse imgae?

caniuse에서 확인 해보면 대다수의 브라우저가 아직까진 image 태그를 지원하고 있다.

'모의해킹' 카테고리의 다른 글

pdf generator SSRF  (2) 2023.11.28
클라이언트 프레임워크 디버깅 쉽게하기  (2) 2023.11.21
Cryptojs AES encrypt and decrypt  (0) 2023.02.23
XSS RCE  (0) 2023.01.30
source map 파일 강제 연동  (0) 2022.12.14
Comments