호그와트

웹해킹 39번 문제

영웅*^%&$ 2021. 11. 16. 14:58
728x90

상당히 흥미로운 문제였다

if($_POST['id']){

$_POST['id'] = str_replace("\\","",$_POST['id']);

$_POST['id'] = str_replace("'","''",$_POST['id']);

$_POST['id'] = substr($_POST['id'],0,15);

$result = mysqli_fetch_array(mysqli_query($db,"select 1 from member where length(id)<14 and id='{$_POST['id']}"));

if($result[0] == 1){

solve(39);

주어진 코드에 대한 정확한 해석이 관건인 문제였다

소스를 보면 기존 webhacking.kr에서 약간 달라진 부분이 length(id)<14라는 부분이 추가되었다. sql 쿼리에서 where 구문이 true가 되어서 1이 리턴되면 문제가 풀린다. 그런데 쿼리를 잘 보면 where구문에서 id=' 부분에 여는 싱글 쿼터는 있는데, 닫는 싱글 쿼터가 없다.

그리고 싱글 쿼터를 입력값으로 주면, 2개의 싱글쿼터로 치환되게 되는데,

substr 함수에서 앞의 15개만 잘라내는 부분이있다.

이 내용을 보고 딱 2초만에 직관력으로 맞추었다

주어진 코드만 정확히 파악하면 곧바로 풀리는 쉬운 문제였다.

728x90

'호그와트' 카테고리의 다른 글

my vision : 영혼으로 보았기에 이 길을 택했다  (0) 2021.11.20
유튜브 프리미엄 공짜로 이용하기  (0) 2021.11.20
웹해킹 53번, 55번 문제  (0) 2021.11.16
Into the unknown  (0) 2021.11.16
웹해킹 56번 문제  (0) 2021.11.16