일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Lord of SQL Injection
- 1819 (HY000):
- mocOS
- sqli
- ModuleNotFoundError: No module named ‘requests’
- utmp
- blind SQLi
- 2002(HY000)
- SQLi wargame
- XAVIS
- M2
- LOS 5번
- goblin 3번
- str_replace함수
- 가상머신 os
- 우분투
- sql injection
- docker compose
- Error Based SQL Injection
- Union SQL Injection
- Lord of SQLinjection
- btmp
- los.rubiya.kr
- Python requests 설치
- MySQL
- ubuntu
- UTM
- SQL i
- No module named ‘requests’
- Kail Linux
- Today
- Total
klaus
[Lord of SQL Injection] Gremlin 1단계 본문
워게임 중 SQL INJECTION 관련 문제를 푸는 것입니다.
노말틱님이 추천해주신 워게임 중 하나입니다.던전의 몬스터를 점령(?)하는 문제인듯 합니다!!!
문제 하나 하나 코드를 확인해보고 답을 찾아가는 식으로 작성하였습니다.
0. Gremlin!
그렘린.... 하면 영화가 생각이 납니다.
어렸을 때 TV에서 나왔던... 착한 그렘린과 나쁜 그렘린이 대립하는 내용이였던 것 같은데.. ㅎㅎ
잡소리는 여기까지하고! 문제를 풀어보겠습니다.
1. 문제 - 01
처음 문제의 답을 기입하는 곳을 찾지못해 재부팅도 해보고 웹브라우저도 사파리에서 크롬으로 변경도 해보고 별짓을 다 해보았지만
문제 코드를 보니... GET 방식으로 URL을 전달한다는 점을 30분만에 알게 되었다....(사실 1시간.....바보인가 ㅠㅠ)
코드 분석
DB와 연결( $db = dbconnect();)하는 부분 아래부터 확인해보겠습니다.
if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~");로 작성되어 있습니다.
해당 문구는 필터링이라고 생각하면 됩니다.
preg_match($pattern, $subject, $matches)로 작성되며 위코드의 경우 해석해보면
/prob
_
.
(
)
id에서 5가지의 표현을 검색합니다. (TMI 검색 결과가 있다면 1, 없으면 0의 값을 반환)
GET 방식으로 id 값을 확인하여 매칭되는 데이터가 있으면 exit 한다는 의미입니다.(= 필터링)
그럼 사용가능한 방법은 무엇일까요?
기본적인 방법으로
#,' " 등이 있습니다.
그 다음줄은
$query = "select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'";
SQL 쿼리문으로 식별/인증 동시하는 것으로 보입니다!!!!!
if($result['id']) solve("gremlin");
구문을 보면 id값이 존재하면 크렘린 문제는 풀리는 것을 알 수 있습니다.
※ admin과 같은 특정 아이디로 로그인하는 문제가 아닙니다.
그럼 아이디 부분'{$_GET[id]}' 에 구문을 맞춰 id' or 1 = 1 #을 사용하여 뒤 구문을 날려 주시면 됩니다.
$query = "select id from prob_gremlin where id=' ' or 1=1 #' and pw='{$_GET[pw]}'";
와 같은 구문으로 작성이 가능 합니다.
그럼 이제 URL에 ' or 1=1 # 을 넣어 주면 됩니다. 다만, url 인코딩하여 값을 작성해야합니다.
입력된 URL은
?id=%27%20or%201%3D1%20%23
[결과]
참조
- 노말틱 취업반 3기 수업 내용 및 보고서
- 정규 표현식의 개념(preg_match) http://www.tcpschool.com/php/php_regularExpression_concept
- URL Decoder/Encoder https://meyerweb.com/eric/tools/dencoder/
'모의해킹 > Wargame' 카테고리의 다른 글
[Lord of SQL Injection] darkelf 6단계 (0) | 2022.12.05 |
---|---|
[Lord of SQL Injection] wolfman 5단계 (0) | 2022.12.03 |
[Lord of SQL Injection] ORC 4단계(feat. blind based SQLi) (0) | 2022.11.26 |
[Lord of SQL Injection] goblin 3단계 (0) | 2022.11.21 |
[Lord of SQL Injection] Cobolt 2단계 (0) | 2022.11.20 |