728x90
Lord of sql injection - Troll 풀이 |
los 8번 troll에 대한 풀이입니다.
preg_match를 살펴보면, 이번에는 싱글쿼터와 admin에 필터링이 걸려있습니다. 이 점을 참고해서 문제를 해결해 보겠습니다.
문제 접근 및 풀이
preg_match를 통해 문자열 패턴을 필터링할때, 대표적인 우회방법 두가지는
1. i 옵션이 없는 경우 대소문자를 바꿔서 우회할 수 있다. [ admin-> aDMiN]
2. Char, hex를 이용해서 우회할수있다. char(97,100,109,105,110),char(0x61636d696e)
따라서 문제를 접했을때 먼저 이 두가지를 확인해야합니다.
<?php include "./config.php"; login_chk(); $db = dbconnect(); if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~"); if(preg_match("/admin/", $_GET[id])) exit("HeHe"); $query = "select id from prob_troll 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("troll"); highlight_file(__FILE__); ?> |
admin에 대한 필터링에서 i option 즉 대소문자구분 상관없이 필터링하지않았기때문에
단순하게 admin 대신 Admin 등으로 우회할 수 있습니다
?id=Admin |
결과
728x90
'개인 공부 > WEB' 카테고리의 다른 글
[웹해킹] LOS 10 - (Skeleton) (0) | 2021.05.30 |
---|---|
[웹해킹] LOS 9 - (Vampire) (0) | 2021.05.30 |
[웹해킹] LOS 7 - (Orge) (0) | 2021.05.30 |
[웹해킹] LOS 6 - (Darkelf) (0) | 2021.05.30 |
[웹해킹] LOS 4 - (Orc) (0) | 2021.05.30 |
댓글