일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- cloud run
- 보안
- 포너블
- 웹보안
- sequelize
- 리버싱
- kotest
- 프로그래머스
- gcp ci/cd
- docker
- 백준
- nodejs
- 네트워크
- 파이썬
- gcp cloud build
- 회고
- node.js
- spring Batch
- 시스템 해킹
- programmers
- pwnable.xyz
- 사이버보안
- hackctf
- gcp
- 스프링 배치
- 웹해킹
- Batch
- Baekjoon
- Python
- webhacking.kr
목록IT (112)
uju's Tech
5번은 300점 짜리 문제이다. 5번에 들어가보면 처음에 이렇게 화면이 나온다. login으로 들어가서 기본 id로 많이 사용되는 admin을 입력해보았다. 이렇게 wrong password가 뜨는 것을 보니 id는 맞은거 같다. 그럼 password를 알아야하는데 처음 페이지로 돌아와서 join을 누르니 access denied가 뜬다. 첫 페이지에서 개발자 환경 도구를 살펴보자. 소스를 살펴보니 이미지 및 파일의 경로가 적혀있는 부분이 있다. 이부분을 보고 5번 문제가 디렉토리 리스팅 문제라는 것을 알 수 있다. ※디렉토리 리스팅이란 ?? 웹 서버를 디렉토리로 접속할때 해당 디렉토리내의 파일과 디렉토리를 리스트로 보여준다. 파일을 열람이 가능하다면 악의적인 목적을 가지고 공격이 이루어질 수 있다. u..
41번은 250점짜리 문제이다. 41번 문제를 들어가보자. 위의 사진과 같이 파일을 업로드하는 것이 나온다. 크롬 개발자 도구(shift+i)를 살펴보겠다. 코드를 보니 index.phps파일이 존재한다는 것을 알 수 있다. 기본url/index.phps를 쳐서 ㄴ들어가 보자. 위와 같은 코드가 나온다. 코드를 보면 fn에 업로드한 파일의 이름을 저장한다. str_replace는 문자열 치환 함수로 "."을 ""로 바꾼다는 코드이다. eregi는 문자열 필터링 함수이다. if조건문을 살펴보면 eregi함수가 쓰여있는데 해석해보면 fn에 "/", "\.", "htaccess", ". htaccess"가 포함된 경우 no를 출력하면서 종료한다. 여기서 htaccess를 필터링하는 이유는 htaccess를 통..
58번은 배점이 150점인 문제이다. 들어가보니 위와 같이 나온다. pw를 입력하는 부분이 있어 아무 숫자나 입력해보았다. 그랬더니 wrong가 뜬다. 소스 코드를 확인해 보자. 소스코드 자바 스크립트로 작성된 파일이 kk.js 와 kk2.js 가 있다는 것을 알 수 있다. 밑에는 라고 작성되어 있다. 태그는 외부 응용프로그램이나 플러그인을 삽입하는 태그이다. swf: 어도비 플래시에서 멀티미디어,액션 스크립트 등을 처리하는데 사용하는 파일 형식이다. 먼저 kk.js에 들어가보자 view-source: 를 사용하여 소스를 보겠다. 소스 kk에 url에서 문자열 인덱스 10부터 4글자를 잘라내서 저장한다. url kk에 hack 문자열이 저장된다. 이제 kk2.js에 들어가보자. 소스 kk에 hack+me..
32번 문제를 눌러 들어가면 위에 사진과 같이 랭킹이 뜬다. 맨 밑으로 내려보면 join이 뜬다 join을 누르면 내 아이디가 위의 랭킹에 뜨게된다. 근데 이 문제가 무엇을 풀라는 것인지 잘모르겠어서 개발자 도구에 들어가서 소스 코드를 확인해 보았다. 랭킹에 있는 아이디가 뜨는데 hit=아이디 이렇게 되었음을 볼 수 있다. 아이디를 클릭해보니 밑에 사진과 같이 no!가 뜨면서 url은 webhacking.kr/challenge/codeing/cod5.html?hit=아이디 형식으로 나온다. 소스코드로 더 얻을 수 있는 것은 없는거같다. 한번 쿠키를 확인해보자 위와 같이 vote_check가 ok로 설정되어있는 것을 볼 수 있는데 이것 때문에 no 라고 뜨는것 같다. ok를 no라고 바꿔서 저장하고 내 아..
24번 문제에 들어가자마자 위와 같이 나옴을 볼 수 있다. 딱 보자마자 무엇을 의미하는지 잘 모르겠다. 그러니 ctrl+shift+i 를 눌러서 크롬 개발자 모드로 들어가보도록 하겠다. 소스를 확인해보니 주석 처리가 되어있는 부분이 보인다. source 가 index.phps라고 한다. 주소창에 url뒤에 index.phps라고 치고 들어가본다. 오.. 소스코드가 나온다!! 전체적의 의미를 파악하기 전에 solve부터 확인한다. $ip가 127.0.0.1 이면 풀린다고 한다. 그럼 코드를 하나씩 살펴보자. extract(): 배열 속의 키값을 변수화 시켜주는 함수 REMOTE_ADDR:현재의 클라이언트이 IP가 들어있다. 클라이언트의 IP가 존재하지 않으면 REMOTE_ADDR에 접속한 클라이언트 IP저..
18번에 들어가게되면 위와 같은 창이 나온다 sql injection으로 푸는 문제라는 것을 알 수 있다. index.phps 에 들어가서 보면 아래와 같은 코드가 주어진다. 소스를 살펴보면 eregi 하고 조건이 있고 그 조건을 만족하면 no hack을 출력한다는 것을 알 수 있다. eregi 는 문자열 필터링 함수이다. eregi("찾고자 하는 문자","임의의 값") 임의의 값에서 찾고자 하는 문자를 찾으면 조건이 만족되는 것을 알 수 있다. 그리고 대소문자로 우회가 가능한지 보았는데 eregi는 대소문자 구분을 하지 않기 때문에 대소문자로 우회가 불가능하다. |(파이프)를 기준으로 /,&,union,select,from,0x 등의 문자열들을 필터링을 한다. 위와 같은 문자열을 이용하면 no hack..
webhacking 4번을 풀어보겠다. 4번 문제를 들어가보면 제일 먼저 나오는 화면이다. password 와 password를 입력하는 부분 그리고 제출 버튼이 있는 것을 볼 수 있다. 위에 암호화된 문자열이 보인다. 이것이 password라고 추측해 볼 수 있다. 맨 뒤에 == 을 보고 base64 방식으로 암호화 되어진 것을 알 수 있다. base64 디코딩 사이트를 들어가서 복호화를 해보니 c4033bff94b567a190e33faa551f411caef444f2 이렇게 나온다. 이것을 보니 어떤 함수로 암호화 되는지 알 수 없어서 구글링을 해보았다. SHA1 알고리즘 방식으로 암호화 되었다는 것을 알 수 있었다. * SHA(Secure Hash Algorithm) : 암호학적 해시 함수들의 모음 ..
웹 해킹을 공부하기위해 webhacing.kr에 가입하기로 했습니다. webhacking.kr치고 들어가면 위와 같은 화면이 나옵니다. 회원 가입을 하고 싶은데 회원가입하는 부분이 없습니다. ctrl+shift+i를 눌러 크롬 개발자 도구를 켭니다. 위와 같은 화면이 나타납니다. ctrl+f를 눌러 register 을 칩니다. 그러면 저렇게 주석처리되어 있는 부분을 볼 수 있습니다. 저 부분에서 우클릭후 edit as html을 눌러 편집을 합니다. 부분을 지워줍니다. 짜잔 이렇게 register 버튼이 나타납니다, register 을 눌러 회원가입을 진행합니다. id. pw, email을 입력합니다. 근데 decode me라는게 있는데요 https://www.base64decode.org/ Base64..