write-up(web)/los

[LOS] xavis

문제 https://los.rubiya.kr/chall/xavis_04f071ecdadb4296361d2101e4a2c390.php https://los.rubiya.kr/chall/xavis_04f071ecdadb4296361d2101e4a2c390.php los.rubiya.kr 문제풀이 이전 문제들과 비슷하게 blind injection을 통해 pw의 길이와 문자열을 알아내려 했는데, pw 문자열이 출력되지 않았다. pw 한 글자마다 2진수를 출력하여 몇 bit인지 알아내어 어떤 문자가 사용되었는지 알아봤다. 16bit가 사용된 것으로 보아 unicode 인 것 같다. 한 글자마다 hex 값이기 때문에 hex 함수를 이용해 길이와 문자열을 구할 수 있다. - 파이썬 코드 import requests..

write-up(web)/los 2023.01.23

[LOS] dragon

문제 https://los.rubiya.kr/chall/dragon_51996aa769df79afbf79eb4d66dbcef6.php https://los.rubiya.kr/chall/dragon_51996aa769df79afbf79eb4d66dbcef6.php los.rubiya.kr 문제풀이 id=guest’# 기본 쿼리문으로 입력되는 pw 파라미터는 주석 처리된다. 개행문자(%0a)를 이용해 입력되는 값이 주석처리에 의해 무효화되지 않게 해야 한다. select id from prob_dragon where id='guest'# and pw=''%0a and pw='' || id='admin'

write-up(web)/los 2023.01.23

[LOS] nightmare

문제 https://los.rubiya.kr/chall/nightmare_be1285a95aa20e8fa154cb977c37fee5.php https://los.rubiya.kr/chall/nightmare_be1285a95aa20e8fa154cb977c37fee5.php los.rubiya.kr 문제풀이 pw 파라미터를 입력받아 쿼리문에 넣고, 반환값이 존재할 때 문제가 해결된다. 이 때, 입력값의 길이가 7 이상이 되면 안되고, 괄호 사이에 쌓여있으며, 괄호와 주석 문자는 필터링 된다. 괄호는 %28, %29 로, 주석은 ;%00으로 필터링 우회가 가능하다. 아래 공식을 이용하여 문제를 해결할 수 있다. pw=('')=0 : 거짓=거짓 (참) select id from prob_nightmare wh..

write-up(web)/los 2023.01.22

[LOS] zombie_assassin

문제 https://los.rubiya.kr/chall/zombie_assassin_eac7521e07fe5f298301a44b61ffeec0.php https://los.rubiya.kr/chall/zombie_assassin_eac7521e07fe5f298301a44b61ffeec0.php los.rubiya.kr 문제풀이 이전 문제와 동일하게 역슬래시를 이용하여 작은따옴표를 일반문자로 처리해주어야 한다. 작은따옴표는 필터 처리 되어 있으므로, addslashes 함수를 이용한다. addslashes 함수는 작은따옴표, 큰따옴표, 널문자 앞에 역슬래시(\')를 붙여주는데 strrev 함수로 인해 '\ 와 같은 형태가 된다. 이를 이용하여 큰따옴표를 입력하면 아래와 같은 형태가 된다. select id..

write-up(web)/los 2023.01.22

[LOS] assassin

문제 https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php los.rubiya.kr 문제풀이 like 구문은 정규식 사용이 가능하다. % : 0개 이상의 어떠한 문자열 _ : 밑줄 개수 만큼 문자가 존재 [] : 대괄호 안의 지정된 문자 범위 또는 문자가 존재 [^] : 대괄호 안의 지정된 문자 범위 또는 문자 외의 문자가 존재 파이썬 코드를 작성해서 admin이 출력될 때를 찾았는데, 계속 출력되지 않았다. 아마도 guest의 pw와 겹치는 부분이 존재해서 그런 것 같다. guest와 중복되는 ..

write-up(web)/los 2023.01.22

[LOS] giant

문제 https://los.rubiya.kr/chall/giant_18a08c3be1d1753de0cb157703f75a5e.php https://los.rubiya.kr/chall/giant_18a08c3be1d1753de0cb157703f75a5e.php los.rubiya.kr 문제풀이 shit 파라미터의 길이는 2 이상이 되면 안되고, +, (), \n, \t 등 모두 필터링 되어 있다. 2023.01.22 - [programming/web] - 필터링 우회 필터링 우회 - 공백 문자 우회 \n (line feed) 개행 문자 %0a \t (tab) 탭 문자 %09 \r (carriage return) 커서를 줄의 맨 앞으로 이동시키는 개행문자 %0d /**/ (주석) /**/ () (괄호) ()..

write-up(web)/los 2023.01.22

[LOS] darkknight

문제 https://xss-game.appspot.com/level6 https://xss-game.appspot.com/level6 Oops! Based on your browser cookies it seems like you haven't passed the previous level of the game. Please go back to the previous level and complete the challenge. xss-game.appspot.com 문제풀이 id가 admin인 pw를 찾아서 pw 파라미터에 넘기면 문제가 해결된다. 이전 문제와 동일하게 = 문자는 like로, substr 문자는 left/right로 대체한다. 문자열 표현은 16진수로, ascii는 ord로 대체한다. - ..

write-up(web)/los 2023.01.22

[LOS] golem

문제 https://los.rubiya.kr/chall/golem_4b5202cfedd8160e73124b5234235ef5.php https://los.rubiya.kr/chall/golem_4b5202cfedd8160e73124b5234235ef5.php los.rubiya.kr 문제풀이 blind injection을 통해 id가 admin인 pw의 길이와 문자열을 알아낼 수 있다. = 문자는 like로 우회할 수 있고, substr은 left/right로 우회 가능하다. - pw 길이 select id from prob_golem where id='guest' and pw=''||length(pw) like 8%26%26id like 'admin' - pw 문자열 select id from prob..

write-up(web)/los 2023.01.22