전체 글 49

LOS 6번 문제 풀이

los 6 문제 풀이 $query = "select id from prob_darkelf where id='guest' and pw='{$_GET[pw]}'"; 쿼리를 보면 id가 게스트로 고정되있고 pw를 전송하는것같습니다. if($result['id'] == 'admin') solve("darkelf"); id가 admin이 되어야 풀리는 문제인거같습니다. 일단 이문제를 어떻게 푸냐면 id가 게스트로 되어있기 때문에 저는 or이 필터링 되있기때문에 ||로 우회 하였습니다. ?pw=1'||id='admin'%23을 써주엇더니 풀리었습니다 %23을쓰는이유는 게스트를 지우기위해서인것같습니다 답 : ?pw=1'||id='admin'%23

los 문제 2021.09.13

LOS 4번 문제 풀이

LOS 4번문제 코드해석 $query = "select id from prob_orc where id='admin' and pw='{$_GET[pw]}'"; pw를 입력받아 prob_orc 테이블에 해당 정보가 있는지 조회한다 그리고 이문제는 id가 어디민으로 고정되있는것을 확인할수있다. $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_orc where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orc"); hi..

los 문제 2021.09.08

LOS 3번 문제 풀이

LOS 3번문제 코드해석 if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~"); 필터링을 보면, prob, _, ., (), ', ", `를 필터링 한다. 즉, 쿼리를 정상적으로 작성할 수 없다. $query = "select id from prob_goblin where id='guest' and no={$_GET[no]}"; 보시면 id는 guest로 고정되있고 no값을 받아오는거로 되있습니다. if($result['id'] == 'admin') solve("goblin"); 그리고 id를 admin으로 만들어주어야합니다 문제 해결 : id라는 변수의 값을 admin으로 설정하고 싶으면, id='admin' 이런식으로 작성해야 하지만, '가 ..

los 문제 2021.09.08

LOS 2번 문제 풀이

LOS 2번문제 코드해석 $query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')"; id와 pw를 입력받아 prob_gremlin 테이블에 해당 정보가 있는지 조회한다 하지만 이문제는 pw에 md5(")가 있는것을 확인 할수있습니다 if($result['id'] == 'admin') solve("cobolt"); 이문제는 id에 admin이 되면 풀린다. 해결 :?id=admin'%23 %23이란 #을 인코딩한것인데 이것은 뒤에있는 pw를 없애서 써준것이다. 다시해석해보자면 pw=md5(")이다 그래서 and라서 둘이 같게만들어주어야하기때문에 id는 어드민이 들어가야해서 맞지않는다 그래서 %23(#)을 써서..

los 문제 2021.09.07