728x90
Lord of sql injection - Vampire 풀이 |
los 9번 vampire에 대한 풀이 포스팅입니다.
먼저 필터링되는 조건들을 살펴보면 싱글 쿼터 ' 와 admin을 공백으로 치환하는 str_replace 함수가 사용되었습니다.
문제 접근
<?php include "./config.php"; login_chk(); $db = dbconnect(); if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~"); $_GET[id] = strtolower($_GET[id]); $_GET[id] = str_replace("admin","",$_GET[id]); $query = "select id from prob_vampire where id='{$_GET[id]}'"; echo "<hr>query : <strong>{$query}</strong><hr><br>"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("vampire"); highlight_file(__FILE__); ?> |
두개의 필터링 조건을 우회하여, admin 레코드를 반환받으면 되는 문제입니다.
이전 문제처럼 대문자로 우회하는 방법을 막기위해서 strtolower 함수를 통해 입력받은 아이디를 소문자로 변환하는 과정또한 추가 된 것을 볼 수 있습니다.
풀이. 문자열 중간에 새로운 문자열 넣기
문자열 중간에 replace되는 문자열을 넣어서, 실제로 원하는 문자열은 앞과 뒤에 배치하는 형태로 우회하는 방법입니다.
str_replace를 우회하는 대표적인 방법이므로 기억해두는 것이 좋습니다.
?id=adadminmin |
결과
감사합니다.
728x90
'개인 공부 > WEB' 카테고리의 다른 글
[웹해킹] LOS 11 - (Golem) (0) | 2021.06.19 |
---|---|
[웹해킹] LOS 10 - (Skeleton) (0) | 2021.05.30 |
[웹해킹] LOS 8 - (Troll) (0) | 2021.05.30 |
[웹해킹] LOS 7 - (Orge) (0) | 2021.05.30 |
[웹해킹] LOS 6 - (Darkelf) (0) | 2021.05.30 |
댓글