Lord of SQL Injection 13

Lord of SQL injection 13번 문제 - bugbear

no 파라미터에 prob, _, ., () , ', substr , ascii , = , or , and , 공백( ), like, 0x 문자열 필터링pw 파라미터에 ' 필터링데이터베이스 구조형태 유추idpwnoguest??admin?? 지난 문제인 12번 문제에서 like가 필터링되는 부분이 추가된것 말고는 딱히 차이점이 없다. like말고도 비슷한 기능을 가진 연산자들로 필터링 우회를 하면 된다.LIKE 외에도 SQL 필터링을 우회할 수 있는 연산자와 방법들은 다음과 같습니다:REGEXP: 정규 표현식을 사용해 패턴 매칭을 할 수 있습니다.BETWEEN: 범위를 지정해 값 비교를 할 수 있습니다.IN: 여러 값을 조건으로 지정하여 OR 대체가 가능합니다., !=: = 대신 불일치 조건으로 사용.문자열..

Lord of SQL Injection 12번 문제 - drakknight

11번 문제와 비슷한 구조이나 다른점은 no라는 부분이 추가됐다.쿼리를 보내는 구조를 보면 id=guest , pw = , no = 로 3개의 파라미터를 보내는데그럼 대략적으로 데이터베이스의 컬럼 구조는 idpwnoguest??admin??이런식으로 되어 있을것이라고 유추된다.그럼 11번문제를 풀었듯 똑같이 blind sql injection으로 pw의 길이값, no의 길이값을 유추해나가야한다.먼저 pw의 길이를 먼저 늘려나가 8자리인걸 확인했고 no의 길이값도 늘려나갔을때 1자리인것을 확인했다.여기서 문득 든 생각이 no는 보통 넘버의 의미로 사용되는데 그럼 숫자 형태로 저장해놓지 않았을까? 해서 length(no)가 아닌 그냥 no 를 입력하여 no의 값이 1보다 큰지 입력해보았다. no의 값을 0부..

Lord of SQL Injection 11번 문제 - golem

if(preg_match('/or|and|substr\(|=/i', $_GET[pw])) exit("HeHe"); 이번 문제에서는 or과 and 그리고 substr( 과 = 을 필터링한다or 대체로는 ||and 대체로는 &&substr( 대체로는 mid, substring 이 있다.= 대체자로는 like가 있다. substr의 대체자인 mid와 substring은  약간씩 사용법이 다르다.https://ilsancityboy.tistory.com/67 Substr , Substring , Midsubstr, substring, mid 함수들은 문자열에서 일부분을 추출하는 데 사용된다. substrsubstr 함수는 주어진 문자열에서 지정된 위치에서 시작하여 지정된 길이만큼의 부분 문자열을 반환한다.// ..

Lord of SQL Injection 10번 문제 - skeleton

$query = "select id from prob_skeleton where id='guest' and pw='{$_GET[pw]}' and 1=0"; 보면 뒤에 and 1=0 을 넣어서 pw안에 입력을 무엇으로 받던 1=0 때문에 무조건 거짓이 되게 된다. 여기서 생각해볼것은 pw안에 정답을 넣고 뒤에있는 and 1=0 은 주석처리를 하면 되지 않을까? ?pw=' or id='admin'%23 입력따라서 id는 admin으로 입력하여 문제는 해결하게되고 뒤에 and 1=0 은 #을 인코딩한값 %23 을 넣어 주석처리를하게 되며 문제 해결한다.

Lord of SQL Injection 9번 문제 - Vampire

$_GET[id] = strtolower($_GET[id]);  $_GET[id] = str_replace("admin","",$_GET[id]); 입력받은 id를 모두 소문자로 바꾸고 admin이라는 문자열이 들어가있다면 해당 문자열을 삭제시킨다.그리고나서   if($result['id'] == 'admin') solve("vampire"); admin이라는 id로 입력시 문제 해결 약간 다른방향으로 생각해보면 쉬울것이다.admin 이라는 문자열을 삭제시킨다= 해당 문자열을 삭제시키면서 admin이라는 단어가 남게되면 클리어그럼 admin 문자열 사이에 admin을 하나 더 넣어서 하나 더 넣은 admin문자열이 삭제되며 남은 문자열에는 admin이 남게되게끔 만들면된다.ad + admin + min ..

Lord of SQL Injection 8번 문제 - Troll

if(preg_match("/admin/", $_GET[id])) exit("HeHe");admin이라는 문자열을 필터링한다.  if($result['id'] == 'admin') solve("troll");admin이라는 id를 입력받으면 문제가 풀린다. 그럼 admin이라는 문자열을 우회해서 필터링에 막히지 않고 전달하게 되면 풀린다는뜻인데대소문자를 구분하나 확인겸 admin을 Admin으로 입력해보았다. 문제 해결. 이 외에도 우회하는 방법은 여럿 있다.URL 인코딩 우회: "admin" 문자열을 URL 인코딩하여 전달하는 대신, "admin"을 다른 문자열로 치환하고 해당 문자열을 URL 인코딩할 수 있습니다. 예를 들어, "admin"을 "%61dmin"과 같이 치환하고 인코딩한 후 전달할 수 ..

Lord of SQL Injection - 7번 문제 Orge

https://ilsancityboy.tistory.com/56 Lord of SQL Injection 4번 문제 - orcconfig.php 파일참조 login_chk(); 함수 사용 db연결 get 방식으로 입력받은 pw 칸에 prob,_,.,\, () 사용시 no hack 출력 id가 admin 이고 입력받은 pw 가 일치하면 로그인성공  addslashes() 함수를 ilsancityboy.tistory.com문제 자체는 4번과 똑같지만 주의깊게 봐야하는 라인if(preg_match('/or|and/i', $_GET[pw])) exit("HeHe");or 과 and를 필터링하는 라인이 있다. import requestsurl="https://los.rubiya.kr/chall/orge_bad2f2..

Lord of SQL Injection - 5번 문제 wolfman

if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~"); 먼저 주의깊게 보아야할 것 중 하나는 공백을 필터링 한다는 것이다.   if($result['id'] == 'admin') solve("wolfman"); 그리고 id가 admin일시 문제가 풀리게 된다. 공백필터링을 제외하고 생각한다면?pw=' or id='admin이런식으로 보내면 될 것이다. 하지만 공백 필터링이 있으므로 우회를 해 주어야 한다. https://binaryu.tistory.com/31 SQL Injection 공백 우회방법SQL Injection 공격시 공백 문자 필터링시 우회 방법 1. Tab : %09 - no=1%09or%09id='admin' 2. Line Feed (..

Lord of SQL Injection 4번 문제 - orc

config.php 파일참조 login_chk(); 함수 사용 db연결 get 방식으로 입력받은 pw 칸에 prob,_,.,\, () 사용시 no hack 출력 id가 admin 이고 입력받은 pw 가 일치하면 로그인성공  addslashes() 함수를 사용하여 사용자가 입력한 문자열에 있는 따옴표나 백슬래시와 같은 특수 문자를 데이터베이스에 안전하게 저장할 수 있게 됨. id가 admin 이고 pw가 일치하면 문제 해결.admin 이라는 계정의 비밀번호를 알아내는게 이 문제의 답안이다. 먼저 1번문제처럼 pw의값을 아무렇게나 넣고 강제로 or 을 써넣어 참으로 만들어 보았다. Hello admin 은 뜨는데 문제는 풀리지 않는모습 왜냐면 마지막에서 두번째 줄게if(($result['pw'])) && (..