-
웹해킹 6주차 - CSRF해킹 2021. 1. 6. 18:36
이미 강의 전부를 5주차에 수강해버림....어쩐지 CSRF가 나오더라니...
5주차내용: kim27y.tistory.com/5
웹해킹 5주차 - XSS
XSS(Cross Site Scripting) - 특정한 스크립트를 삽입하는 공격 - 웹에는 CSS, JS로 구성되어 있는데 JS를 공격하는 것 - 쿠키나 세션에 저장된 세션 아이디를 탈취하는 방법도 있음 =>한 쿠키에 모든
kim27y.tistory.com
영상내용정리
CSRF
- 대부분의 웹사이트는 XSS의 대비가 되어 있어 주로 CSRF를 이용하여 공격을 시도함
- 권한 탈취는 불가능하더라도 어떠한 행동을 취하도록 만들 수는 있음
- 우선 어떤 패킷이 발생하는지를 알아내야함 => get 방식 뿐만 아니라 post 방식으로 이동한 정보도 열람 가능
- 서버에는 post 방식이던 get 방식이던 똑같이 처리함(get 방식을 처리하지 않게끔 미리 코딩하지 않는다면 모를까)
- 이를 이용해서 게시글에 get 방식의 포스팅 url 같은 것을 <a>태그나 <iframe> 태그를 이용하여 삽입하면 사용자의 의도와 관계없이 어떠한 행동이 취해지도록 할 수 있음
(질문: 6주차에서 설명은 CSRF가 덜 사용되고 공격법이 정형화 되어있다고 하는데 영상에서는 CSRF를 더 많이 사용한다고 나와있음 왜그런걸까요)
과제1 - Root-me : CSRF- 0 protection

루트 미 문제는 뭔가 딱딱하고 어렵다...일단 login과 register가 있다.
로그인을 해도 안되니 회원가입 먼저 하자

짜잔

넹넹

참고로 원래 있는 아이디로 회원가입으로 하면 이렇게 뜬다 :(

로그인을 한 모습 프로파일을 클릭해보면



이런식으로 뜬다. 대충 관리자의 확인을 받아야 된다는 것을 보니 관리자 권한을 XSS을 이용해서 탈취해야 하나보다

어떻게 해야할 지 감을 못잡다 보니 힌트가 있다 오....html 코드를 보자

딱히 문제될 건 없어보인다

오 status 체크박스가 꺼져있다 한번 풀어보자

별 차이가 없다. 역시 admin의 권한을 탈취하는게 맞나 보다 어떻게 하지?
Stored XSS -관리자 세션 탈취
Stored xss방식으로 관리자 세션 탈취하기. 구문안에 document.location을 이용하여 관리자세션을 탈취할 공격자 서버 ip주소를 작성 후 게시글을 등록해보자. 이제 해당 공격자 서버안에 관리자 세션
webstone.tistory.com
구글링 하니 음...php를 아직 공부하지 않아 그런지 잘 모르겠다.
CSRF를 이용하자니 패킷확인을 해야할 것 같은데 그건 어떻게 하는건지 감이 안잡힌다

일단 뭐라도 보내보자
음...그런데 생각해보니 권한을 탈취할 필요 없이 관리자가 내가 원하는 행동을 하게끔 만들면 되잖아
근데 내가 원하는게 뭐지...?

계정 활성화! 그렇다면 클릭함과 동시에 내 계정을 활성화시키면 되는것 아닌가
status를 체크하고 submit가 눌러지도록 하면 되나? 힌트는 분명 html폼에서 필요한 것을 발췌해아 한다고 했다.

여기 어딘가에 답이 있을거 같은데 분명 이번 수업에서 get 형식으로 정보를 전송하게끔 하여도 특정한 방법으로 막지 않으면 서버는 처리한다고 하였다 그럼 get 방식으로 내 계정을 활성화시키도록 만들면 되지 않을까

그렇다면 username은 1 checkbox는 체크 되어 있는 상태의 get 방식 url을 만들면 될거 같은데 html 다루기가 미숙한 나로써는 너무 어려웡....구글링!보단 내가 예전에 정리해두었던 html get 방식을 보고 왔다

url을 보면 php? 뒤에 username=1 status=checked로 해서 보내보았다
안된다.... a태그로 해도 안되고 img로 보내봐도 안된다 무엇이 문제일까 대체...
그러다가 문득 get 방식으로 직접 정보를 보내는 것이 아니라 자바스크립트 코드로 submit를 누른것과 같은 효과가 나야 하는게 맞지 않을까? 란 생각이 들었다.

버튼 자 만 누르니까 바로 나온다 아 사람의 생각은 모두 같구나...ㅋㅋㅋㅋ
[JS] 자바스크립트 자동으로 버튼 클릭하기
위와 같은 버튼이 있다고 했을 때, 이 버튼을 클릭했을 때 해당 "create_memo" 란 id 를 가진 버튼을 한 번 더 자동으로 클릭되도록 하고 싶다. stackoverflow 에서는 다음과 같은 코드로 해결하라고 많은
hojak99.tistory.com
으흠 document.getElenmentById("이름").click(); 을 이용하면 되는 것 같다.
그럼 form에서 내 아이디를 넣고 check 후에 submit를 누르는 코드를 작성하면 되겠다

자 과연...두근두근두근

앜ㅋㅋㅋㅋㅋ왜안됨
다시 구글링을 하던중에 자동 버튼 클릭이 아닌 자동 제출이 있는것을 확인
[javascript] 폼을 자동으로 submit하는 자바스크립트
Method:document.[form이름].submit() 설명:html Form값을 보낸다.사용자의 입력 없이 자동으로 폼값을 ...
blog.naver.com
해보자..!

하...뭐가 문제일까 하는 순간

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ private 들어가니까 깨져있다....대체 이거 뭔데 난 뭘한건데 ㅋㅋㅋㅋㅋㅋㅋㅋ
여기서 질문(get 방식 url을 넣는 방식으로는 깨지지 않는가?)
과제2 - xss challenge : #1 ~ #5

오옹...쉽지

짜잔

2단계 으음....이전껄 넣어보자 짜잔!

안되네 코드를 보자.... 음.....딱히....도움 될만한게...

힌트를 보니 현재 태그를 닫고 script 태그를 추가 하라고 한다
그러다가 아...나 구글 자동 번역 켜져있지...꺼보니 close current tag and close the current tag and add script tag라고 나온다

현재 태그는 대체 어떻게 닫는거야????? 시간이 없어서 여기까지 밖에 못했다...내일 다시 해봐야겠다...
'해킹' 카테고리의 다른 글
웹해킹 8주차 - Linux (0) 2021.02.01 웹해킹 7주차 - Linux (0) 2021.01.11 웹해킹 5주차 - XSS (0) 2021.01.04 웹해킹 3주차 - JAVASCRIPT (0) 2021.01.04 웹해킹 2주차 - HTML (0) 2021.01.01