【发布时间】:2014-10-14 10:51:03
【问题描述】:
我在 Jython 中创建了一个脚本,它从 WAS 7 中提取数据源的一些属性。其中一个属性是身份验证别名。我知道密码是加密的,但项目有一个半教学目的,所以重点是检索用户名和密码,而不是破解某些东西。
如何提取身份验证别名的属性,即用户名和密码?
提前致谢!
【问题讨论】:
标签: websphere datasource jython wsadmin
我在 Jython 中创建了一个脚本,它从 WAS 7 中提取数据源的一些属性。其中一个属性是身份验证别名。我知道密码是加密的,但项目有一个半教学目的,所以重点是检索用户名和密码,而不是破解某些东西。
如何提取身份验证别名的属性,即用户名和密码?
提前致谢!
【问题讨论】:
标签: websphere datasource jython wsadmin
我解决了这个问题。 :) 让我们从头开始。
您必须找到 security.xml (WAS_HOME/AppServer/profiles/Profile_Name/config/cells/Cell_Name/security.xml)文件并在其中搜索身份验证别名。
将包含 Auth Alias 的行保存在名为 Line 的变量中,然后提取用户名、密码和描述。
之后,您必须使用 XOR 算法解密您的密码,并将变量作为列表写入文件中。 例如: AuthDataAlias = [\ ['AuthAlias', 'username', 'password', 'description'] ]
代码:
import sys, java, java.io, java.lang, base64, binascii
resFile="resources.res"
def search ( alias, file ):
f=open(file)
lines=f.readlines()
for line in lines:
poz = line.find('/'+alias)
if poz > 0:
Line = line
break
user = Line[Line.find('userId=')+8:Line.find('\" password')]
password = Line[Line.find('password=')+15:Line.find('\" description')]
password = decrypt(password)
description = Line[Line.find('description=')+13:Line.find('\"/>')]
write ( AuthAlias, user, password, description, resFile)
def write ( alias, user, password, desc, file ):
objItemFileOutputStream = java.io.FileOutputStream(file, 1) #apend la sfirsit fisier
objItemFileOutputStream.write('\n')
AuthList = "AuthDataAlias = [\\\n[\'"+alias+"\', \'"+user+"\', \'"+password+"\', \'"+desc+"\'] ]"
objItemFileOutputStream.write(AuthList)
def decrypt ( word ):
if not len(word) > 1: exit()
word = word.replace(':', '')
value1 = binascii.a2b_base64(word)
value2 = '_' * len(value1)
out = ''
for a, b in zip(value1, value2):
out = ''.join([out, chr(ord(a) ^ ord(b))])
return out
#MAIN
search ( AuthAlias, securityFile )
如果有人遇到此问题,请随时发布您的问题,我会尽快回答。
【讨论】: