관련 문서: 데이터베이스
부산고등학교 등교체크기는 신영C.I.S 홈페이지 사의 유니쿨 시스템을 사용하고 있다.
해당 시스템은 등교 체크와 식수를 통합하여 관리하는 솔루션이다.
해당 등교체크기는 Microsoft社의 SQLServer를 사용하고 있으며, 이는 다른 DBMS와 같이 SQL문을 통해 조작할 수 있다.
등교체크기의 사진은 각 등교체크기에 저장하여 사용하고, st_id값으로 명명되어 열리고, 별도의 서버와의 교신을 통해 불러오지는 않는다.
다음은 등교 체크를 담당하는 sell_load.exe와 출결관리.exe의 통신을 Wireshark를 통하여 패킷감청을 하여 DBMS와 Client 간 이루어지는 TDS 통신을 분석한 결과다.[1][2] 이가 가능한 이유는 당해 솔루션은 DBMS와 Client 간 통신이 평문으로 이루어지고 있다. DBMS를 보면 서버 측에서 보안이 가능하지만 거절하기로 설정되어 있다. 혹시 청조인 중 프로그래머를 지망하는 학생이 있다면 이런 짓은 하지 말자.
등교 체크 시 서버와 아래의 구문을 통하여 교신한다.
#!syntax sql
select st_id,rf_card_num,name,class,ban,num from student where name = '학생명'
select * from studentin where st_id = '학생고유번호' and inDate = '일자'
insert into studentin (inDate,inTime,st_id,class,gubun,bigo,state,STD_NAME) VALUES ('일자','시간','학생고유번호','반','','','Y','체크기1')
select * from studentin where st_id = '학생고유번호' and inDate = '일자'
--레코드 삭제를 원할 시 아래의 구문을 이용.
delete from studentin where st_id = '학생고유번호' and inDate = '일자'
-- 는 각주임.
ClientPC의 정보는 다음과 같다.
ip.addr == 10.122.105.23 | 10.122.105.24 | 10.122.105.40 | 기기1대 전면부USB인식 불능으로 인해 알지 못함.
vnc.username == Admin
vnc.password == 1111
DBMS의 정보는 다음과 같다.
ip.addr == 192.168.114.34
USERNAME == unicool
PASSWORD == unicool
실험의 목적으로만 사용하고, 이를 악용하거나, 사고치치 말 것.
SQL 쿼리 생성 시 사고 나지 않게 주의 또 주의할 것.
내부망에서만 사용 가능하지만, 터널링 시 외부 사용 가능할 것으로 보임.
보안 유의!!
[1] Wireshark 필터는 "id.addr==192.168.114.34 and tds"로 잡으면 편리하게 볼 수 있다.[2] TDS Query Packet의 Query문을 보면 알 수 있다.