WarGame/Lord of SQL Injection

    [LOSI] Lord of SQL Injection Level 10 - Skeleton

    조금 느슨해진 풀이가 되었다고 생각할 수 있지만, 쉽게 쉽게 문제를 해결할 수 있다는 것을 문제의 질을 탓하지는 말자. RPG로 보아서 여러분들의 실력이 올라간 반증이다. 이번 시간에는 이미 false값을 검사하는 상황인 Skeleton문제를 보자 코드 특별한점으로는 마지막에 AND1=0가 있어서 쿼리의 앞 조건에 무엇이 들어가던 0개의 레코드가 검사가 된다는 점이다. 해결방법 Answer Url : los.rubiya.kr/chall/XXXX.php?pw=1%27%20or%20id=%27admin%27%20or%20id=%27reducto * DATABASE의 연산자는 AND가 OR보다 높다 * 아시다시피 DATABASE에도 연산자 우선순위라는 것이 있다. 일반적인 상황에서 AND는 OR에 우선되게 실..

    [LOSI] Lord of SQL Injection Level 9 - Vampire

    여담인데, 난 뱀파이어에 대한 동경심이 있다. 여타 괴물들과는 다르게 세련되어 보이고, 격식이 있어 보인다. 담생에 태어나면 뱀파이어도 괜찮을 거 같다... 새벽이 되니까 별소리가 다 나온다. 우선 코드를 만나보자 코드 일단 중간 코드가 재미있는게 보인다. $_GET[id] = strtolower($_GET[id]); $_GET[id] = str_replace("admin","",$_GET[id]); 이에 따라 GET메소드로 전달된 파라미터 id의 admin은 ""로 변경될 것이다. 의외로 간단한 해결책이 존재할지도? 해결방법 Answer url : los.rubiya.kr/chall/XXXX.php?id=adadminmin 그렇다... admin이 공백으로 치환되는 거면 adadminmin으로 전달하면..

    [LOSI] Lord of SQL Injection Level 8 - Troll

    이번 포스팅은 preg_match에 일부 특성을 배우는 시간이 될 것이다. 트롤을 만나보도록 하자 코드 특별하게 보이는 점으로 admin이라는 문자열이 필터링되기 때문에 admin을 쓸 순 없을 거 같다. 해결방법 Answer Url : los.rubiya.kr/chall/XXXX.php?id=Admin 어이없어 보여도, 중요한 내용을 담고 있다. 위 php에서 필터 우회로 사용되는 preg_match는 /i옵션이 없으면 대소자를 구별하지 않는다. 따라서 두 번째 preg_match인 /admin/은 Admin이나 ADMIN으로 실행을 안 시킬 수 있다. 또한 DB가 대소자를 구분하지 않으니 금상첨화이다. 이렇게 트롤을 해치운 우리의 다음 목적지는 이름도 무서운 흡혈귀를 만나러 갈 것이다. 이번 문제가 ..

    [LOSI] Lord of SQL Injection Level 7 - Orge

    다음 만나볼 몬스터는 오우거이다.(이 홈페이지는 둔한 몬스터들에게 Blind SQL Injection문제를 배정한 느낌이 든다.) * 주의 반드시 지난 orc시간에 Blind SQL Injection를 이해하고 와야 한다! * * 이 문제의 해결을 위한 Blind SQL Injection은 Python으로 작성되었다. " 2021.04.13 - [정보보안-실습/SQL Injection] - [LOSI] Lord of SQL Injection Level 4 - Orc [LOSI] Lord of SQL Injection Level 4 - Orc 무서운 몬스터가 우리 앞을 막아섰다. 오크라고 불리는 이 몬스터는.... 심각하게 뚱뚱한 이 몬스터를 쉽게 이길수 없다는 생각이 든다. 일단 코드를 확인하자. * 주..

    [LOSI] Lord of SQL Injection Level 6 - DarkElf

    지난 시간 우리는 공백을 우회하는 방법을 알아보았다. 이번에 만나볼 몬스터는 DarkElf로(헤으응 나 죽어), 이 몬스터는 논리 연산자를 필터링한다. 코드 필터링되는 글자중 or, and와 같은 그간 우리가 써오던 논리 연산자들이 있다. 보통 다음의 해답으로 떠올렸을 것이다. Answer Url? : los.rubiya.kr/chall/XXXX.php?pw=1%27%20or%20id=%27admin%27--%20; 자축하자 우린 걸러졌다. 해결방법 Answer Url : los.rubiya.kr/chall/XXXX.php?pw=1%27%20%7C%7C%20id=%27admin%27--%20; 프로그래밍 언어를 공부한 사람은 알겠지만 문법적으로 or와 and를 의미하는 기호가 있다. 바로 파이프(||)와..

    [LOSI] Lord of SQL Injection Level 5 - Wolfman

    어찌 보면 쉬어가는 시간이 될 거 같다. 저번 시간 Blind SQL Injection을 배웠으니, 이번 시간에는 공백을 우회하는 DB 테크닉을 조금 배워보자 코드 눈에 띄는 금지어로 space(공백)이 있다. DB나 코드나 공백은 문법적으로 상당히 중요한 의미를 가진다. 기존대로 문제를 풀었다면 아마 다음과 같은 답이 바로 떠오를 것이다. Answer url? : los.rubiya.kr/chall/XXXX.php?pw=1%27%20id=admin--%20; 아쉽지만 이번에 공백(space, %20) 불가하기에 다음의 필터링 화면을 만나볼 수 있다. 우리는 공백을 대체할 무엇인가가 필요하다 해결방법 Answer Url : los.rubiya.kr/chall/XXXX.php?pw=1%27%09or%09i..