본문 바로가기
Web/Los

Los - gremlin

by 09337 2020. 7. 15.


 

 

php 코드를 보면, 쿼리문이 실행되었을 때, id의 값이 존재한다면 문제가 풀린다는 것을 알 수 있다.

이 문제를 푸는 방법은 크게 id 값을 변조하는 방법과, pw 값을 변조하는 방법으로 나뉜다.


1. id 값을 참으로 만들어 해결

이 방법은 단순히 참으로만 만드는 것이 아닌, pw 입력 전에 주석처리시켜 pw를 무력화 해주는 것이 포인트이다.

 

이때, URL은 영어나 숫자  등 몇몇 문자를 제외하고는 16진수 값으로 인코딩하기 때문에, #을 입력하면 인식하지 못한다. 따라서 URL 인코딩 코드 값인 %23을 넣어줌으로써 주석처리가 가능해진다.

?id=1%27or%201=1%23

or 1=1 구문을 넣어 id를 참으로 만든 후, %23을 입력해서 pw를 무력화시켜줬다.

 

DB가 서버에 변조된 쿼리 결과를 전송하고, 변조된 페이지 내에 DB 정보를 전송하여 GREMLIN Clear!라는 문장이 나타나 문제가 풀렸다.


2. pw 값을 참으로 만들어 해결

id에 어떤 값이 오든 pw는 참이라는 조건을 넣어주기 때문에 문제는 풀린다.

?pw=1%27or%20%271%27=%271

사실, 파라미터에 id에 아예 값을 입력하지 않고 pw에만 값을 참으로 지정해줘도 풀릴까 궁금했는데 풀렸다.

이유는 모르겠다.

 

이 부분은 php 코드를 좀 더 이해해야 알 수 있을 것 같다.

 

 

'Web > Los' 카테고리의 다른 글

Los - orc  (0) 2020.12.29
Los - goblin  (0) 2020.12.05
Los - cobolt  (0) 2020.12.04

댓글