Old - 56 Write Up
2021. 5. 23. 11:38
워게임/webhacking.kr
게시판 페이지가 나왔다. 기능을 보기 위해 게시판 글과 검색 기능을 사용해봤다. Admin의 readme 글은 access denied로 볼 수 없다. Guest의 hi~ 글은 권한이 모든 사람이 접근할 수 있는 권한인 듯하다. 해당 글들의 URL을 살펴보니, read=admin, read=quest로 되어 있었다. 때문에 Injection으로 문제 접근이 불가능해보였다. 검색 기능을 보기위해 admin, guest, hi~, readme를 입력해봤지만, 모두 위와 같이 결과가 출력되었다. 그래서 “게시판 글 안에 있는 Text를 검색하는건가?”라는 생각에 hello~를 검색하니, 글이 출력이 되었다. 이를 이용하여 나는 admin의 readme를 추측하기로 하였다. readme 안에 있는 글은 flag..
Old - 43 Write Up
2021. 5. 21. 23:01
워게임/webhacking.kr
이번 문제는 웹쉘을 업로드하여, 웹쉘로 flag 파일을 읽는 문제이다. 나는 명령어를 실행시킬 수 있는 코드를 가진 PHP를 업로드를 해봤다. test.php 업로드 결과 잘못된 타입이라면서 업로드가 거절되었다. 타입은 Content-Type를 지칭하는 것으로 판단된다. 나는 어떤 파일이 업로드가 가능한지 확인하기 위해 이미지 파일을 업로드해봤다. 업로드가 성공되는 것을 확인을 하여, 나는 해당 이미지의 Content-Type를 확인해봤다. Content-Disposition: form-data; name="file"; filename="IMG_4926.jpg" Content-Type: image/jpeg 이제 이미지 타입으로 test.php의 타입에 수정하여 보내봤다. ------WebKitFormBo..
Old - 41 Write Up
2021. 5. 21. 22:58
워게임/webhacking.kr
파일을 업로드하는 페이지가 나왔다. 코드를 살펴봤다. 코드를 보니, , ?, ., /을 치환되어서 파일 이름에 스크립트는 불가능해 보인다. $f = @fopen(“./{$upload_dir}/{$fn}”,”w”); @fwrite($f,$flag); 이 코드를 보니, 파일을 읽으면 Flag를 주는 것으로 판단된다. 그래서 업로드 폴더를 알아내기 위해 몇가지 실험을 해봤다. 그 중 하나가 파일을 선택하지 않고, 업로드를 시도하니 오류를 출력되는 것을 알 수 있었다. 에러 메시지를 확인하니, cp 명령어에서 일어나는 오류가 출력되는 것으로 보인다. 이를 이용하여 파일을 업로드하여, cp 명령어를 에러를 발생하도록 하겠다. 현재 내가 오류를 줄 수 있는 방법은 파일명과 파일의 내용으로 두가지 선택 상항이 있다...
Old - 21 Write Up
2021. 5. 20. 13:46
워게임/webhacking.kr
Blind SQL Injection을 이용하라고 하여, 일단 어떻게 결과값이 출력되는지 살펴봤다. 로그인 성공 로그인 성공 시 “login success”를 출력한다. 로그인 실패 로그인 실패 시 “login fail”를 출력한다. 패스워드 실패 SQL Injection을 시도하였는데, wrong password라고 출력이 되었다. 이번엔 글자의 길이를 검사하는 SQL 쿼리를 삽입하면 어떻게 출력되는지 살펴봤다. True and True or False로 결과는 True가 됨으로 “Wrong password”가 출력되었다. 이를 바탕으로 비밀번호의 길이를 알아내보도록 하겠다. import requests from bs4 import BeautifulSoup as bs url = 'https://webha..
Old - 12 Write Up
2021. 5. 19. 05:56
워게임/webhacking.kr
Js challenge라고 하니, 개발자 코드로 살펴봤다. ゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ ..
Old - 10 Write Up
2021. 5. 19. 03:21
워게임/webhacking.kr
페이지를 보니, 엄청 긴 막대기 안에 O이 있고 Goal 라인이 있었다. 코드를 살펴보니, O은 a태그였고 Onclick 이벤트가 설정되어있었다. O Onclick 이벤트가 한 줄로 되어있어서 따로 빼서 보기 좋게 분류했다. this.style.left=parseInt(this.style.left,10)+1+'px' if(this.style.left=='1600px'){ this.href='?go='+this.style.left } 클릭할 때마다 1px 씩 이동한다. 만약 O의 위치가 1600px이면, a 태그의 href 속성이 ?go=1600px으로 된다. 나는 일단 ?go=1600px을 서버에 요청해봤다. 결과는 no hack이 출력되었다. 분명 코드에선 ?go=1600px으로 이동하는데, 왜 안되는..
Old - 59 Write Up
2021. 5. 17. 09:22
워게임/webhacking.kr
가입과 로그인 기능이 있는 form이 나왔다. View-source가 나왔으니, 코드 상에 힌트가 있을거라 생각하여 코드를 확인하였다.