728x90
반응형
[보안] HTML Image 태그 주의할 점
회사를 다니며 상용 서비스를 운용과 개발을 해왔는데, 그 길지도 않은 기간동안 악의적인 목적으로 혹은 학습 목적으로 보이는 경우의 운용중인 서버를 바라보는 공격적인 행위가 있었다.
그 때의 추억을 되새기며 몇가지 간단한 것들에 대해서 한번 정리 해볼려고 한다.
이미지 파일에 스크립트를 삽입하는 방법
샘플 예시
https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/
https://vallhalla-edition.tistory.com/58
이미지 주소를 HTTP API를 삽입하는 방법
간단한 웹서버를 올림
- Django, Spring 이든 백엔드 서버는 어떤걸로 하든 상관 없다. 일단 귀찮으니 대충 데모 개발 이후 폴더에 쓸쓸히 있던 Django로 올려서 해보겠다.
# urls.py
path("something", SomethingView.as_view()),
# views.py
class SomethingView(View):
def get(self, request, *args, **kwargs):
print(request.headers)
return HttpResponse(status=204)
백엔드 개발한 내용을 dns 등록되어 접속 가능한 주소로 띄우자.
- AWS EC2 같은 클라우드 인스턴스를 사용하거나 IDC나 혹은 집에 공인 IP로 사용 중인 서버만 있으면 된다.
HTML Img src에 API 주소 삽입
- 해당 이미지 태그를 내 블로그에 삽입
<.img src="https://my.host.com/something"/>
결과
- 결과로 접속한 유저의 정보를 가져올 수 있다.
{
"Content-Length": "",
"Content-Type": "text/plain",
"Host": "*********************",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36",
"Accept": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7,ja;q=0.6,und;q=0.5",
"Cookie": "abuse_interstitial=3487-222-107-226-43.ngrok-free.app",
"Referer": "*****************************************",
"Sec-Ch-Ua": "Google Chrome;v=111, Not(A:Brand;v=8, Chromium;v=111",
"Sec-Ch-Ua-Mobile": "?0",
"Sec-Ch-Ua-Platform": "Windows",
"Sec-Fetch-Dest": "image",
"Sec-Fetch-Mode": "no-cors",
"Sec-Fetch-Site": "cross-site",
"X-Forwarded-For": ""*****************************************",",
"X-Forwarded-Proto": "https"
}
728x90
반응형
'IT > Web' 카테고리의 다른 글
[Web Hacking] Challange 15 풀이 (0) | 2023.04.30 |
---|---|
[보안] XSS HTML Image 태그 주의할 점 - 2 (0) | 2023.04.13 |
캐시 (Cache) (0) | 2021.01.19 |
DNS(Domain Name System) 작동원리 (0) | 2021.01.15 |
브라우저 동작 원리 (0) | 2021.01.15 |