본문 바로가기
Wargame/webhacking.kr

webhacking.kr 35번

by morae23 2019. 1. 29.

[SQL Injection]

 

 

35번 문제를 보면 아래와 같이 phone을 입력받고 있다.

 

 



 

 

아래는 index.phps 코드이다.

 

 



 

 

clear하기 위해서는 admin의 ip와 $_SERVER[REMOTE_ADDR]이 일치해야한다.

이 때, 쿼리문을 보면 insert into를 수행하는 것을 볼 수 있다.

우리가 입력한 값인 phone은 values()의 마지막에 들어가는 것을 볼 수 있다.

 

이 점을 이용하여 id는 admim, ip는 본인의 ip로 설정하면 될 것으로 보인다.

 

이 것은 mysql에서 insert into - values - 를 수행할 때 여러개의 value_list를 허용하기 때문에 가능하다.

 

예를 들면,

insert into challenge35_list

values (‘sand’, ‘0.0.0.0’, 1), (‘admin’, ‘1.1.1.1’, 2)

가 되는 것이다.

 

이 내용은 manual을 보면 더 자세히 알 수 있다.

 

 




출처: https://dev.mysql.com/doc/refman/8.0/en/insert.html

 

 




 

 

따라서 위와 같이 작성하여 전송하였으나

query error가 발생한 것을 볼 수 있다.

 

그 원인을 생각해보면 가장 먼저 떠올릴 수 있는 것은

php의magic_quotes_gpc이다.

 

즉 ‘ 때문에 발생한 것으로 추측된다.

따라서 ‘ 을 사용하지 않고 char()를 이용하여 전송을 해보았다.

 

magic_quotes_gpc에 대한 자세한 설명은 php manual에서 알 수 있다.

 


 



출처: http://php.net/manual/en/security.magicquotes.what.php

 


 



 

 

따라서 위와 같이 char()를 이용하여 전송하면

clear할 수 있다.

 


 



'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 2번  (0) 2019.01.29
webhacking.kr 8번  (0) 2019.01.29
webhacking.kr 32번  (0) 2019.01.29
webhacking.kr 48번  (0) 2019.01.29
webhacking.kr 41번  (0) 2019.01.29

댓글