手动漏洞挖掘
######################################################################################
手动漏洞挖掘原则【会比自动扫描器发现的漏洞要多,要全面】
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