일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 행정지역 DB
- 동읍면 DB
- riceteacatpanda
- Layered Architecture
- react
- reversing.kr
- jsp
- 방명록 만들기
- 메모리 포랜식
- 소개딩
- 3단계 지역 DB
- restapi
- Database
- JSTL
- spring
- PyAmdecoder
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- frontend
- 네이버 인턴
- 인턴 지원
- 소프트웨어 개발보안 경진대회
- webhacking 처음
- 정보보호병 후기
- Forensic 절차
- mysql
- SessionAttribute
- 인턴 후기
- EER
- DBMS
- Django
- Today
- Total
웹찢남
CSS - Injection 본문
ctf나 문제 풀이중 좀 새로운게 있으면 이제 포스팅 하려한다!! 첫번째는 CSS - Injection다.
CSS - injection을 전에 알긴 알았지만 단순히 style태그를 사용해 뭘 얻을 수 있을까라는 생각에
깊숙히 공부를 해본적이 없다... 그러다 BSidesSF-2020-CTF에서 접하게 되었다.
우선 CSS Selector에 대한 기본적 상식이 필요하다.
https://www.w3schools.com/cssref/css_selectors.asp
위 사이트를 보면 css에서도 data들을 비교할 수 있는 것을 알 수 있다.
[attribute^=value] | a[href^="https"] |
Selects every <a> element whose href attribute value begins with "https" |
그러면 어떻게 쓸까??????
만약 내가 이 css를 데이터에 포함시켜 관리자에게 보낼 수 있다면?!
또한 이 css에 내 서버의 url을 포함시켜 데이터를 가져올 수 있다면??
참 좋을것 같다. 이런 방법이 있었다니... 한번 해보자
이번 CTF의 문제를 예를 들어서 설명 하도록 하겠습니다.
위와같은 창이 뜬다 message를 보내는데 script,html 등은 필터링 되고 style 태그만 적용이 되지 않았다.
그래서 위의 내용을 바탕으로 문제를 풀어보자. 참고로 아래와 같이 type이 hidden인 flag의 value값을 구해야 한다.
message위치에 태그 삽입만이 허용된다. 이를이용해 target을 admin으로 payload를 작성해 보면?
이런 식으로 이 문제의 admin에게 쿼리를 날릴 수 있다.
해당 message는<style>태그 속에 name이 flag인 input값의 시작이 'C'이면
해당 url로 value를 포함시켜 connect해라! 라는 뜻으로 해석을 할 수 있다!
(참고로 저 url 은 구름 ide를 사용한 임시 url이다! )
그러면 내 서버의 access.log에서 다음과 같은 log를 확인 할 수 있다.
message에 해당 payload를 적고 value에 값을 추가해가며 내 서버와 비교하는 스크립트를 짜면 될 것같다.
'WEB_HACKING > 이론 정리' 카테고리의 다른 글
Webhacking 도움되는 사이트 (0) | 2020.09.10 |
---|---|
arpsniffing (0) | 2020.05.25 |