펌해옴 : http://kcats.tistory.com/121


The_basic_of_Blind_SQL_Injection_PRIDE.pdf

blind_sql_injection-mysql_5.pdf



이 포스팅은 위 2개의 파일을 읽고 blind sql injection 에 대해 정리한 글이다.


저작권에 문제가 된다면 바로 삭제할겟습니다!


일반적인 sql injection은 웹 시스템이 쿼리를 이용하여 데이터베이스를 조회하는 과정을 


우회하는 방법이다.




▲ 서버에서 요청하는 입력 폼



blind sql injection은 다음과 같은 특정한 상황에서 사용 가능하다.

1. 쿼리문으로 참과 거짓 일때의 서버의 반응을 알 수 있어야 함

2. 원하는 결과를 얻을 데이터베이스의 이름을 알 수 있어야 함


이러한 상황일때  쿼리 문의 asciilimitsubstr 등의 구문을 이용한다.

하나하나 살펴보도록 하자.


먼저, ascii는 ascii(문자) 를 하였을때 해당 문자의 아스키코드를 반환한다. 

이에 대한 자세한 설명은 아래의 링크에 있다.

http://www.w3resource.com/mysql/string-functions/mysql-ascii-function.php

풀어 설명하자면, ascii(a)를 하면 a의 아스키코드인 숫자  97이 반환된다

아스키코드표 링크



둘째, limit은 출력의 개수를 제한할 수 있는 함수다.

limit 200 이라고 하면 출력 개수를 최대 200개로 제한한다는 것이고

limit 2,10 이라고 하면 두번째 행부터 10행까지만 출력한다는 것이다.

http://www.razorsql.com/articles/mysql_limit_query.html


셋째, substr은 특정 문자열을 원하는 만큼 자를 수 있다. 사용법으로는

 substr(문자열, 문자열에서 자르고자 하는 문자열의 처음 위치, 자르고자 하는 문자열의 길이이다.

http://www.w3resource.com/mysql/string-functions/mysql-substr-function.php








substr, ascii(), limit을 이용하는 것을 토대로 이제는 실전적으로 가보겠다.


INFORMATION_SCHEMA

MYSQL에서 데이터베이스에 대한 메타데이터를 제공하는 스키마이다.

출처 : http://mysqldba.tistory.com/52


INFORMATION_SCHEMA가 가지고 있는 정보를 이용하여야 한다. 이 테이블은 여러 정보를 가지고 있는데 그 중에서도 대표적으로 TABLES 와 COLUMNS이 유용한 정보를 많이 가지고 있다.



위의 그림에서 보는것과 같이 테이블을 만들면 기본적으로 TABLE_TYPE이 BASE_TABLE로 설정되므로 이를 이용하여 쿼리문을 만들수 있다. 쿼리문은 다음과 같다.


select TABLE_NAME from INFORMATION_SCHEMA.TABLES 

where TABLE_TYPE = 'base type' 

라고 쿼리를 입력하면 위의 TABLES의 쿼리와 비슷하게 나올것이다.

( 일단 저기에는 BASE_TABLE외의 다른 타입이 없다) 


여기에 저번 포스팅에서 배운 LIMIT을 사용하면 

select TABLE_NAME from INFORMATION_SCHEMA.TABLES 

where TABLE_TYPE = 'base type'  LIMIT 0,1

라고 쿼리를 입력하면 테이블에서 가장 위의 있는 값인  spt_fallback_db가 나올것이다.


그리고 substr을 사용하면

substr((select TABLE_NAME from INFORMATION_SCHEMA.TABLES 

where TABLE_TYPE = 'base type'  LIMIT 0,1),1,1))   

라고 쿼리를 입력하면 테이블에서 가장 위의 있는 값인  spt_fallback_db에서 가장 첫번째 문자인 's'가 나올 것이다.


마지막으로 ascii()함수를 이용하면

ascii(substr((select TABLE_NAME from INFORMATION_SCHEMA.TABLES 

where TABLE_TYPE = 'base type'  LIMIT 0,1),1,1))

라고 쿼리를 입력하면 테이블에서 가장 위의 있는 값인  spt_fallback_db에서 가장 첫번째 문자인 's'의 아스키코드인 115가 나올것이다.


이에 대한 응용으로 빠르게 아스키코드를 찾기 위해서는 

ascii(substr((select TABLE_NAME from INFORMATION_SCHEMA.TABLES 

where TABLE_TYPE = 'base type'  LIMIT 0,1),1,1)) < 115

