본문 바로가기
C. 웹/실습

[LOS] 4번 orc

by E-HO 2017. 8. 3.
728x90

ㅎㅇ


코드를 보니깐 Helllo admin이 나오면 참인 것을 이용하여 pw를 알아내는 

Blind SQL Injection 문제인 것 같다.


먼저 pw의 길이를 알아내기 위해서

?pw=a' or 1=1 or length(pw)<'10 

이런식으로 쿼리를 작성해 


pw가 8자리 인것을 알아내었다.


그리고 이제 substr함수를 이용해서 각각 자리가 무엇인지 알아내야하는데

문자인지 숫자인지 특수문자인지 모르기에

하나하나 하기 귀찮아서 burp suite를 이용하였다.


기본적으로는 

?pw=a' or 1=1 or ascii(substr(pw,1,1))='50

이런 쿼리를 바탕으로 Brute force를 하였다.


payload설정과 Match설정 설명은 생략하겠다..ㅎ 귀찮다


그렇게 Start Attack을 하면


이러한 결과를 얻을 수 있다.

(첫번째 자리는 이것을 돌리기전에 하나씩 대입하며 알아내서 제외하고 돌렸다.)


그런데 이상한 점이 막 답이 한자리에는 하나만이 있어야하는데 막 2개씩 존재한다.

그래서 둘 중 앞에 있는 값으로 한

pw = 294d3844 

를 넣어보니


? 정답이 아니였다.


그래서 3번째 자리와 5번째 자리의 각각 2개의 답이 큰 차이가 없어서 각각 2번째의 답을 넣은

pw =295d5844

를 넣어보니


???

정답

이거 약간 이상한 것 같다.


이상한거 같아서 직접 쿼리문을 두개의 답으로 넣어보면 둘 다 Hello admin이 나오며 잘된다...

왜이럴까


그리고 pw값만 넣는 것이고 quote를 넣지 않기 때문에 addslashes함수는 그냥 낚시인듯 하다..ㅎ




반응형

'C. 웹 > 실습' 카테고리의 다른 글

[LOS] 6번 darkelf  (0) 2017.08.25
[LOS] 5번 wolfman  (0) 2017.08.03
[LOS] 3번 goblin  (0) 2017.08.03
[LOS] 2번 cobolt  (0) 2017.08.03
[LOS] 1번 gremlin  (0) 2017.08.03