본문 바로가기
개인 공부/WEB

[웹해킹] LOS 11 - (Golem)

by 아메리카노와떡볶이 2021. 6. 19.
728x90
Lord of sql injection - golem 풀이

los 11번 Golem에 대한 풀이 입니다.

문제 접근

먼저 필터링을 살펴보면 이전 문제들에서는 보이지 않던 필터링이 보입니다.

or , and,  substr,  = 에 대한 필터링이 걸려있습니다. 이것에 주의하여, admin의 pw를 알아내야하는데 이전의

los4번과 los7번 문제에서 사용했던 방법과 동일하게 브루트 포싱을 이용해서 문제를 해결 할 수 있습니다.

https://man-25-1.tistory.com/84

 

[웹해킹] LOS 7 - (Orge)

Lord of sql injection - Orge 풀이 los 7번 Orge에 대한 풀이 포스팅입니다. 역시나 6번과 마찬가지로 or 과 and 에 필터링이 걸려있습니다. 문제 접근 제가 색칠한 라인을 살펴보면, 이 문제는 4번 orc문제와.

man-25-1.tistory.com

 

1. pw의 길이구하기

 $query "select id from prob_golem where id='guest' and pw='{$_GET[pw]}'"
  echo 
"<hr>query : <strong>{$query}</strong><hr><br>"
  
$result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if(
$result['id']) echo "<h2>Hello {$result[id]}</h2>";

이전 문제에서는 길이를 구하기 위한 sql 쿼리를 

?pw= ' || id='admin' && length(pw) = (any number) %23 으로 구했었습니다. 이번에는 or , and,  substr,  = 에 대한

필터링이 있기때문에

?pw=0'||id like 'admin' %26%26length(pw) like (any number) %23 으로 변환합니다.

전에 이미 작성 해둔 코드가 있기때문에, parameter로 들어가는 url 변수만 필터링에 걸리지않게 수정해준 뒤 실행합니다.

이번에도 비밀번호의 길이는 8로 확인됐습니다.

 

2. password 구하기

password를 구할때 주의해야할 점은 substr함수에 대한 필터링이 걸려있으므로, mid 함수로 대체해서 사용해야한다는 것입니다. 그 이외는 위의 방식과 동일하게 필터링을 피해가면 됩니다.

브루트포싱결과 비밀번호는 8자리 '77d6290b'로 확인됐습니다.

clear 성공 !

728x90

'개인 공부 > WEB' 카테고리의 다른 글

[웹해킹] LOS 13 - (Bugbear)  (0) 2021.06.19
[웹해킹] LOS 12 - (Darkknight)  (0) 2021.06.19
[웹해킹] LOS 10 - (Skeleton)  (0) 2021.05.30
[웹해킹] LOS 9 - (Vampire)  (0) 2021.05.30
[웹해킹] LOS 8 - (Troll)  (0) 2021.05.30

댓글