IT/Web
[보안] XSS HTML Image 태그 주의할 점
상쾌한기분
2023. 4. 8. 22:21
728x90
반응형
[보안] HTML Image 태그 주의할 점
회사를 다니며 상용 서비스를 운용과 개발을 해왔는데, 그 길지도 않은 기간동안 악의적인 목적으로 혹은 학습 목적으로 보이는 경우의 운용중인 서버를 바라보는 공격적인 행위가 있었다.
그 때의 추억을 되새기며 몇가지 간단한 것들에 대해서 한번 정리 해볼려고 한다.
이미지 파일에 스크립트를 삽입하는 방법
샘플 예시
https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/
How To Bypass CSP By Hiding JavaScript In A PNG Image
Hide a malicious JavaScript library in a PNG image and tweet it, then include it in a vulnerable website by exploiting a XSS bypassing its Content-Security-Policy (CSP).
www.secjuice.com
https://vallhalla-edition.tistory.com/58
Python 이미지 파일 해킹하기
※ 본 포스팅은 (조성문 정영훈 저) 를 기반으로 작성되었습니다. 개요 (출처: 네이버 웹툰 ) Python은 무시무시한 확장성을 자랑하는 언어이다. 파일을 다루는 방면에서도 아주 강력한 기능을 지
vallhalla-edition.tistory.com
이미지 주소를 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
반응형