패스워드 버그 발견 그리고 질문

패스워드 버그 발견 그리고 질문

QA

패스워드 버그 발견 그리고 질문

본문

회원가입시 패스워드가 123456789 agads445 등 대문자가 없는 보안이 취약한 패스워드일 경우

select password('1234567890')  의 값이 NULL로 되고

NULL된 상태에서 회원가입이 완성 됩니다.

 

회원가입 직후엔 세션으로 로그인 상태가 유지되지만 로그아웃 하면 두번 다시 로그인 못합니다.

 

그누보드 5.3.1.6

CentOS Linux release 7.5.1804 (Core)

nginx version: nginx/1.15.3

PHP 7.1.22 (cli) (built: Sep 12 2018 07:22:13) ( NTS )

mysql  Ver 14.14 Distrib 5.7.23, for Linux (x86_64) using  EditLine wrapper

 

그리고 질문

g5_config테블 cf_icode_pw에 관리자 패스워드가 암호화 되지 않은 상태로 보존되여 있는데 보안상....취약점 아니세요?

 

 

 

 

 

이 질문에 댓글 쓰기 :

답변 3

PHP 7.1.22 와 mysql 14.14 면 mariaDB 인거겠군요.

php 문서를 하나 만들어서 select password('1234567890') 했을때 어떤 값이 찍히는지 확인해보세요.

그누보드 로직에는 mysql 암호화 함수를 사용하는거라서,

입력된 비밀번호 취약여부를 확인하는 로직은 없는것으로 알고 있습니다.

회원가입로직 중간 중간에 echo 문을 찍어서 어떤 값이 넘어가는지 확인해보세요.

그누보드 문제가 아니라 설치된 PHP 와 mysql 설정의 문제는 아닐까요?

 

icode 와 문자전송하는 로직에 패스워드를 보내야하기때문에 비암호화 형태로 저장하고 있을껍니다.

icode 가 아이디+패스워드 형식이 아닌 토큰 방식으로도 서비스를 지원하지만

그누보드는 호환성을 유지하려고 그것을 도입하지 않는듯 하네요.

 

버그신고는 https://sir.kr/cm_bug?sca=그누보드5 에서...

 

 

 

2037355491_1537487649.9617.png

 

말하다싶이 보안이 취약한 패스워드 일때 이하소스 $row = sql_fetch(" select password('$value') as pass "); 의 값이 NULL 입니다. 위에 데모도 참고로하시고요....

 

function sql_password($value)

{

// mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes

// mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes

$row = sql_fetch(" select password('$value') as pass ");

return $row['pass'];

}

그러고보니 최근에 그런 글을 본 기억이 있네요.

mysql 최근버전을 설치했는데,  root 비밀번호를 대문자와 특수문자를 무조건 포함해야 하더라고..

아마도 그것의 연장선상에서 발생하는 현상이 아닐까 싶기는 하네요.

그누보드 문제라기 보다는 , mysql 의 보안강화로 인한 현상이겠죠.

그누보드에도 취약한 비밀번호 입력하면 그것을 거부하는 로직이 추가되어야 하는걸지도 모르겠네요.

근데, 그 취약하다는 기준이 mysql 에 메뉴얼화 된것도 아닐테구..

회원가입창에 비밀번호 입력하는 페이지에 안내문구를 추가하는 정도가 되지 않을까 살짝 생각해 봅니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 31
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT