이번 포스팅은 11단계, 골렘 풀이 포스팅이다.
드디어 발표 두개를 무사히 다 끝냈다. 마음이 홀가분한 상태로 하는 공부는 기분이 좋다!
과제를 끝냈으니 즐거운 기분으로 포스팅을 시작해 보자!
코드부터 살펴보겠다.
자아,,, 이번에도 블라인드 인젝션이다.
주요한 코드만 뽑아서 다시 보자.
preg_match가 우리가 쓰면 안될 것을 알려준다.
or 와 and, 그리고 우리가 문자열을 잘라낼때 쓰던 substr, = 이 금지당했다!
=이 금지당하면 like로 우회 가능하다.
이것은 저번 문제에서도 사용했던 것인데, 기억이 나지않는다면
10단계 스켈레톤 풀이를 다시 보고오길 바란다.
substr은 무엇으로 우회해야할지 잘 모르겠어서 구글링했다.
두가지가 나타난다.
1. substring
2. mid
이 두가지 메소드를 이용하여 문제를 해결해보자!
?pw=' || id like 'admin' %26%26 length(pw) like 8%23
을 입력해보자.
이때 %26%26은 &를 나타내기 위해 사용된다.
Hello admin 이 출력된다. 이로써 비밀번호의 길이는 8이라는 것을 알 수 있다.
이후, mid 또는 substring 을 이용해서 한글자씩 알아내보겠다.
?pw=' || id like 'admin' %26%26 substring(pw,1,1) like 8%23
substring을 사용해서 pw의 첫글자를 알아낼 수 있었다.
다음 글자도 알아보자!
이번에는 mid를 사용해 두번째 글자 또한 8이라는 것을 알아냈다.
여러번 사용해보니 substr 과 mid, substring 이 세가지 메소드들이 어떤 차이를 가지고 있는지 궁금해진다.
아시는 분은 댓글로 알려주시면 감사하겠습니당
다시 세번째 글자를 알아내러 가보자!
세번째 글자는 0~9 사이에서 없어서 문자열도 대입해보았다.
문자를 집어넣을때는 반드시 싱글쿼터(') 사이에 문자를 넣어야한다.
다음 네번째 글자!
네번째 글자는 3이었다.
다음 다섯번째 글자!
여섯번째 글자로 넘어가겠다.
역시 노가다는 힘들다.
빨리 파이썬을 좀 배워서 나도 남들처럼 파이썬으로 블라인드 인젝션을 격파하고싶다.
아직 난 갈 길이 먼 것 같다.
마지막 8번째 글자로 가보자!
이렇게 한글자 한글자 알아내 총 비밀번호는 88e3137f 라는 것을 알아내었다.
이제 이것을 대입해보자!
골렘 클리어~!
블라인드 인젝션은 문제를 푸는게 조금 노가다라 손가락이 아프다.
포스팅하기 조금 힘든 유형인 것 같다.
'Archive > Hacking' 카테고리의 다른 글
Lord of SQL Injection 13단계, bugbear풀이 (0) | 2019.11.07 |
---|---|
Lord of SQL Injection 12단계, darkknight풀이 (0) | 2019.11.07 |
Lord of SQL Injection 10단계, skeleton풀이 (0) | 2019.11.05 |
Lord of SQL Injection 9단계, vampire풀이 (2) | 2019.10.31 |
Lord of SQL Injection 8단계, troll풀이 (0) | 2019.10.30 |