분류 전체보기 83

webhacking.kr 01번 문제

include "../../config.php";  if($_GET['view-source'] == 1){ view_source(); }  if(!$_COOKIE['user_lv']){    SetCookie("user_lv","1",time()+86400*30,"/challenge/web-01/");    echo("");  }?>  사용자의 쿠키를 설정해주는 부분이다. 'user_lv' 쿠키를 값 "1"로 설정하고, 유효기간을 30일로 설정한다.    if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;  if($_COOKIE['user_lv']>=4) $_COOKIE['user_lv']=1;  if($_COOKIE['user_lv']>3) sol..

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 함수는 주어진 문자열에서 지정된 위치에서 시작하여 지정된 길이만큼의 부분 문자열을 반환한다.// ..

Substr , Substring , Mid

substr, substring, mid 함수들은 문자열에서 일부분을 추출하는 데 사용된다. substrsubstr 함수는 주어진 문자열에서 지정된 위치에서 시작하여 지정된 길이만큼의 부분 문자열을 반환한다.// JavaScript 예시var str = "Hello world";var result = str.substr(6, 5); // "world" substringsubstring 함수는 문자열에서 두 인덱스 사이의 문자열을 반환합니다. 시작 인덱스가 끝 인덱스보다 클 경우에는 두 인덱스가 바뀐다.// JavaScript 예시var str = "Hello world";var result = str.substring(6, 11); // "world" midmid 함수는 주어진 문자열에서 시작 인덱스부터..

PHP, MYSQL 2024.05.15

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 (..