본문 바로가기
  • True knowledge exists in knowing that you know nothing. -Socrates-
Study/los

los golem

by intadd 2017. 3. 17.



GOLEM 풀이 입니다.



쿼리를 보면 pw 에 = 와 or and substr 필터링이 걸려있습니다.

or은 || 를 이용해서 우회 

and 는 && 를 이요하면 되는데 url 에서 & 는 다른 get 을 넘길 때 사용하므로 %26으로 바꾸셔서 우회하시면 됩니다.

%26은 쿼리 단으로 들어가서 mysql 에서 핵스를 자동적으로 해석 하기 때문에 상관 없습니다.


?pw=1' || id like 'admin' #






?pw=1' || id like 'admin' %26%26 pw like '8%' #




like 함수를 이용해서 블라인드 인젝션을 수행할 것입니다.

like 함수는 특별하게 정규식이 사용 가능합니다. 


예를 들면 pw like '1%' 이런 식으로 사용하면 pw 에서 1글자만 비교합니다. 계속 해서 '1a%' 이런식으로 이용하면 됩니다. 



이것은 pw 을 길이를 확인하는 것 입니다. length라는 함수를 사용하여 글자 길이를 알 수 있습니다. 한번 해보시면 이해 하실 것 입니다.

length(pw)<8을 하면 Hello admin이 안뜹니다. (<9는 뜸) pw의 길이는 8이 되겠습니다.



python 으로 간단하게 툴을 짜서 돌려 보면서 pw를 추출 할 수 있습니다.


저는 vm 에서 돌렸구여 python3 을 사용 했습니다. 

라이브러리는 requests를 사용했습니다.


python 2.7.x 버전이라면 urllib2를 사용하셔도 무방합니다.

python 3.x   버전이라면 urllib



(제가 직접 짠 코드라서 별로입니다. 공부용으로 사용하세요)


python 2.7.x golem

golem.py


python 3.x 

golem0.py





'Study > los' 카테고리의 다른 글

los bugbear  (0) 2017.04.30
los darkknight  (0) 2017.03.17
los SKELETON  (0) 2016.12.18
los vampire  (0) 2016.12.18
los troll  (1) 2016.12.18

댓글