포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 2번 문제이다. 별게 없어 보인다. 소스코드를 보자. 소스코드도 별로 없다. 하지만 주석 부분에 admin.php에 접근 시 혼내준다는 문구가 보인다. 접속해보자. 무언가 입력하는 창이 나온다. 이곳에 정답을 입력하면 문제가 풀리는 것 같다. 이곳의 소스코드 또한 별 볼일 없어 보인다. 흠.. 여러 번 둘러보다가 이전 소스코드에서는 시간을 표현해준다는 걸 발견했다. 그리고 쿠키값을 보니 time을 인자로 받는 값이 있는 것도 발견했다. time의 값을 1로 주고 소스코드를 봤더니 변화가 있었다. 바로 소스코드에서의 시간이 사진과 같이 변했다. 그러다 문득 든 생각이 참과 거짓일 때 0과 1을 출력할까?라는 생각도 들었다. 테스..
포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 1번 소스코드이다. 쿠키값이 실수형이 아니면 1로 반환한다. 쿠키가 user_lv이고 4보다 크면 1로 반환하며, 3보다는 커야 문제가 해결된다. 간단한 문제이므로 자세한 풀이는 생략하겠다. f12를 눌러 크롬 개발자 도구를 실행시킨 후 Application -> Cookies를 눌러준다. 쿠키에서 user_lv항목을 찾을 수 있다. PHPSESSID는 필자의 쿠키값으로 삭제후 사진을 첨부하였다. 조건에 맞게 user_lv을 3.x값으로 변경해준 후 원래 페이지로 돌아가 준다. level에는 변조한 값이 들어가있으며 클리어 문구와 함께 문제가 풀린다. 필자는 문제를 먼저 풀어보고 포스팅 하기에 already sloved가 출력..
Base64 컴퓨터 분야에서 쓰이는 Base 64 란 8비트 이진 데이터(실행 파일, ZIP 파일)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념이다. 간단하게 예를 들어 설명하자. apple을 base 64로 변환하는 과정 apple의 각 문자를 아스키코드로 치환한다. a p p l e 97 112 112 108 101 8비트 2진수로 변환시킨다. 97 112 112 108 101 01100001 01110000 01110000 01101100 01100101 6비트씩 묶어준다. 011000, 010111, 000001, 110000, 011011, 000110, 0101 하지만 위 처럼 모두 6비트씩 묶이지 않는 경우도 ..
포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 10단계 웹페이지이다. 파라미터는 x이며 알 수 없는 값을 받고 있다. 문제 해결은 version정보와 나의 이름을 띄우면 된다. 그러기 위해 ISwwYGAKYAo%3d가 무엇인지 알아야 한다. 잘 보니 %3d가 url인코딩이 되어있고 이는 =을 뜻한다. 문자열 맨뒤에 =이 삽입되어있으며 1차적인 해독이 불가능한 문자열이라.. base64가 생각이 난다. base64 to text로 해당 값을 입력해보자. 이번엔 더욱 알 수 없는 문자열이 나왔다. 이건 감이 도저히 오질 않아서 또 인터넷에 검색을 좀 했다. uuencode문자열이다. uuencoder로 인코딩한 결과 1이 나왔다.. 이번 문제는 문자열을 uuencoder->b..
포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 9단계 웹페이지이다. 파라미터로 id를 받으며 문제 해결 조건은 passwd file을 출력시키면 된다. 칼럼 수부터 찾아보자. 쿼리: ?id=1'order by 3--+- 칼럼수는 2개이다. 또한 fatal error가 발생하고 있으며, 이 에러는 해당 파일이나 디렉터를 찾을 수 없다는 에러이다. 이제 union구문을 통해 passwd파일의 경로를 잡아주자. 쿼리: ?id=2' union select '../etc/passwd',2--+- 문제 해결! 시행착오 1. union select를 통해 경로를 입력하면 해당 파일의 정보를 추출할 수 있다. 2. 경로를 입력할 때 문자열처럼 쿼터를 씌워줘야하며 상대 경로 처리를 해줘야..
포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 8단계 웹페이지이다. 파라미터는 id로 받으며 문제 해결조건에 대한 이야기가 없어, 이번에도 역시 유저 이름과 버전을 출력시키면 해결되는 것 같다. 칼럼 수부터 찾아보자. 이번에는 처음부터 문제가 발생했다. 해당 페이지를 보자 쿼리: ?id=1 order by 1 해킹 시도가 감지되었다. 뭐가 문제일까 여러 번 시도를 한 후 공백에 대한 필터링이 되어있다는 걸 찾았다. 한번 공백우회를 해보자. 쿼리: ?id=1%09order%09by%091 정상 페이지가 출력되었다. 칼럼의 수는 3개이다. (과정 생략) 정보를 추출해보자. 쿼리: ?id=2%09union%09select%09@@version,user(),3 분명히 문법이 맞지..
포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 7단계 웹페이지다. 문제에 대해 따로 설명이 없는걸 보아 아마 버전과 user를 출력시키면 되는 문제 같다. 그럼 해보자. 칼럼 개수부터 알아보자. 쿼리: ?id=1 order by 4 칼럼수를 알아보다 오류가 발생 시 오류 메시지는 출력이 되지 않지만 웹페이지에 변화가 생긴다. 따라서 칼럼의 개수는 3개이다. 이제 버전과 유저를 출력하면 된다. 쿼리: ?id=2 union select @@version,user(),3 웹페이지는 정상적으로 작동하고 있지만 값은 출력이 되지 않는다. 그래서 조금 헤매다가 페이지의 소스를 열어보았다. 웹페이지에서는 표출되지 않았지만 소스코드 내부에서는 user()가 나타나고 있었다. 해당 칼럼 ..
포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 6단계 웹페이지다. serial id가 11인 teacher의 자세한 정보를 가져오는 게 목표이다. 또한 이미지 파일이 두 개가 있으며 하나는 정답에 관한 이미지 파일이며, 나머지는 오답에 관한 페이지다. 또한 메타데이터에 접근할 수 없다. 일단 각 이미지 파일을 보자. 일단 컬럼수부터 찾아보자. 쿼리: ?serial=10 order by 5--+- 5일 때는 오류가 났지만 4일 때 오류가 나지 않았다. 따라서 칼럼은 4개이다. 참고로 serial=11 주입은 막혀있다. 쿼리: ?serial=11 systables로 접근하는 방법도 시도해봤지만 먹히지 않았다. 그래서 다른 분들의 글을 좀 봤는데 테이블명을 추측하고 있었다. ...
- Total
- Today
- Yesterday
- 프로그래머스 상품을 구매한 회원 비율 구하기
- 자바
- 백준
- 김영한 실전 자바 기초
- 김영한
- los 15단계
- 김영한 실전 자바 기본
- 기술스택
- java
- 백준 피보나치 수열
- webhacking.kr
- static
- 상속
- extends
- spring
- zixem
- 프로그래머스
- 프로그래머스 상품을 구매한 회원 비율 구하기 파이썬
- 코딩테스트 준비
- lord of sql
- samron
- 김영한 실전 자바 중급
- 스프링
- ys.k
- 백준 피보나치
- Los
- 코딩테스트
- samron3
- 상품을 구매한 회원 비율 구하기 파이썬
- los 15
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |