일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 명품자바프로그래밍
- ARP Redirect
- Web
- C언어
- 자바
- FTZ
- SuNiNaTas
- 대외활동
- 써니나타스
- 웹
- 파이썬챌린지
- html5
- Linux
- 암호수학
- 파이썬
- webhacking.kr
- hackerschool
- 웹해킹
- 실습문제
- setCookie
- 피들러
- 쏙쏙캠프
- pythonchallenge
- 경기대학교
- java
- 석문초등학교
- C
- 리버싱
- 리눅스
- 해커스쿨
- Today
- Total
목록웹해킹 (9)
Hongfluenza
1> SQL 인젝션? 1.1> SQL(Structured Query Launguage) - 데이터베이스(DB)를 만들고 유지하는 데 사용하는 프로그래밍 언어 중 하나. - DB를 구축하고 조작하기 위해 사용하는 일종의 명령어. - SQL을 이용해 데이터 정의·조작·제어 가능 1.2> Injection - 애플리케이션에서 서버로 전달되는 명령, 쿼리, 스크립트 등의 값을 변조하여 비정상적인 방법으로 시스템에 접근하는 공격기법 - 웹 애플리케이션에만 국한되지 않고 DB와 연결된 모든 애플리케이션에서 고려해볼 수 있는 공격 기법 - 특징 : 파라미터, 쿠키, 내·외부 웹 서비스 등 거의 모든 데이터가 인젝션 공격 대상이 된다. 1.3> SQL Injection - 입력창에 정상적인 값(데이터)을 입력하는 것이..
level 1번을 클릭하면 다음과 같은 화면이 뜬다. 개발자 도구(f12)를 이용해 확인해본 결과 ----- index.phps -----를 클릭하면 index.phps로 이동한다는 것을 알 수 있었다. index.phps로 이동한 화면이다. 먼저 다음 코드를 통해 알게 된 개념에 대해서 정리해보자. PHP 쿠키 값을 설정하는 setcookie()함수 setcookie(쿠키명, 쿠키값, 만료시간, 경로, 도메인, 보안, httponly); 쿠키명 (필수) 설정될 쿠키의 이름을 결정 쿠키값 (선택) 쿠키 이름에 입력될 값 만료시간 (선택) Default 값은 0이며 쿠키가 유지될 시간을 설정 경로 (선택) 경로를 지정할 경우 특정 위치와 하위 경로에서만 사용가능하도록 설정됨 도메인 (선택) 사용될 도메인을..
SuNiNaTaS 06번 문제이다. 이 문제는 SQL Injection과 관련이 있는 문제였다. 이 부분은 공부해서 따로 올릴 예정이다. 처음에 ' or '1'='1' 을 쓰니 막힌다고 하여 참이 될 수 있는 다른 조건을 넣어주었다. 다음과 같은 alert가 뜨고, auth key를 얻어낼 수 있다. 그리고 확인을 누르자, 접근권한이 없다는 다음과 같은 alert가 떴다. 문제에서 알려준 사이트를 통해 authkey를 MD5 방법으로 Hash 해보았다. 다음과 같은 결과가 나왔다. 접근권한은 쿠키와 관련이 많다고 하여 쿠키를 사용해 보았다. 쿠키의 값을 HASH한 결과 값으로 바꾸어 주었다.다음과 같은 화면이 나오는데 소스 코드에서 다음과 같은 힌트를 얻을 수 있었다. 정답은 Augustus
써니나타스 5번 문제이다. 너무 볼 것이 없어서 페이지 소스를 보았다. 핵심이 될 만한 코드는 이 함수였다. eval(function(p,a,c,k,e,r) 이 부분을 알기 위해 구글링을 한 결과, 자바스크립트 난독화가 되어있었다는 것을 알게 됐다. 간단한 자바스크립트 난독화를 해제해주는 사이트도 많았다. https://www.strictly-software.com/unpack-javascript 이 사이트를 통해서 해제 해보았다. 소스코드에서 힌트가 될 만한 내용은 다음과 같다. atom을 이용해 다음과 같은 코드에 alert(PASS(12342046413275659)) 를 추가시켜 실행해보았다. 1234567891011121314151617181920212223!DOCTYPE html> var dig..
SuNiNaTas 04번 문제 를 풀기 위해서 Fiddler(피들러)라는 툴을 사용하면 문제를 풀 수 있다고 해서 피들러에 대해서 알아보았다. 일단, 피들러 툴을 다운받아야 한다. https://www.telerik.com/download/fiddler 피들러(Fiddler)의 특징 01. 웹 디버깅: 쿠키, 헤더, 캐쉬를 조회할 수 있으며 서버의 언어, 클라이언트의 운영체제 및 디바이스에 관계없이 사용할 수 있다. 02. 성능 테스트: 서비스 되는 웹 페이지의 무게를 측정하거나 네트워크의 병목현상도 감지할 수 있다 03. 웹 세션 조작: 쉽게 웹 세션을 조작할 수 있고, 모든 세션 작업에서 pause를 걸 수 있으며, 접속자의 요청과 응답을 조회할 수 있다. 04. HTTP/HTTPS 트래픽 기록: 피..
4번 문제를 클릭하면 이러한 화면이 나온다. 뭘까 싶지만 일단 페이지 보기를 클릭해보았다. 역시나 힌트가 있을 줄 알았다. Point를 50으로 바꾸라는 소리 같아서 일단 4번 문제의 plus를 눌러 50까지 바꿔보기로 했다. 50까지 plus 를 누르려고 했는데 25까지 누르니까 이러한 콘솔창이 떴다. 그리고 point 의 값은 더 이상 올라가지 않았다. 그렇다면 문제에서 User-Agent의 힌트를 찾아서 문제를 풀어보도록 하자. 일단, 이 문제를 풀기 위해서는 Fiddler(피들러)라는 툴이 필요하다. 피들러를 다운받은 후에, SuNiNaTaS를 25까지 수행시켜 놓고, 피들러를 켠다. RePlay - Reissue and Edit 을 클릭한다. Raw에서 User-Agent를 SuNiNaTaS로 ..
3번 문제 NOTICE 게시판에 글을 쓰라는 의미다. NOTICE 게시판에 들어갔는데 글쓰기 버튼이 없었다. Q&A 게시판을 가보니 WRITE 라는 글쓰기 버튼이 있었다. Q&A 게시판에서 글쓰기 버튼을 눌렀을 때 나오는 화면이다. 그 때 URL은 다음과 같다. 한 가지 떠오른 생각은 Q&A 게시판은 Free와 NOTICE 게시판은 notice와 연관이 있을 것 같다는 생각이 들었다. 그래서 URL을 다음과 같이 수정해주었다. URL을 바꾸었을 때 나오는 화면은 다음과 같다. 글을 쓴 다음에, submit을 눌러주면 authkey 값을 얻을 수 있다. 끝 엄청 간단한 문제였다.
클릭하면 나오는 화면이다. 먼저 페이지 소스를 확인해본다. 페이지 소스 중에서 핵심 내용만 캡쳐해 왔다. 맨 밑 부분에 힌트를 보니 회원가입을 하려면 id와 pw가 같아야 함을 알 수 있었다. 가장 간단하게 ID=1PW=1을 입력하고 Join 버튼을 눌렀다. 그러면 이러한 내용이 뜬다. 이유는 아이러니하게도 if문을 살펴보면 id=pw가 같으면 초기화 시켜버리는 결과를 확인할 수 있었다. 어렵게 생각하지 않고, else 문에 있는 document.web02.submit();을 사용하면 될 것 같았다. F12를 눌러 ID와 PW에 같은 값을 넣어 준 후에, Console창에 document.web02.submit();을 입력하면 끝 ! 결과는 이러하다.