이 값이 참이라고 판정된다면 TABLES에 있는 base_type의 첫번쨰 테이블 이름의 첫문자는 s보다 앞에 문자라는 것을 알 수 있다. 

하지만 이렇게 찾으려면 문자열이 길다면 많은 시간이 소모될 것을 알 수 있다. 그러므로 blind sql injection을 대신 해줄 툴을 사용하거나 자신이 직접 코딩하여 만들어서 사용하기를 추천한다.

툴을 정리해둔 포스팅 링크

정리하자면

1. 참과 거짓을 알 수 있는 상황이 있어야함

2. 많은 시간이 걸릴수 있으므로 툴을 사용



'SQL Injection' 카테고리의 다른 글

sql injection 툴  (0) 2017.02.28
Posted by wakira
,

cmd창에서 android sdk 폴더에 sdk/platform-tools 경로로 이동한다.

휴대폰에서 발생하는 모든 이벤트 -> adb logcat

유니티에서 발생하는 모든 이벤트 -> adb logcat -s Unity

유니티에서 발생하는 log 이벤트 -> adb logcat Unity:I Native:I *:S

Posted by wakira
,

핸드폰 모델

자료실 2017. 2. 14. 17:30


(삼성)SAMSUNG중고차감
갤럭시S(M110)3,000유리-2,000
갤럭시S2(M250S,K)15,000유리-5,000
갤럭시2(M250L)3,000유리-2,000
갤2LTE(E110)20,000유리-5,000
갤럭시HD(E120S,K,L)25,000유리-5,000
갤럭시3(E210S,K,L)45,000유리-15,000
갤럭시3(M440)45,000유리-15,000
갤럭시S4(E300,E330S,K,L)60,000유리-20,000
갤럭시S4 엑티브(E470)10,000유리-30,00
갤럭시S4 MINI(E370K)40,000유리-20,000
갤럭시S5 (SM-G900 S,L,K)100,000유리-30,000
갤럭시S5 (SM-G906 S,L,K)100,000유리-30,000
갤럭시S6 (SM-G920 S,L,K)200,000유리-80,000
갤럭시S6엣지 (SM-G925S,L,K)220,000유리-150,000
갤럭시S6엣지+ (SM-G928,S.K.L)270,000유리-170,000
갤럭시s7 (SM-G930S.K.L)350,000유리-200,000
갤럭시s7엣지(SM-G935S.K.L)370,000유리-250,000
갤럭시노트(E160S,K,L)30,000유리-10,000
갤럭시노트2(E250S,K,L)50,000유리-7,000
갤럭시노트3(SN-N900)100,000유리-25,000
갤럭시노트3 NEO(N750S)60,000유리-30,000
갤럭시노트4 (N910)150,000유리-50,000
갤럭시노트4 엣지 (N915)150,000유리-90,000
갤럭시노트5 (N920)300,000유리-50,000
갤럭시 A3(A310)80,000유리 -50,000
갤럭시A7(A700)100,000유리-40,000
갤럭시A7(A710)NEW150,000유리-70,000
갤럭시A5(A500)85,000유리-30,000
갤럭시A5(A510)NEW130,000유리-50,000
갤럭시A8(A800)150,000유리-70,000
갤럭시J5(SM-J500)60,000유리-40,000
갤럭시J7(SM-J700)90,000유리-50,000
갤럭시알파(SM-G850G)85,000유리-40,000
갤럭시줌(SM-C105L,S,K)15,000유리-12,000
갤럭시줌2(SM-C115)30,000유리-25,000
갤럭시코어 (M580D)10,000유리-8,000
갤럭시윈(E500)15,000유리-10,000
갤럭시팝(E220)25,000유리-20,000
갤럭시R(E170)25,000유리-20,000
갤럭시메가(E-310L,S,K)55,000유리-35,000
갤럭시그랜드(E270)30,000유리 -20,000
갤럭시그랜드2(SM-G710)50,000유리 -40,000
그랜드맥스(SM-G720)40,000유리 -30,000
갤럭시 골든(E400)60,000유리 - 40,000
갤럭시 라운드(G910)50,000유리-40,000
갤럭시Hoppin(M190)10,000유리-5,000
갤럭시넥서스(M420)15,000유리-10,000


'자료실' 카테고리의 다른 글

NFC 표준, 프로토콜  (0) 2017.04.02
졸업요건  (0) 2017.03.29
Windows7 USER-PE(20120815) PE 만드는법  (0) 2017.02.11
birthday party  (0) 2016.10.26
youtube 유트브  (0) 2016.10.24
Posted by wakira
,