[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 |
댓글