728x90
Lord of sql injection - golem 풀이 |
los 11번 Golem에 대한 풀이 입니다.
문제 접근
먼저 필터링을 살펴보면 이전 문제들에서는 보이지 않던 필터링이 보입니다.
or , and, substr, = 에 대한 필터링이 걸려있습니다. 이것에 주의하여, admin의 pw를 알아내야하는데 이전의
los4번과 los7번 문제에서 사용했던 방법과 동일하게 브루트 포싱을 이용해서 문제를 해결 할 수 있습니다.
https://man-25-1.tistory.com/84
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 |
댓글