본문 바로가기

wargame/Suninatas

(11)
써니나타스 #18번 풀이 86 71 57 107 89 88 107 103 97 88 77 103 89 83 66 110 98 50 57 107 73 71 82 104 101 83 52 103 86 71 104 108 73 69 70 49 100 71 104 76 90 88 107 103 97 88 77 103 86 109 86 121 101 86 90 108 99 110 108 85 98 50 53 110 86 71 57 117 90 48 100 49 99 109 107 104 더보기 cipher ="86 71 57 107 89 88 107 103 97 88 77 103 89 83 66 110 98 50 57 107 73 71 82 104 101 83 52 103 86 71 104 108 73 69 70 49 100 71 104..
써니나타스 #23번 풀이 허허 22번 반복인데 이번엔 admin이 막혔네.... substring이야 22번이랑 반대로 원래하던데로 아스키 레프트 라이트 조합으로 하면 되는데... 이거 필터링 순서가 반대아닌가??? 어떻게 admin을 우회할까... 아 or 필터링 안걸어 놨네 개꿀띠 or 랑 like 조합으로 와일드 카드 쓰면 될듯 ㅋㄷㅋ 근데 진짜 문제 순서가 이상한거 같은데 ㅡ.ㅡ;; ㅡ.ㅡ like 필터링 되네... 어쩐지 너무 쉽게 풀린다 했네 문자열을 더해주는 concat함수를 써보자 aaa' or id = 'guest' -- 얘까지 되고 reverse,replace를 해보자 안되네... 뭐징 함수들이 다 실행할 인자를 주면 no hack이 뜨네;;;; ------------------------------------..
써니나타스 #22번 풀이 더보기 time based BSQLi로 풀려고 했는데 딜레이도 슬립도 안먹는 것 같음 LOS에서 썻던 코드 재활용할라캤는데 아쉽아쉽 차피 OK 메세지로 확인가능하니까 기술적으로는 이게 쉽긴 할 듯 써니나타스 22번 풀이 guest' -- 로 로그인 가능 #은 필터링 되는 듯 로그인시 OK "ID"가 출력됨 이걸 이용해서 BSQLi 진행하도록 해야함 admin' and '1'='1' -- 로도 로그인 됨 이걸로 and 뒤에 조건 바꿔가면서 비밀번호 특정하면 됨 MSSQL인가... len(pw)로 일단 비밀번호 문자수 알아내고 이제 한글자씩 브루트포싱하면 되는데 ascii, right, left를 고냥 필터링하네;;;; ascii(right(left(pw,'+str(cursor)+'),1) 원래 substr..
써니나타스 #8 풀이 오 익숙한 로그인창 드디어 SQLi인가 두구두구 누가봐도 브루트 포스였네요... 원하는 대로 해주는게 인지상정 더보기 import requests url = 'http://suninatas.com/challenge/web08/web08.asp' for i in range(0,10000): data = {'id' : 'admin', 'pw' : i} res = requests.post(url=url, data=data) #print res.text print i if(not "Incorrect!" in res.text): print(i) break 이런건 파이썬+requests 조합이 제일 빠른 것 같습니다. 만개따위야 맞으면 Incorrect가 뜨진 않을 테니 저걸 분기로 삼아서 돌려보면 플래그 회수~~~
써니나타스 #7번 풀이 갑툭튀한 아이유 사진과 하나밖에 없는 선택지 Yes... 트와이스도 적어도 이지선다였는데 이쪽은 단일 선택이네요... 아무래도 운영자분이 아이유빠인듯 더보기 작성자의 의도를 파악하고 문제를 풀어줍시다... ㅋㄷㅋ location.reload(); frm.submit(); JS로 페이지 리로드하고 바로 선택지도 서브밋 해버립시다. 속도를 어느정도로 해놨는지는 모르겠는데 한 5번 하니까 되네요 얼마나 빠르게 누르게 하고싶었던 걸까요;;; 파블로프 그 자체! 암트 플래그 회수~~
써니나타스 #6번 풀이 게시판이 나오네요 더보기 select szPwd from T_Web13 where nIdx = '3' and szPwd = ' 입력값' ' or ' true view.asp?num=1 var cont = document.pwd_chk; function fnChk_pwd() { if (cont.passwd.value == "") { alert("비밀번호를 입력하세요!"); cont.passwd.focus(); } else { cont.action = "view.asp?num=3"; cont.submit(); } } 답 =, #이 필터링 됨 ' or '1' < '2' -- 대충 이걸로 우회해주면 키가 나오네요 auth_key is suninatastopofworld! wkdrnlwnd 인증 이 두개로 때려도..
써니나타스 #5번 풀이 암튼 단순해서 좋네요 힌트도 확인하고 뭐 체크를 눌러도 별 반응이 없네요... 뭐징 소스 보니까 누가봐도 eval함수에 JS난독화 그래도 뭐 eval계열은 그냥 툴돌리면 간단하게 보기 편해지니까 좋죠 뭐 ㅋㅋ https://www.strictly-software.com/unpack-javascript Javascript Unpacker Tool - Strictly Software This Javascript unpacker tool has now been upgraded to allow it to unpack multiple eval statements. So if your packed code has itself been packed a few times it will loop through until..
써니나타스 #4번 풀이 보니까 왠 포인트랑 우리 웹클라이언트 정보가 나오네요. 힌트도 단순하네요 더보기 그냥 버프슈트로 프록시 걸고 유저-에이전트 정보 SuNiNaTaS로 수정하고 포인트 50넘기면 됩니다. 20까지는 그냥 올라가는 것 같구 그 뒤로 이것저것 만졌는데 포인트는 단번에 올라가지가 않네요 뭐징... 뭔가 못건드린 데이터가 있는 것 같은데 30번 정도야 그리 큰 숫자도 아니라 그냥 반복으로 때웠습니다. 플래그 획득~