One_Blog

los - succubus 풀이 본문

웹해킹

los - succubus 풀이

0xOne 2023. 2. 27. 22:08
728x90

 

[소스코드]

소스코드는 다음과 같다.



천천히 코드를 분석해보자면, id와 pw를 사용자로부터 넘겨받고, '가 입력되면 필터링한다.

 

그리고 id와 pw값을 SQL Query문에 집어넣고,

 

Query문에 대한 값이 존재하면 문제를 클리어 시켜준다.

 

처음에 문제를 마주했을 땐,



이게 왜 어려운거지?라는 생각을 했는데....

 

곰곰히 생각해보니 어떻게 풀어야할지 감이 오질 않았다.

 

분명 어려운 문제는 아닌 거 같은데...라고 멍 때리며

 

문제 풀이법을 생각하던 중, 기적같이 \가 떠올랐다.

 

\를 사용하면 Query문에 있는 '를 SQL의 특수기호가 아닌 그저 하나의

 

문자로 만들 수 있기에, '없이도 SQLi를 성공시킬 수 있을 거라 믿었다.

 

id값에 \를 줌으로써 

 

' and pw=부분을 Query문이 아닌 문장으로써 인식되게 만들 수 있었다.

 

그리고 pw에 or 1=1 #을 주게 되면,

 

id='\' and pw=' or 1=1 # '이 됨으로써 Query문을 참으로 만들 수 있었다.

 

SQL Query문에서 id값은 \' and pw=가 되는 것이고,

pw의 값은' or 1=1 # 이 되는 것이다.

 

URL에서 #을 넣어도 SQL문에 삽입되지 않기 때문에, 내가 URL 인코딩을 시켜

 

pw에 or 1=1 %23이라는 값을 주었다.

 

오늘도 글 읽어주셔서 감사합니다.

 

틀린 정보가 있다면 디스코드 One#5371로 연락 또는 댓글에 써주시길 부탁드립니다!