2021-06-06 · 1

2번 cobolt write up

securitypwnable

이 글은 작성된 지 2년이 넘었어요. 내용이 오래됐을 수 있어요.


LOS란?

이 LOS(Lord Of SQLInjection)은 SQLInjection를 실습할 수 있는 웹 해킹 실습 사이트입니다.

SQL Injection에 관한 건 [해킹/웹 해킹] - SQL Injection 이 글을 읽어주세요~ㅎ

[해킹/웹해킹] - [LOS] 1번 gremlin write up <- 1번 문제

풀이 과정

1~6번째 줄까지는 전 1번 내용과 똑같기에 넘어가겠습니다.

$query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')";

1번과 달라진 쿼리문입니다. pw에 md5라는 것이 추가된것이 끝인거 같다. 핵심은 여기가 아닌 10~11 줄입니다.

if($result['id'] == 'admin') solve("cobolt");
elseif($result['id']) echo "<h2>Hello {$result['id']}<br>You are not admin :(</h2>"; 

이제 전과 달라진 점은 result['id']값이 'admin'이 되어야 지만 풀리는 것같다. 그냥 1번 문제처럼 풀면 아래 elseif문이 작동되는 것 같습니다. 확인해 볼까요? 1번과 똑같이 'or 1=1 %23를 id값에 넣어보도록 하겠습니다.

예상대로 elseif문이 작동되는 것을 확인할 수 있습니다. 그렇다면 어떻게 해야할까요?

매우 간단합니다 id값만 admin으로 만들어 주면 되요! id=admin' %23 이런식으로 입력하면 id값이 admin으로 바뀌고 뒤에 #를 입력해주어서 뒤를 주석처리 해 주었습니다.

이렇게 해결하였습니다!! 2번 문제 수고하셨습니다.


원문: tistory — 2021-06-06 발행, 이 블로그로 이전됨.

댓글

댓글을 삭제할까요?

관련 글

2번 cobolt write up · 나봄하랑