본문 바로가기

 

59번 문제에요.

배점은 200점, 분야는 DB에요.

 

 

회원가입과 로그인이 있네요.

소스를 볼게요.

 

 

 

lv 'admin' 인 값을 집어넣은다음

그 값으로 로그인을 하면 되는군요.

 

코드를 봤을때 인젝션 포인트는 가입부분의 phone 인거같은데

 

공통으로 addslashes() 가 붙으며

phone 에는

admin 0x # hex char ascii ord select

가 필터링되고

20글자 이상이어도 걸러져요.

id 에는

admin

이 필터링되네요.

 

 

 

1q2w3e4r / 1234

로 가입을 하고

 

 

1q2w3e4r / 1234

로 로그인을 하면

 

 

로그인이 되죠.

 

phone 부분에 1,'admin')#

이 들어가게 하면 되는데

#이 필터링되니 -- 로 주석처리하고

' 를 못쓰는데 16진수로 우회를 하면 0x가 필터링되고

2진수를 사용하기에는 글자수 제한에 걸려요.

 

 

그러니 id 를 nimda 로 가입을 한다음

reverse(id)

1,'admin')--

이 되게 하고

 

 

nimda / 1

로 로그인을 해보면?

 

 

빠밤!

 

문제가 풀렸네요.

댓글