webhacking.kr - old 33
·
Wargame/Webhacking.kr
문제 첫 화면이다 33-1........ 문제가 많다는 걸 여기서 깨달았어야 했는데....... [문제안에 문제가 많으니 천천히 보도록 하자] 들어가기 앞서 python request를 주로 이용해서 문제를 풀었기에 (그냥) 문제풀이에 쓰인 코드들은 다 https://github.com/GrayOM/webhacking.kr_code GitHub - GrayOM/webhacking.kr_code Contribute to GrayOM/webhacking.kr_code development by creating an account on GitHub. github.com 여기에 전부 있습니다. 문제 시작 먼저 코드를 확인해 보자 일단 핵심코드는 $_GET으로 전달된 파라미터가 "hehe"라는 문자열인지 확인하는..
webhacking.kr - old 19 (JavaScript Space Filter)
·
Wargame/Webhacking.kr
문제 화면이다. 제출을 눌러보자. 당연한 결과다. 아무렇게나 입력해도 접속이 돈다. 다시 돌아와서 admin으로 접속을 시도했을 때 id를 확인하는 과정이 있었다. guest로 다시 실험해 보자. id 값을 guest로 바꾸니 guset로 접속되는 걸 확인할 수 있다. 그럼 admin에서 공백 필터링으로 우회를 시도해 보자. %09 : Tab (공백)
webhacking.kr - old 32
·
Wargame/Webhacking.kr
문제화면이다. 'Hit' 부분을 한번 눌러보자. 'Hit'이 1 증가한 걸로 보인다 마우스 클릭을 하면 증가하나 보다. 한번 더 누르니까 투표를 이미 했다고 뜬다. 다른 아이디도 누르니 똑같이 나왔다. 한번 누를 때마다 '? hit=tmdals7205'으로 들어가게 된다. 쿠키를 보니 'vote_check' value로 ok 가 되어있다. 아마 투표를 완료했으니 'ok'라고 뜬 거 같다. 'ok' 값을 지워서 다시 투표를 시도해 보자. 값을 공백으로 바꾸고 1등에게 투표를 했는데 아까 26이었던 'Hit'가 '27'로 변했다. 쿠키 값이 공백이면 투표권이 주어지는 거 같다. 일일이 지우면 비효율적이니까 python으로 코드를 작성해 보자. 'requests' 패키지를 이용해서 python을 가지고 HTT..
webhacking.kr - old 05
·
Wargame/Webhacking.kr
문제 화면을 보면 'Login' , 'Join'이 있다. 하나씩 눌러보자. 'Join'을 눌렀더니 'Access_Denied'이 뜬다 해당 페이지 소스코드를 한번 보자. 코드를 보니 'Login' 은 정상적으로 작동되는 거 같다. 'Login'을 눌러보자. 'login.php'에는 id, pw를 입력하여 login을 시도하는 거 같다. 그런데 경로를 보면 중간 상위 디렉토리에 'mem' 란게 존재한다 mem으로 한번 이동해 보자. 'mem' 디렉터리 에는 'join.php'가 있다 눌러서 한번 들어가 보자. 들어가자마자 'bye'가 출력된다. 이것도 아마 'alert'로 출력되는 거 같다 소스코드를 한번 봐보자. 읽기 힘들 정도로 난독화되어있는 거 같다. 가독성 있게 바꿔보자. l = 'a'; ll = ..
webhacking.kr - old 23
·
Wargame/Webhacking.kr
문제 화면이다. ' inject 하면 문제 해결이라고 합니다. XSS 관련 문제인거같다. 양심 없게 한번 써보자 어차피 필터링 어느 정도인지는 봐야 하니까. 당연히 막힌다. 다른 것들도 실험해 보자. [,,/,(),(,),1,;] 을 대입해 봤더니 정상적으로 출력이 되었고 [alert,script,img,table] 이러한 tag_name 종류들은 다 막힌 거 같다. (예시 보다 더 많이) 대문자도 물론 막힌다. 그 외 상관없는 문자, 문자열들은 정상적으로 출력이 된다. URL Encode으로 한번 해보자. 특수문자들은 필터링에 막히지 않으니 encode 해봤자 의미가 없다 그럼 공백을 한번 넣어보자. a%09l%09e%09r%09t(1); 안되네...... tab 이 막힌다면 띄어쓰기인 '%20'도 막..
webhacking.kr - old 25 (PHP wrapper [LFI])
·
Wargame/Webhacking.kr
문제화면이다. Linux에서 'ls -l' 명령어를 친듯한 모습이 보인다. ? file=hello로 되어있으니 flag로 이동해서 확인해 보자. flag에서 확인해 본 결과 플래그는 코드 안에 있다고 나와있다. 그러면 코드를 확인할 수 있어야 하는데 php wrapper를 이용해서 확인해 보자. php wrapper는 데이터의 앞에서 어떤 막(?)을 감싸 주는 데이터 또는 다른 프로그램이 실행되도록 설정하는 프로그램이다. 그리고 php wrapper를 이용한 LFI(Local File Inclusion) 공격에 대해서 알아봐야 한다. LFI = 웹 브라우저를 통해 서버에 파일을 포함시키는 과정 대부분의 LFI 취약점은 URL를 통해 이뤄진다. LFI 공격 형식은 'www.[sitename]. index...
webhacking.kr - old 27 (SQL INJECTION)
·
Wargame/Webhacking.kr
문제 화면이다. 소스코드를 확인해 보자. SQL INJECTION
webhacking.kr - old 54
·
Wargame/Webhacking.kr
문제를 포면 Password 가 '?' 칸에 한 글자씩 출력되면서 사라진다. 소스 코드를 확인해보자. function run(){ if(window.ActiveXObject){ try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) { return null; } } }else if(window.XMLHttpRequest){ return new XMLHttpRequest(); }else{ return null; } } x=run(); function answer(i){ x.open('GET','?m='+i,false); x.send(..
webhacking.kr - old 38 (Log Injection)
·
Wargame/Webhacking.kr
문제 화면을 보면 'LOG INJECTION'이라고 나와있다. 코드를 한번 봐보자. 먼저 admin.php 한번 접속해보자. admin.php를 접속했더니 admin으로 로그인이 필요하다고 한다. 그럼 전 페이지로 돌아가 Login 실험을 해보자. 아무렇게나 넣어봤더니 출력해 주는 거는 '현재 ip:입력한 이름' 이런 식으로 출력되었다. 앞에서 봤듯이 줄 바꿈이 발생하고 있다 줄이 바뀌고 있다는 거는 새로운 줄이 시작하는 거 이기도 하다. 그러면 즉 새 줄문자로 구분되어 있다고 말할 수 있다. 그렇다면 로그에 'admin'이라는 문자열이 생기고 그 옆 ip 에는 자신의 ip를 등록하게끔 만들면 된다는 것. 그냥 'admin'이라고 입력하면 이렇게 뜨고 'log viewer'에는 남지 않는다. 일단 줄 바..