가보자고..

이번엔 조건이 더 길어졌다 이 역시 어렵지 않다.

  include "./config.php"; 
  login_chk();

음 어떤 설정파일이 있는데 뭔지 모르지만.. login_chk()로 로그인 검사를 하는 것 같다.

그래서 중요한 포인트는 이전문제와 다르게 id만 검사하는 게 아니라 pw도 검사할 것 같다.

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

$result = @mysqli_fetch_array(mysqli_query($db,$query));

결정적인 쿼리문은 위와 같다.

이전 문제와 다른 점은 pw 파라미터 값을 받을 때 그냥 받지 않고 md5로 암호화를 한다. 

그리고 쿼리를 실행

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

id 값이 admin이면 풀리는 문젠데,

나같이 단순하게 생각하는 사람들을 위해 elseif 를 둔 듯 ㅋ

?id=admin' or 1=1 # 한다고 해서 풀릴리가 없다.

?id=admin' or 1=1 # 하면 위와 같은 결과가 나온다. 

더 생각해봐야 한다.

pw도 입력값으로 넣어야 한다. 단 id와 pw가 올바른 값으로 서로 쌍이 맞아야 하는 조건은 없다. 걍 pw에 어떤 값이 들어오면 되는 것 같다.

?id=admin' or 1=1 and pw=md5(' ')#

이러면 뒤에 pw가 false여도 앞에 or 1=1 때문에 전체가 참이 된다. 

이렇게 어렵게 생각했는데.....

 

그냥 id=admin' #

해줘도 됨..

으잉? solve!!!!!

'WEB > Lord of SQLinjection' 카테고리의 다른 글

[LOS] step.6 darkelf 풀이  (0) 2023.06.12
[LOS] step.5 wolfman풀이  (0) 2023.06.12
[LOS] step.3 goblin 풀이  (0) 2023.06.12
[LOS] step.4 orc 풀이  (0) 2023.06.12
[LOS] step.1 GREMLIN 풀이  (0) 2023.05.24

+ Recent posts