본문 바로가기

Wargame21

Dreamhack CTF Season 3 Round #4 (🌱Div2) 1. Flying Chars 풀이: [Disable JavaScript] > Style 제거 2. ROT128 풀이: 파이썬으로 복호화 [코드] hex_list = [(hex(i)[2:].zfill(2).upper()) for i in range(256)] with open('encfile', 'r', encoding='utf-8') as f: enc_list = f.read() enc_list = [enc_list[i:i+2] for i in range(0, len(enc_list), 2)] plain_list = list(range(len(enc_list))) for i in range(len(enc_list)): hex_b = enc_list[i] index = hex_list.index(hex_b.. 2023. 7. 24.
[LOS] 20번 dragon 문제 풀이 https://los.rubiya.kr/ 레벨 20번 dragon 풀이 제시문제 ※ url에 ?를 쓰면 query를 날릴 수 있다. 쿼리문을 살펴보면 해당 문제는 id=guest 뒤에 # 문이 있어 계속해서 쿼리문을 집어넣어도 다 주석처리안에 들어가게 된다는 문제점이 있었다. 처음에 떠올린게 \n(%0a)와 ;%00(Null) 처리였는데 둘다 해서 안되는게 참 이상했다. 삽질을 몇일간 하다가 하도 이상해서 LOS 주석 \n 우회를 검색하니까내가 놓친게 \n가 아닌 %0a로 삽입했어야하는 것 ,,,, ㅠㅠ 요게 아니라, 이렇게 풀어야한다 ! 2022. 2. 3.
[LOS] 19번 xavis 문제 풀이 https://los.rubiya.kr/ 레벨 19번 xavis 풀이 제시문제 ※ url에 ?를 쓰면 query를 날릴 수 있다. 이번 문제는 특이하게 id가 admin으로 적용되어져있다. 일단 Addslash가 Hello admin 출력뒤에 우회되도록 붙여졌으니 Hello admin을 출력하기 위해 쿼리를 생성해본다. 정상적으로 출력문이 뜨자 뒤이어 1=1, 1=0 참과 거짓이 판별되는 문제임을 알게되었고 늘 그랬듯이 자동화문으로 Blind injection을 시도해보았다. 이제 자동화 코드를 돌려본다. 그러면 문자열 길이가 12개라고 뜬다. 그리고 나서 1부터 127로 이진탐색을 할 경우 127까지 계속 Hello admin이 뜨는것을 볼 수 있는데 숫자를 아예 높여도 Admin이 뜬다. 50000에.. 2022. 1. 25.
[LOS] 18번 nightmare 문제 풀이 https://los.rubiya.kr/ 레벨 18번 nightmare 풀이 제시문제 ※ url에 ?를 쓰면 query를 날릴 수 있다. 문제를 보면 일단 6글자 이상 사용시 No Hack문구가 뜨고 preg_match로 주석 # -- 이 우회되었음을 알 수 있다. 3일을 삽질만 하다가 나도 힌트를 얻어 겨우 풀었으니 힌트를 참고해서 더 도전해보길 바란다. (False = False) = True ---------------------------------------------------------------------------------------------------------------- 주석을 우회하기 위해 앞의 두 방법을 제외한 ;00%, /**/ 중 ;00%를 사용하고 pw=(' ')=0;0.. 2022. 1. 23.
[LOS] 17번 zombie_assassin 문제 풀이 https://los.rubiya.kr/ 레벨 16번 succubus 풀이 제시문제 ※ url에 ?를 쓰면 query를 날릴 수 있다. 쿼리문을 통해 유추할 수 있는 것들 1. strrev() 함수로 문자열을 뒤집는 함수가 id와 pw 피라미터를 감싸고 있다. 2. pregmatch로 prob _ . 등이 필터링 되어있다. 3. Addslash로 인해 ' " \ NUL 문자가 \로 필터링 된다. 16번 문제처럼 id='\' pw='' or 1 형식으로 우회할 수 있는데 id 파라미터에 \를 입력하면 addslash 함수를 받아 \\가 된다. 그러므로 NULL을 필터링 시켜 \로 만들어보도록 한다. streev(addslash()) = Streev(addslash(%00)) = Streev(\ ) = id.. 2022. 1. 21.
[LOS] 16번 succubus 문제풀이 https://los.rubiya.kr/ 레벨 16번 succubus 풀이 제시문제 ※ url에 ?를 쓰면 query를 날릴 수 있다. ' 우회기법 중에 Preg_match 처럼 단순 필터링일시 값에 \를 넣어주면 본래 있던 쿼리문의 '를 먹어버려 \' and ~ 이후의 싱글 쿼터까지의 문이 모두 문자열 취급이 된다. id='\' and pw =' or 1 -- 이런 식으로 우회가 가능하다. 참고로 #는 해당 문제에서 쓰일 수 없다. 2022. 1. 19.
[LOS] 15번 assassin 문제 풀이 https://los.rubiya.kr/ 레벨 15 assassin 문제 풀이 제시 문제 ※ url에 ?를 쓰면 query를 날릴 수 있다. like문 우회에 ' 싱글 쿼터 사용이 불가능하기 때문에 %를 이용해야한다고 생각해서 접근하였다. 처음에 모든 문자를 % % 해당 부분 사이에 넣었을 때 모두 Guest 계정으로만 로그인이 되어서 삽질을 한시간정도 했는데, admin계정의 비밀번호와 guest 계정의 비밀번호가 일치하나? 라는 의문을 품었는데 초심으로 돌아가 한글자씩 알아보기로 마음을 먹었다. 0% -> 09% 이런 식으로! 그리고 입력끝에 Clear문을 얻을 수 있었다. 두 비밀번호를 교묘하게 비슷한 형태로 만들어놓은 듯 하다 ㅠ-ㅠ 2022. 1. 19.
[LOS] 14번 giant 문제 풀이 https://los.rubiya.kr/ 레벨 14번 giant 풀이 제시문제 ※ url에 ?를 쓰면 query를 날릴 수 있다. 문제를 보면 shit라는 인자를 받아서 selct 문의 from절에 삽입되는 모양새인데, 인자를 받는 곳에 공백이 없어 from 테이블명이 제대로 실행되지 못하고 있는 것을 확인할 수 있다. 공백 우회를 위해 기존에 사용하던 %20 %09 /**/ %0a + 등은 사용이 되지않고 %0b을 사용했을 때 특수 기호와 함께 공백이 우회되는 것을 확인할 수 있었다. (%0c $0a) 2022. 1. 19.
[LOS] 13번 bugbear 문제 풀이 https://los.rubiya.kr/ 레벨 13번 bugbear 풀이 제시문제 ※ url에 ?를 쓰면 query를 날릴 수 있다. 쿼리문으로 유추할 수 있는 부분 이전 12번 문제에서 변동된 부분으로는 And, Or 이 막혀 || , &&(%26%26) 로 우회하고, like Char()도 in (Char())로 우회해주어야한다. 또한 or이 ord에도 영향을 미쳐 대신 hex()를 사용했다. 자동화 코드 전 필터링 된 부분을 하나하나 우회해 Hello Admin을 먼저 확인한다. 여기서 자동화 코드를 구현할때 원래 %06 등은 파이썬 내에서 받아들여지지않는데 /**/은 공백우회로 파이썬 내에서도 구현 시 문제 없이 가동이 가능하다. 해당 부분을 활용해 문제를 풀어준다. {'pw': '1', 'no'.. 2022. 1. 18.