목록분류 전체보기 (346)
R136A1
어셈블리 명령어 참고: 최은정교수님 윈도우즈보안과운영실습 1) 데이터 이동 값을 직접 레지스터로 대입 레지스터에서 레지스터로 옮기기 값을 직접 메모리로 대입하기 레지스터에서 메모리로 또는 그 반대로 옮기기 메모리에서 메모리로 옮기기 MOV: move operand1 스택 4byte증가 == (현재 스택포인터) ESP 4byte 감소 // 스택에만 사용하는 opcode이므로 저장될 장소 operand 필요없음. 값 operand만 - PUSH EBP // 스택에 EBP 값을 push - PUSH 5 // 스택에 5를 push POP: 스택 끝에 저장된 값을 가져옴 => 스택 4byte감소 == (현재 스택포인터) ESP 4byte 증가 // 스택에만 사용하는 opcode이므로 가져올 장소 operand 필..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_xavis where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("xavis"); highlight_file(__FILE..
SBCS(Single Byte Character Set): 한 문자를 1byte로 표현하는 방식 ASCII (American Standard Code for Information Interchange) 1byte 최초의 문자열 인코딩, 7bit로 구성됨, 128개 문자 표현 (1bit는 패리티비트) "영어를 위한 문자" 다른 언어는 표현 불가 확장ASCII(Extended ASCII) = ANSI (American National Standard Institue) 1byte 8bit로 구성됨, 256개의 문자 표현(8개의 언어 × 128개의 문자) 1bit로 CP(CodePage)를 나타낸다 - 각 언어별로 Code 값을 주고, Code마다 다른 문자열 표를 의미하도록 약속 (KR 949 / JP 932..
보호되어 있는 글입니다.
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("zombie_assassin"); highlight_file(__FILE__); ?> 제약사항id,pw 파라미터에 addslashes 함수 적용→ 주로 쿼리 전달 전에 쓰여서, ' " \ null 값을 \' \" \\ \null 로 replace한다.이렇게 생성된 SQL문을 실행시키면, \' \" \\ \null등의 값이 문법이 아닌 '문자'로 해석된다. 이렇게 적용된 값을 다시 strrev 함수 적용한다→ 인자로 들어온 문자열을 뒤집어서 반환 풀이조건쿼리의 결과가 있기만 하면 쿼리select id from prob..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("succubus"); highlight_file(__FILE__); ?>제약조건파라미터 id, pw에 싱글쿼터(') 사용 불가 select id from prob_succubus where id='{$_GET[id]}' and pw='{$_GET[pw]}' 풀이조건쿼리의 결과에 값이 있다면이스케이프 문자(\)를 활용하여 id의 ' 를 단순 문자로 취급되게 한다.그 결과, pw의 첫번째 ' 를 끝 ' 로 사용하게 되어 전부 문자열로 취급된다.select id from prob_succubus where id='\' a..
보호되어 있는 글입니다.
SQL은 띄어쓰기에 굉장히 엄격하기 때문에 현재 select 1234 from{$_GET[shit]}prob_giant where 1 이므로 shit에 어떤 값을 넣어서 띄어쓰기를 만들어줘야한다. 제약사항 shit에는 공백, \n, \r, \t 이 대소문자 상관없이 들어올 수 없다. 또한 shit은 2글자 이상 될 수 없다 (무조건 1글자) 다른 대체제: /**/, (), %20, %2b(=+), %09, %0a, %0b, %0c, %0d, %a0, 에서 (), /**/의 경우 4글자이기때문에 사용할 수 없다. 또한 \n(LF=%0a), \r(CR=%0d), \t(HT=Horizontal tab=%09)을 사용할 수 없기 때문에 그에 해당하는 ASCII도 못쓴다. %20, %2b(=+), %a0은 왜 안..