본문 바로가기

WEB_Security(실습)/Natas8

Natas (24~26 ) Natas 23 -> 24 자연스럽게 소스보기로 passwd 로 넘겨진 값이 iloveyou 거나 10보다 크면된다! 여기서... 많은 삽질을 했는대 처음에는 글자 숫자만큼의 크기인줄 알고 iloveyou123123 이런식으로 넣으면서 많은 시도를 해보았다가..... strstr 함수는 어느위치에 있던간에 정확히 단어를 찾아주기 때문에 뒤에 글이 있어도 된다고 생각하고 123123iloveyou 를 대입했더니.. 역시 숫자부터 비교해서 참으로나옴! 아마도 우선순위 문제였던것 같음.. 약간 허무하게 클리어 natas24 : OsRmXFguozKpTZZ5X14zNO43379LZveg Natas 24 -> 25 23번과 비슷한 느낌이다.. 역시 소스를보자 소스를 분석해보니 passwd 변수로 넘긴 값이 있어야.. 2017. 6. 28.
Natas ( 21~ 23 ) Natas 20 -> 21 소스보기를 해보자. 일단 get 방식으로 debug 라는 값이 있으면 디버깅한 값을 보여준다.! 그리고 admin = 1 이면 클리어! 그리고 세션에다가 name 으로 넘긴 값을 저장하는 것 같다. mywrite 에서 name 값이 존재하는대 다른 값이 들어오면변경해준다! 즉 세션이 존재하거나 존재하지 않거나. name 으로 받은 변수값을 저장해준다! 세션에다가!! 그리고 그 세션에 admin = 1 이라는 값만 들어가면된다! 일단 아무값이나 넣어보니 디버그로 값이 들어간것을 확인 admin의 값을 넣어보니 name => admin 이라고 나온다. 즉 name을 넘길때 admin 1 이라는 값도 넘겨야 클리어 즉 name 의 변수를 넘기는 것을 끝내고 admin 1 이라는 변수.. 2017. 6. 27.
Natas (17~20 ) Natas 17 -> 18 자 일단 소스보기로 고고 어 여태 했던 SQL Injection 문제인것 같은대? 라고 생각하다가 발견한 주석처리.... 즉 blind injection 을 못하게 하려고 막아 놓은 것 같다... 하지만 이때 생각나는 방법 바로! time base blind injection 공격!! 일단 natas18 을 넘겨보니 역시... 아무것도 보이지 않는다.. 그럼 ! sleep 함수를 이용해서 참인 결과를 넘겨보았더니 역시나 10초동안 멈춰있다가 페이지가 넘어가지는 것을 확인! 그럼 쉽게 비밀번호를 알기위해서 소켓 프로그램을 짜보자 위와같이 짜보았는대 응답을 받았을때 어떤식으로 정확한 응답이 왔는지 판단하려고 요청할때 시간과 응답받았을때의 시간차이를 이용해서 정확한 정보를 확인했다 .. 2017. 6. 23.
Natas (14~16) Natas14 -> 15 이번문제는 뭔가 로그인을 해야하는 것 처럼 보인다.. 소스를 먼저 분석해보자! 오! sql 인젝션 문제 인것 같다.!! 많이 풀어본 문제니깐 쉽게 풀 수 있을듯! 일단 분석해보면 쿼리문을 돌려서 username 과 password 가 넘어가고 일치하는데이터를 찾으면 패스워드를 보여주는 것 같다. 아마도 username 은 natas15로 추정된다. 그럼 쿼리문을 우회해서 한번 작성해보자 SELECT * from users where username=\"".$_REQUEST["username"]."\" and password=\"".$_REQUEST["password"]."\" 위와같은 쿼리문이니깐 username 데이터에 natas15만 주고 뒤에는 주석 처리하면natas15가 .. 2017. 6. 22.
Natas(12~ 13) Natas 12 -> 13 Natas 12 번 문제는 딱 보아도 파일 업로드 취약점을 공격하라고 보여주는 것 같은 화면이다..자 소스부터 분석해보자. 분석할 함수가 많다... 근대 별거 없다. 1 . 랜덤한 이름을 만들어주는 함수2. 경로를 지정해주는 함수 ( 어쩃든 upload 경로로 들어감 )3. 파일을 만들어준 경로로 옮김4. 파일을 검사하는 함수 . ( 크기, 업로드 파일된 경로가 다른 것 ) 함수를 분석하다보면 특히한것을 볼수 있다. 3번 을 보면 2번의 파라매터로 filname 으로 받아온 파일의 확장자를 확장자로 지정해버리는 것!... 확인해보면 test.png 파일을 업로드하면 파일명이 랜덤하게 바뀌고 .jpg 로 변경된 것을 확인할 수 있다. 그럼 혹시 php 파일도 업로드가 되는지 한번.. 2017. 6. 21.
Natas(9~11) Natas 9 -> 10 Natas9 문제이다.. 일단 소스보기 부터 해야겠지? 소스를 분석해보자. input 형식으로 들어간 데이터는 "needle" 이라는 이름으로 POST 형식으로 넘겨지고 PHP 내부에서는 데이터를 가져와 값이 있을경우에passthru() 함수로 넘겨서 명령어를 실행한다.. 여기서 중요한건 passthru() 함수이다. php에서 외부 명령어 실행하는 함수이다.즉 이함수를 이용해서 리눅스 명령어를 넘기는 형식 그럼 리눅스 명령어를 내가 원하는대로 바꾸어서 사용한다면? 결국 sql injection 문제와 비슷하다.그래서 이를 command injection 문제라고 한다. 내가 사용한 방법은 일단 grep 의 명령어를 무효화 시키는 것이다.그럼 앞의 명령어를 종료 해야하는대 세미콜.. 2017. 6. 20.
Natas(5~8) Natas 4 -> 5 5번 문제의 화면이다. 그냥 새로고침 페이지 하나가 보이고엑세스가 허용안되었다. natas5로 부터 승인 받은자만 허용한다?라고나온다. 소스분석을 보아도 특별한 것이 보이지 않는다... 새로고침을 눌러보니 역시 natas4 는 natas5로부터 접속해야지만 된다.라는 말이 나온다.. 그럼.. 즉 natas5에서 natas4로 접속했다고 속여야 된다는 말이다! 여기서부터 네트워크 지식이 필요한대.. 아직 본격적인 공부를 못한 부분이라.. 조금 도움을 받았다. 속이기 위해서는 프록시 서버를 통해서 잠시 페이지를 잡아 놓아야한다.그리고 natas5에서 보낸것처럼 속여야한다. 그럼 여기서 필요한건 하나의 툴인대... Burp Suite 라는 프록시 서버 까진 아니고 비슷한 역할을 하는 툴.. 2017. 6. 15.
Natas : Over The Wire ( wargame ) (1~4) Over The Wire : NatasSQL 인젝션 공격법에 대해서 공부를 하였으니 이제 본격적으로 두번째 워게임인 over the wire 의 natas 를 풀어보도록 해보자.최대한 많은 기법들을 공부하고 , 접해서 경험으로 못 매꾸는 지식들을 최대한 많이 매꾸도록 하는게 목표! 자그럼 시작! 사이트에 접속해보면 위와같이 홈페이지를 접할수있다. natas 를 눌러보자 대강 설명하자면 URL 에 접속하면 인증을 하게 되어있고다음 레벨로 넘어가려면 그 페이지에서 다음 레벨의 비밀번호를 습득해야지만넘어가지는 형태! 위와같은 화면으로 나온다 Natas 0 -> 1 1 레벨로 가기위해서는 비밀번호를 알아야되는대 어떤식으로 알아야 할까..? 웹 해킹의 가장 중요한 것은 바로 웹 을 구성하는 소스를 분석 하는 것이.. 2017. 6. 15.