반응형

정보보안 62

[Dreamhack, WarGame] 4. command injection

드림핵 4번 문제이다.Ping 테스트를 입력하는 곳에 command injection을 이용하는 문제라는 걸 알 수 있다.우선 Ping 테스트를 입력하고, 정상적으로 작동되는 것을 확인한다.   현재 서버에서 ping 테스트를 진행하면  ping -c 3 명령어와 똑같이 진행되는 것을 확인할 수 있다.칼리 리눅스를 이용하여 똑같은 명령어를 실행해보았다.패킷 로스등 네트워크 상태등 환경상황을 제외하곤 똑같은 명령어가 실행된다.   코드를 보면 ping -c 3 "{host}" 값이 있고 저 부분에 ping 명령어를 입력 후 다음 명령어에 연결하여 사용하면 될 것 같다.커맨드 인젝션은 대부분 메타문자를 이용하여 공격 진행을 할 수 있으며, 아래 표를 참고하면 된다. 메타문자설명예시결과;명령어 구분자로 사용됩..

[Dreamhack, WarGame] 3. file-download-1

드림핵 세 번째 문제 file-download-1 이다.그렇게 어렵지 않으니 한 번 해는 걸 추천한다. 우선 접속하면 기본 웹 페이지가 나온다.  Storage, Home, Upload 페이지가 나오고, Upload 페이지에선 Filename과 Content를 작성할 수 있으니 작성한다. 글을 작성하면 Storage에 작성한 글이 생기고,그 페이지로 이동한다.    우선 업로드를 할 때 파일이 아닌 텍스트로 하기 때문에 다운로드도 텍스트로 해야한다는 걸 느낄 수 있다.그리고 문제를 보자마자 느낀 게 상위 디렉토리로 이동하는 ../을 사용할 꺼라고 생각했다.그 이유는 디렉터리 인덱싱과 예전에 포스팅했던 path traversal 같은 공격같았다.우선 Upload 페이지에서 ../flag.py를 작성하니 문..

[Dreamhack, WarGame] 2. devtools-sources

