본문 바로가기

Wargame/Lord of SQLInjection4

[Lord of SQLInjection] Level04 write-up LOS Level 04번 문제를 풀어보자. 풀이 과정 1. $_GET[pw] 를 통해 pw를 사용자 입력값으로 받고 있다. 2. preg_match() 함수는 $_GET[pw]로부터 입력받은 값에서 'prob', '_', '.', '\' 값이 있을 시 No Hack ~_~ 화면으로 넘어간다. if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 3. 다음 문장은 입력받은 pw와 id가 admin인 값을 찾아서 $query 변수에 저장하는 쿼리문이다. $query = "select id from prob_orc where id='admin' and pw='{$_GET[pw]}'"; 4. 값을 찾은 쿼리문을 출력하고,$result['id'].. 2021. 10. 14.
[Lord of SQLInjection] Level03 write-up LOS Level 03번 문제를 풀어보자. 풀이 과정 1. $_GET[no] 를 통해 no 변수를 사용자 입력값으로 받고 있다. 2. preg_match() 함수는 $_GET[no]로부터 입력받은 값에서 'prob', '_', '.', '\' 값이 있을 시 No Hack ~_~ 화면으로 넘어가고, '(싱글쿼터), "(더블쿼터), ` 값이 있을 시 No Quotes~_~ 화면으로 넘어간다. if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~"); 3. 다음 문장은 입력받은 no와 id가 guest인 값을 찾아서 $query 변수에.. 2021. 10. 14.
[Lord of SQLInjection] Level02 write-up LOS Level 02번 문제를 풀어보자. 풀이 과정 1. $_GET[id] 와 $_GET[pw] 를 통해 id와 pw를 사용자 입력값으로 받고 있다. 2. preg_match() 함수는 $_GET[id]와 $_GET[pw]로부터 입력받은 값에서 'prob', '_', '.', '\' 값이 있을 시 No Hack~_~ 화면으로 넘어가게 된다. 그러므로 필터링되는 값을 우회해서 공격해야 한다. if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 3. 다음 문장은 입력받은 id와 pw를 값을 찾아서 $query 변수에 .. 2021. 10. 14.
[Lord of SQLInjection] Level01 write-up LOS Level 01번 문제를 풀어보자. 풀이 과정 1. $_GET[id] 와 $_GET[pw] 를 통해 id와 pw를 사용자 입력값으로 받고 있다. 2. preg_match() 함수는 $_GET[id]와 $_GET[pw]로부터 입력받은 값에서 'prob', '_', '.', '\' 값이 있을 시 No Hack~_~ 화면으로 넘어가게 된다. 그러므로 필터링되는 값을 우회해서 공격해야 한다. 문제에서 입력값을 GET 방식으로 받는다. GET 방식으로 받게 되면 URL에 입력값이 그대로 노출된다. → 그래서 GET 방식은 입력값에 대해 보안이 필요없거나 빠르게 전송 시 사용한다. if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); if(.. 2021. 10. 14.