write-up(web)

[LOS] iron_golem

문제 https://los.rubiya.kr/chall/iron_golem_beb244fe41dd33998ef7bb4211c56c75.php https://los.rubiya.kr/chall/iron_golem_beb244fe41dd33998ef7bb4211c56c75.php los.rubiya.kr 문제풀이 이전 문제들과 다르게 쿼리문이 잘못되었을 때 에러문만 출력된다. 이를 이용하여 if문과 잘못된 쿼리문으로 blind injection을 시도하여 pw의 길이와 문자열을 추측할 수 있다. (error based sql injection) - 파이썬 코드 import requests cookie={'PHPSESSID':''} url="https://los.rubiya.kr/chall/iron_golem..

write-up(web)/los 2023.01.24

[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