dreamhack 2번 문제이다. 문제 설명에서 나와 있듯이 개발자 도구의 Sources 탭 기능을 활용해서 플래그 값을 찾는 것이다. 너무 단순하고 쉽다. 문제 파일을 다운 받은 후 압축 해제하여 홈페이지를 실행시킨다.개발자도구를 실행 시킨 후 소스탭으로 ctrl + f를 입력하여 DH{를 찾는다.어디에 있을지 모르기 때문에 왼쪽에 있는 페이지 모든 부분을 찾아야한다. DH{ 를 입력하여 찾은 부분이며 나온 flag값을 dreamhack 홈페이지에 입력한다.  입력 후의 모습이다.  후기너무 쉬워서 딱히 사람들에게 도움이 됐을 거라고 생각은 안하지만 그래도 기초가 제일 중요하기 때문에 있는 문제라고 생각이든다.

[Dreamhack, WarGame] 1. cookie

Dreamhack 1번 문제입니다. 문제 설명에 적힌 것 처럼 쿠키로 인증 상태를 관리하여 admin 계정으로 로그인한다. 계정이 없는 ID를 입력하면 not found user라고 나오며,admin / admin을 입력하면 wrong password라고 출력된다.     문제에서 나눠준 py 파일을 확인한다.users = {' guest ' : ' guest',' admin ' : FLAG} 우선 guest의 패스워드는 guest라고 생각이 되고, admin은 FLAG 값이 패스워드 인 것 같으니 guest로 먼저 로그인한다. guest / guest 로 로그인을 했더니 Hello guest, you are not admin이라고 출력된다.처음 문제 설명에서 cookie 값을 이용한다고 했으니, 로그인..

[Web Hacking] SuNiNaTaS Challenge 6번 (Level6)

Challenge 6번 문제이다. 메인에는 1,2,3,4,5번의 게시글이 있으며, 우선 그 게시글을 하나씩 보는 게 중요할 것 같다.    우선 1번 게시글엔 Reading suninatas's Writing!^^라고 적혀있으며, 써니나타스님의 글을 읽으라고 적혀있다.2번 게시글엔  https://md5hashing.net 라는 사이트 주소가 나와있으며, 접속해보면 해시 알고리즘 (MD5, SHA-1 등)을 사용해 데이터를 해싱, 암호화, 복호화할 수 있는 도구를 제공하는 웹사이트이다.   3번은 README 게시글은 1번 게시글 내용인 suninatas가 작성한 게시글이다. 클릭하면 새로운 팝업창이 생성되고, 패스워드 입력란과 "select szPwd from T_Web13 where nldx = '3..

[Web Hacking] SuNiNaTaS Challenge 5번 (Level5)

5번문제이다. 바로 F12를 눌러 확인해야한다.   F12를 열자마자 힌트와 input password에 value 값이 Hint와 같아서 그냥 저 값을 넣으면 끝이라고 생각했는데 너무 큰 착각이었다.  저 값을 넣으면 될 거 같은데 방법을 몰라서 콘솔과 Burp Suite와 소스코드를 찾다보니까 eval(function(p,a,c,k,e,r) ... 이 있었고, 저 부분은 위에 스크립트는 자바스크립트를 패킹하여 난독화하는 것이었어 언패킹을 해야했다.사실 Authkey = 부분을 인증하면 문제가 풀리는 걸 이때 눈치챘다.  위에 난독화되어 있는 스크립트를 언패킹 사이트에서 언패킹을 해주면 난독화가 되어있는 스크립트들을 난독화 해제한다.    var digitArray=new Array('0','1','2..

[Web Hacking] SuNiNaTaS Challenge 4번 (Level4)

문제 4번이다. 우선 Point 0과 Plus 버튼이 있다. 그리고 클라이언트 관련하여 나와있다.User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36    F12를 누르니 바로 Hint가 나왔다. Point를 50점으로 맞추고 SuNiNaTaS라고 적혀있는 걸 보니 바로 유추가 된다.User-Agent에 SuNiNaTaS를 넣어 50점을 만들면 될 것 같다.  Point에 어떤 숫자를 넣고 Plus를 눌러도 1씩밖에 증가가 안하고 25부터는 증가가 되지 않는다. 이럴 땐 Burp Suite를 사용한다.   Burp Suite에서 브라우저를 ..

[Web Hacking] SuNiNaTas Challenge 3번 (Level3)

문제 3번이다. 공지사항 게시판에 글을 쓰라고 적혀있다.    우선 페이지를 Burp Suite를 이용하여 프록시를 했더니 특별한 건 없어 보인다.  페이지 소스를 봐도 특별한 건 없어보인다.  써니나타스의 NOTICE 게시판에 들어가니 글쓰기가 보이지 않는다.    FREE에 들어가니 Wirte 문구가 보이고 Write를 클릭한다.   write의 URL을 보니 /free/write인데 이걸 /notice/write로 변경한다.    /notice/write에서 글을 작성하고 나니까 인증 키값이 나오고 이걸 Auth에 등록하면 자동적으로 점수가 등록된다.   후기갈수록 어려워지는 것 같다.

[Web Hacking] SuNiNaTas Challenge 2번 (Level2)

2번 문제이다. 보자마자 바로 sql injection을 넣었다. 당연히 실패했다.  Burp Suite를 사용하여 정보를 봤더니 스크립트 끝난 후 주석으로 Hint가 있었고 Join을 ID/PW에 넣었다.  위에 스크립트 언어에는 ID와 PW가 같으면 alert라고 경고창이 뜬다고 코드가 작성되어 있다.join / join으로 입력 했더니 You can`t join! Try again이라고 출력됐다.    아이디와 패스워드를 아무렇게 적은 뒤 Burp Suite이용하여 id와 pw 값을 join / join으로 변경하면 끝이다.   이 문제는 딱히 코드를 해석한다거나 그런 건 필요없는 문제 같다.웹 페이지가 GET으로 넘어가는 걸 중간에 가로채서 해킹하는 그런? 문제라고 볼 수있다.

[Web Hacking] SuNiNaTas Challenge 1번 (Level1)

우선 1번 문제는 asp로 작성된 코드이다.asp와 jsp 모두 를 사용하기 때문에 이 부분으로 구분하는 건 아니고 str = Reqeust("str") 이 부분이 asp가 사용하는 방식이다. 보통 jsp 같은 경우 str = request.getParameter("str"); 이런 식으로 파라미터를 사용한다. 그리고 사실 url에 .asp라고 되어있다.  3줄 >  str = Request("str") 요청 str이라는 매개변수를 받음 5줄 : If not str = "" Then15줄 : End if   > 문자열이 비어 있을 경우 종료 6줄 result = Replace(str, "a", "aad") > a가 입력되면 aad로 바꾸고 result 저장 7줄 result = Replace(result..

반응형