본문 바로가기
Web/Lord of SQL Injection

Lord of SQL Injection 18단계 (nightmare)

by jh117jh 2023. 3. 29.
728x90

이번에 처치할 몬스터는 nightmare!

 

어머... 네일아트 어디서 받으셨어요..?

이번 문제 코드를 보면

이번에는 지금까지 썼던 주석 #이 필터링 되어 있는것이 보인다. 또한 pw의 길이가 6까지 제한되어 있다.

흠흠...

 

일단 주석에 대해 알아보자.

 

주석은 4가지 방법이 있는데

 

1. --

 - 뒤에 반드시 공백이 있어야 정상적으로 주석 처리가 된다.

 - 한 줄만 주석 처리한다.

 

2. # (url encoding - %23)

 - 뒤에 공백이 없어도 정상적으로 처리된다.

 - 한 줄만 주석 처리한다.

 

3. /* */

 - /* */ 사이에 입력시 주석 처리 된다.

 

4. ;%00

 - Null 문자인 %00과 ;이 결합된 주석 처리 문자이다.

 

이 문제에서 #,-,/ 가 필터링 되었으므로 우리가 사용할 수 있는 주석은 4번이다.

 

그럼 일단 pw부분을 참으로 만들고 id 부분을 주석으로 처리해야 문제가 풀릴것 같은데

 

처음엔 pw=('1') = '1' ;%00 and id!='admin' 형태로 참으로 만들라 했으나 길이 제한으로 막혔다.

여기서 좀 헤맸는데 생각해보니 굳이 문자를 넣어서 참으로 만들 필요가 없었다.

pw=('') = 0 ;%00 and id!='admin' 이러면 pw부분이 참이 된다.

글자 수 도 딱맞고 이걸 의도한거 같다.

 

굿굿

 

다음 몬스터 잡으러 가자~!

728x90