Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- Python
- 문제 풀이
- sql injection point
- 모의해킹
- sql injection
- FridaLab
- 웹개발
- 웹 개발
- csrf
- blind sql injection
- 게시판 만들기
- union sql injection
- file upload
- lord of sql injection
- Error based sql injection
- Los
- 웹 해킹
- MySQL
- php
- 증적 사진
- 과제
- CTF
- 로그인페이지
- JS
- 세션
- XSS
- 로그인
- cookie 탈취
- 보안 패치
- 보고서
Archives
- Today
- Total
Almon Dev
[Lord of SQL Injection] zombie_assassin 문제 풀이 본문
zombie_assassin 문제 풀이
zombie_assassin 문제
문제 분석
문제 목표
id와 pw 파라미터를 이용해 삽입된 SQL 쿼리의 결과가 존재할 경우, solve("zombie_assassin") 함수가 실행됩니다. 이 함수는 문제를 성공적으로 해결했을 때 호출되는 것으로 보이므로, 이 문제의 목표는 id와 pw 파라미터를 활용해 SQL 인젝션을 성공시키는 것입니다.
$query = "select id from prob_zombie_assassin where id='{$_GET[id]}' and pw='{$_GET[pw]}'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id']) solve("zombie_assassin");
입력 제한
id와 pw 파라미터 모두 addslashes 함수를 이용해 \, ', "등의 특수문자를 이스케이프 처리를 하고 있으며, 이후 strrev 함수로 문자열이 반대로 뒤집어집니다.
$_GET['id'] = strrev(addslashes($_GET['id']));
$_GET['pw'] = strrev(addslashes($_GET['pw']));
if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~");
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
취약점 분석
addslashes 함수로 ', ", \가 이스케이프 처리되어 문자열 탈출이 힘들어 보이지만, 이후 strrev 함수로 문자열이 반전되기 때문에 문자열 탈출이 가능해지고, 이를 통해 SQL Injection이 가능합니다.
id 파라미터에 "(큰따옴표)를 삽입한 경우 addslases 함수를 통해 \"로 이스케이프 처리되고, strrev 함수를 통해 "\로 반전됩니다. 이 값을 쿼리에 삽입하면 "select id from prob_zombie_assassin where id='"\' and pw='{$_GET[pw]}'" 형태가 되어 '가 \'로 이스케이프 처리되기 때문에 id의 문자열이 정상적으로 종료되지 않게 됩니다. 그 결과 pw 파라미터에 입력한 값이 문자열을 벗어나 SQL 로직에 영향을 줄 수 있어 SQL Injection이 가능합니다.
문제 풀이
1. id 파라미터에 "(큰따옴표)를 삽입하여 문자열이 탈출된 것을 확인합니다.
=> 쿼리가 select id from prob_zombie_assassin where id='"\' and pw='{$_GET[pw]}' 형태
2. pw 파라미터에 or 1=1#이 되도록 문자열을 반전해서 삽입하여 문제풀이를 완료합니다.
=> pw 파라미터 : %231=1 ro
'웹 해킹 > Lord of SQLi' 카테고리의 다른 글
[Lord of SQL Injection] xavis 문제 풀이 (0) | 2025.05.08 |
---|---|
[Lord of SQL Injection] nightmare 문제 풀이 (0) | 2025.05.03 |
[Lord of SQL Injection] succubus 문제 풀이 (0) | 2025.04.30 |
[Lord of SQL Injection] assassin 문제 풀이 (0) | 2025.04.28 |
[Lord of SQL Injection] giant 문제 풀이 (0) | 2025.04.24 |