Lord of SQL Injection 11

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'])) && (..

Lord of SQL Injection 3번 문제 - goblin

config.php 파일 참조 login_chk() 함수 사용 db연결 입력받은 no 값에 prob, _ , . , () 사용시 No hack 출력 입력받은 no 값에 ' " \ 사용시 No Quotes 출력 입력된 'no' 값을 사용하여 데이터베이스에서 'id' 값을 가져오는 쿼리를 생성. id 값이 admin 일시 문제 해결 먼저 대략적으로 데이터는 이렇게 지정되어있을거라고 생각했다. id no guest 숫자 admin 숫자  즉 guest의 지정된 숫자랑 admin이 지정된 숫자가 있을것. 지정되어있는 코드는 select id from prob_goblin where id='guest' and no= 까지 고정이 되어있다. 그럼 no에는 guest의 지정된 값이 아닌 아무런값을넣어서 id는 gue..

Lord of SQL Injection 2번 문제 - cobolt

config.php 파일 참조 login_chk() 함수 사용 db연결 입력받은 id 값에 prob , _ , . , () 중 하라도오면 No Hack 출력 비밀번호도 동일. 입력받은 id 값과 pw 값이 데이터베이스 안에 id값과 md5해시값과 일치하는지 확인. id값이 admin이면 성공 그게아니라면 Hello "id" You are not admin 출력 우선 아이디는 admin이 고정되어야 You are not admin 이 뜨지않고 성공한다. 파라미터값으로 id 는 admin을 넣어야한단것. 비밀번호 부분은 MD5 즉, 입력받은 비밀번호를 해시값으로 변환한다는것인데 복잡하니 비밀번호 있는곳을 통으로 주석처리하여 날리면 되지않을까? 생각했다. 따라서 --로 주석처리를 해보았다. ?id='admin..