728x90
https://los.rubiya.kr/gate.php
사이트를 이전한 듯 하다!
Gremlin
source code
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
- '_' , '.' , '\' 을 사용할 수 없도록 조건이 걸려있다.
$query = "select id from prob_gremlin 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("gremlin");
- GET 방식으로 id 변수와 pw 변수에 값을 받아올 수 있도록 되어있다.
이러한 경우에는 "/~.php?id=hello&pw=world"와 같은 방식으로 id와 pw에 값을 줄 수 있다.
- query 문을 위에 보이는 것처럼 출력한다.
- $result 는 $db 에 $query를 저장하고 mysql에 저장한 레코드를 배열의 형식으로 리턴한 결과를 저장한다.
- 즉, $result는 일종의 배열 형태인 것이라고 생각한다.
- $result의 'id' 값이 TRUE일 때 문제를 해결할 수 있다.
solution
id=1' or 1=1 %23
- '%23'은 '#'의 기호로, 이후의 부분은 주석 처리 해버린다.
- id의 값으로 1을 넣고 작은 따옴표로 닫아버린다.
- or 1=1 으로 id에는 언제나 True 값이 들어갈 수 있도록 한다.
더보기
SQLinjection을 이제 막 배워서 설명을 분명하게 하지 못하겠네요ㅜ.ㅜ
SMALL
'Web > Web Hacking (Wargame)' 카테고리의 다른 글
[Dreamhack] Carve Party (0) | 2022.04.24 |
---|---|
[HackCTF] hidden (0) | 2021.08.13 |
[HackCTF/Web] 1번. / (0) | 2021.08.09 |
[LOS] 3. goblin (0) | 2021.08.07 |
[LOS] 2. cobolt (0) | 2021.08.07 |