본문 바로가기

web

제로보드의 위험성 아직까지 제로보드를 홈페이지로 사용하는 경우가 있는데, 그 경우 매우 위험하다는 것을 보여주기 위해 찍은 영상이다. 영상에 나온 버전은 비공식 패치버전인 pl9인데, 다른 버전의 경우에서도 비슷한 취약점이 있다. 이외에도 XSS 취약점도 있기 때문에 제로보드를 사용하는 것은 해커에게 '사이트를 해킹해주세요'라고 말하는 것과 같다. 실제 운영되고 있는 사이트에 대해서는 시도해보지 않았지만 따로 패치를 해주지 않았다면 똑같이 취약점이 있을 것이라고 생각한다. 참고로 제로보드 뿐만 아니라 다른 CMS를 사용하고 있더라도 업데이트를 해주지 않는다면 해당 취약점을 이용해 공격이 가능하므로 업데이트는 지속적으로 해주어야 한다. 특히 웹쉘이 업로드 되었다면 이미 그 서버는 해커의 개인 서버가 되었다고 해도 무방하기 ..
[Web] Level 6 문제 링크 : http://suninatas.com/Part_one/web06/web06.asp 게시판의 글을 읽는데 3번째 글의 경우에는 암호가 걸려져 있다. 그리고 암호를 입력하는 창이 뜨는데, 문제를 보면 자연스럽게 SQL Injection 문제라는 것을 알 수 있다. =와 #(주석) 문자를 필터링하기 때문에 1' or '1'>'0 방식으로 우회할 수 있다.그러면 경고창에서 "Congratulation!! auth_key is suninatastopofworld!"라는 메시지를 볼 수 있고, 추가적으로 경고창이 하나가 더 뜨는데 인코딩이 깨져서 어떤 글자인지는 알 수 없었다. 인증창에 suninatastopofworld!를 입력해보았지만 잘못된 인증키라고 나온다. 따라서 게시글의 내용을 읽어야 된다..
[Web] Level 5 문제 링크 : http://suninatas.com/Part_one/web05/web05.asp 소스코드 보기를 하면 아래와 같은 자바스크립트가 있는 것을 확인할 수 있다. eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('g l=m o(\'0\',\'1\',\'2\',\'3\',\'4\',\'..
[Web] Level 4 문제 링크 : http://suninatas.com/Part_one/web04/web04.asp Hint를 보면 50점이라는 것과 SuNiNaTaS가 힌트라는 것을 알 수 있다.plus 버튼을 누르면 값이 1씩 증가하는 것을 알 수 있고, 값이 25이상인 경우에는 "I like the SuNiNaTaS browser!"라는 경고창이 뜬다.따라서 User-Agent를 SuNiNaTaS로 설정해주면 잘 작동할 것이라고 추측을 하고 아래의 Python code를 작성해서 실행했다.실행 결과 Auth Key를 얻을 수 있었다. from urllib import request from bs4 import BeautifulSoup def main(): COOKIE = "ASPSESSIONIDASDAQDDD=****..
[Web] Level 3 문제 링크 : http://suninatas.com/Part_one/web03/web03.asp Notice Board에 글을 쓰는 것이 목표이다.먼저 Notice Board의 목록을 보는 주소가 http://suninatas.com/board/list.asp?divi=notice 이고, 글 내용을 보는 주소가 http://suninatas.com/board/view.asp?idx=469&num=40&page=1&divi=notice 라는 것을 통해서 글을 쓰는 링크가 http://suninatas.com/board/write.asp?divi=notice 라고 유추할 수 있다.따라서 이 링크로 들어간 다음에 제목과 글 내용을 아무렇게나 입력하고, 제출버튼을 누르면 경고창을 통해서 Auth Key가 나타나..
[Web] Level 2 문제 링크 : http://suninatas.com/Part_one/web02/web02.asp 소스코드 보기를 한 후에 주석을 보면 id와 pw가 Join으로 같다는 것을 알 수 있다. 그래서 ID에 Join을 넣고, PW에 Join을 넣고, 버튼을 눌렀더니 "You can't join! Try again."이라는 경고창이 뜬다. 소스코드를 분석해보니 제출 버튼을 누르게 되면 chk_form()이라는 자바스크립트 함수가 호출이 되고, 여기에서 id와 pw가 같은지를 체크해서 같으면 경고창을 띄우도록 되어 있다. 따라서 이 자바스크립트를 우회해야 한다.툴을 쓰지 않고 간단하게 해결하기 위해서는 아래와 같은 html 파일을 생성하도록 한다. 이렇게 만들어진 파일을 실행해서 제출 버튼을 누르게 되면 Auth..
[Web] Level 1 문제 링크 : http://suninatas.com/Part_one/web01/web01.asp VBScript에 대한 함수의 사용법에 대해서 알고 있는지 여부를 물어보는 문제이다.Replace의 문법은 Replace(string, find, replacewith)으로 string 문자열에서 find부분을 replacewith로 모두 바꾼 것을 리턴하는 함수이다.Mid의 문법은 Mid(string, start, length)으로 string 문자열에서 start에서부터 length 길이만큼을 잘라낸 결과를 리턴하는 함수이다.마지막으로 &의 경우에는 문자열을 붙여주는 역할을 한다.따라서 ami를 입력하면 result가 admin이 되어서 pw를 출력하게 된다. 답 : ami authkey : k09rsog..