본문 바로가기

Hacking

[Android] V앱 분석하기 (1) 네이버에서 V앱이라는 서비스를 오픈하였다. 아래는 네이버에서 제공하는 V앱에 대한 소개글이다. "스타가 만드는 실시간 방송, V앱 - V에선 스타의 특별한 모습을 만날 수 있습니다" 위 그림에서도 알 수 있듯이 V는 Android나 IOS에서 제공하는 앱을 사용해야지 방송을 볼 수 있다는 것을 알 수 있다. 그리고 몇 개의 방송은 앱을 제외하고도 노트북이나 컴퓨터를 통해 볼 수 있지만, 대부분의 방송은 모바일 앱을 통해서만 볼 수 있다.이것의 단점이 휴대폰이 작은 사람의 경우에는 방송을 보기가 힘들다는 것이다. 그리고 휴대폰의 용량이 한정되어 있기 때문에 V앱을 설치하는 것에 부담을 가지는 사람도 있을 것이다. 내가 좋아하는 가수인 윤하도 이 V앱을 통해서 방송을 한다. 그런데 휴대폰으로 이 영상을 보기..
Magic Hash PHP에서 ==로 비교할 때 생기는 type conversion으로 인한 취약점이다.즉 문자열의 형식이 ^0+e\d*$로 되어있을 때, 이것을 숫자형 데이터와 비교를 하게 되면 0이라는 것으로 인식을 한다. 왜냐하면 $0^n$은 항상 0이기 때문이다.이 성질을 이용해서 공격을 하는 워게임 문제들도 존재한다. 아래는 https://blog.whitehatsec.com/magic-hashes/ 에서 가져온 Magic hash 목록이다. Hash Type Hash Length “Magic” Number / String Magic Hash Found By md2 32 505144726 0e015339760548602306096794382326 WhiteHat Security, Inc. md4 32 4829120..
TXT 버전의 풀이 보호되어 있는 글입니다.
[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..