본문 바로가기
개인 공부/WEB

[웹해킹] LOS 2 - (Cobolt)

by 아메리카노와떡볶이 2021. 5. 29.
728x90
Lord of sql injection - Cobolt 풀이

먼저 php문을 살펴보겠습니다.

1번 문제와 동일하게 필터링조건이 걸려있고, 문제 자체도 유사해보입니다.

 $query "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')"
  echo 
"<hr>query : <strong>{$query}</strong><hr><br>"
  
$result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if(
$result['id'] == 'admin'solve("cobolt");

쿼리문을 살펴보게되면, pw에 해쉬함수가 추가된 것을 확인할 수 있습니다. 그리고 이번에는 1번 문제와 다르게

단순히 id가 존재하는지에 대한 조건이 아니라, id가 admin일때만 solve()를 동작시킬 수 있습니다.

따라서 1번 문제를 통해 2번 문제에 대한 힌트를 얻어보면, 1번에서는 id=1' or 1=1 # 을 통해 pw에 대한 검사를 주석처리해버렸습니다. 

따라서 이번에는 admin의 id가 필요하므로 id=admin '# 을 통해 뒤의 구문을 다 주석처리해버리면, admin의 id를 select해 올 수 있습니다.

그렇게 admin 계정을 select 한다면, solve() 동작을 위한 조건문이 true가 되고 문제를 해결할 수 있습니다.

따라서 기억해야할 핵심은 # 주석처리를 통한 조건부 무력화 방법이라고 생각할 수 있습니다.

 

결과

 

728x90

'개인 공부 > WEB' 카테고리의 다른 글

[웹해킹] LOS 6 - (Darkelf)  (0) 2021.05.30
[웹해킹] LOS 4 - (Orc)  (0) 2021.05.30
[웹해킹] LOS 3 - (Goblin)  (0) 2021.05.29
[웹해킹] LOS 1 - (Gremlin)  (0) 2021.05.29
[웹해킹] 1주차 리뷰  (0) 2021.05.10

댓글