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

[웹해킹] LOS 9 - (Vampire)

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

los 9번 vampire에 대한 풀이 포스팅입니다.

먼저 필터링되는 조건들을 살펴보면 싱글 쿼터 ' 와 admin을 공백으로 치환하는 str_replace 함수가 사용되었습니다.

문제 접근

 <?php 
  
include "./config.php"
  
login_chk(); 
  
$db dbconnect(); 
  if(
preg_match('/\'/i'$_GET[id])) exit("No Hack ~_~");
  
$_GET[id] = strtolower($_GET[id]);
  
$_GET[id] = str_replace("admin","",$_GET[id]); 
  
$query "select id from prob_vampire where id='{$_GET[id]}'"
  echo 
"<hr>query : <strong>{$query}</strong><hr><br>"
  
$result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if(
$result['id'] == 'admin'solve("vampire"); 
  
highlight_file(__FILE__); 
?>

 

두개의 필터링 조건을 우회하여, admin 레코드를 반환받으면 되는 문제입니다.

이전 문제처럼 대문자로 우회하는 방법을 막기위해서 strtolower 함수를 통해 입력받은 아이디를 소문자로 변환하는 과정또한 추가 된 것을 볼 수 있습니다.

 

풀이. 문자열 중간에 새로운 문자열 넣기

문자열 중간에 replace되는 문자열을 넣어서, 실제로 원하는 문자열은 앞과 뒤에 배치하는 형태로 우회하는 방법입니다.

str_replace를 우회하는 대표적인 방법이므로 기억해두는 것이 좋습니다.

?id=adadminmin

 

결과

 

감사합니다.

 

 

728x90

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

[웹해킹] LOS 11 - (Golem)  (0) 2021.06.19
[웹해킹] LOS 10 - (Skeleton)  (0) 2021.05.30
[웹해킹] LOS 8 - (Troll)  (0) 2021.05.30
[웹해킹] LOS 7 - (Orge)  (0) 2021.05.30
[웹해킹] LOS 6 - (Darkelf)  (0) 2021.05.30

댓글