[gnuboard5] 원데이 취약점 분석 스터디 - 2주차

sani·2022년 10월 5일
0

22.10.05


그누보드 취약점 분석

분석 목표 :


변경점 :

password_reset.php



ini_find_result.php




ini_request.php



ini_result.php





코드 분석 :

password_reset.php

if(!$_POST['mb_id']) { alert("잘못된 접근입니다."); goto_url(G5_URL); }

mb_id 값을 post 방식으로 받고, 그 값이 존재만 한다면, 따로 검사를 하지 않는다.
이후 password_reset_update.php 로 넘어가게 된다.

password_reset_update.php

$mb_id = isset($_SESSION['ss_cert_mb_id']) ? trim(get_session('ss_cert_mb_id')) : '';
$mb_dupinfo = isset($_SESSION['ss_cert_dupinfo']) ? trim(get_session('ss_cert_dupinfo')) : '';

하지만 password_reset_update.php 에서 mb_id값과 dupinfo 값을 세션으로 요청한다.

ini_find_result.php

set_session("ss_cert_type",    $cert_type);
set_session("ss_cert_no",      $md5_cert_no);
set_session("ss_cert_hash",    $hash_data);
set_session("ss_cert_adult",   $adult);
set_session("ss_cert_birth",   $birth_day);
//set_session("ss_cert_sex",     ($sex_code=="01"?"M":"F")); // 이니시스 간편인증은 성별정보 리턴 없음
set_session('ss_cert_dupinfo', $mb_dupinfo);
set_session('ss_cert_mb_id', $row['mb_id']);

ini_find_result.php 에서 mb_id 값을 세션으로 받은 후, password_reset.php 로 접근해야 한다.

페이로드 :

생각한 페이로드 : ini_find_result.php 에서 값을 검사하지 않는 POST 값을 BURP SUITE로 임의로 설정해,
쿼리문을 보내어 권한 검증을 우회하여 세션 값을 받은 후, 이를 이용하여서 비밀변호를 변경한다.

profile
창원대학교 보안동아리 CASPER

0개의 댓글