본문 바로가기
Web/Los

Los - goblin

by 09337 2020. 12. 5.

id가 admin이면 풀린다. 그러나 id에는 guest 값이 고정되어있고, no 값만 받게끔 되어있다.


id를 admin으로 만들기

no에는 정수형 값을 받는다. 아무런 값(숫자)을 넣은 후, id 값을 이어서 넣어줄 수 있다.

새로 만들어준 id 값은 파라미터로 보면 no 영역에 입력되기 때문에, ', ",` 등 따옴표가 필터링되어있어서(6번째 줄) 문자열로 인식시킬 수 없다.

우회를 위해 주석처리 #을 %23으로 나타낸 것처럼, '도 %27로 입력해보았으나, 마찬가지로 필터링되어있어서 불가능했다.

 

값을 넘기기 위해서는 해당 값이 문자열이라는 것을 알릴 수 있는 다른 방법이 필요하다.

 

시행착오 1

더보기

처음에는 concat() 함수를 사용해서 값을 전달해줄 수 있나 해봤지만, 안 됐다.

 

시행착오 2

더보기

그래서 다른 방법을 생각해봤다.

아스키코드로 값을 넘기기로 했다.

a = 97

d = 100

m = 109

i = 105

n = 110

 

근데 아스키코드만 단독으로 사용하니 불가능하더라.

 

이번에는 문자열이라고 인식할 수 있게 하기 위해 char() 함수를 사용했다.

char()은 아스키코드 번호를 받아 해당하는 문자열을 리턴해주는 함수다.

 

시행착오 2에서 사용한 아스키코드와 같이 사용했다.

그랬더니 각각의 아스키코드에 맞는 문자열이 반환되어 admin으로 인식되어 문제가 풀렸다.

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

Los - orc  (0) 2020.12.29
Los - cobolt  (0) 2020.12.04
Los - gremlin  (0) 2020.07.15

댓글