手动挖掘漏洞(一)输入框未加过滤引发漏洞利用

1.身份认证
  • 弱口令
    在对一个站点进行渗透测试时候,首先是对页面进行探测,扫描,对一些存在隐患的默认配置来进行发现,最起始的页面应该为一个登陆的页面,我们需要通过登陆才能进入页面,此时我们就可以通过弱口令进行身份认证
  • 锁定机制
    如果在进行弱口令测试时,有些登陆页面会有锁定账号机制,手动尝试多次如果没有锁定机制才能用fazzer爆破
  • 信息收集
    在进行爆破时候,需要明确的是 我们拥有一个正确的账号,之后再去爆破密码,所以获取一个正确的账号,获取正确的账号可以哦通过密码错误提示,或者通过手机号为账号
  • 密码探测
    根据服务器返回信息,查看Errorcode,抓包查看结合burpsuite的proxy和comparer进行字节对比,之后用Intruder下的positions进行字段破解
  • 会话sessionID
    服务器会根据sessionID的不同从而设置不同的反应,如果没有获取账号密码,可以截获sessionID,在做安全审计的时候注意cookie值,如果多次登录均一致,则说明有问题(设置超时时间)
 
2.手动挖掘
    通过账号验证后,接着进行手动漏洞探测
    需要探测的项有:
  • 所有变量
  • 所有头(cookie中的变量)
  • 逐个变量排除(对服务器反馈的字段进行保存)
点击选择只有参数的请求:
接着讲要修改的数据包发送至Reperter
删减之后:
 
 
3.如何发现漏洞使得效率变高?
    我感觉漏洞的发现是源于开发者只追求功能的实现,而忽略了在这个过程中对细节的处理
 例如:进入DVWA平台后,有一个功能为测试某个IP地址是否存活,而背后实现的机制就和我们在终端ping 某个IP效果一样
思路:
程序员在开发过程中,为了实现这个功能的实现,我们试猜想,它所用到的方法,可以去调用系统的ping指令,然后将Ping指令的显示反应到页面上,这里就可以去尝试ping某个地址,看页面的显示和控制台显示的结果是否一致:
网页中显示:
控制台显示:
显示的结果一致,那么我们就可以尝试在网页中输入一些系统指令进行测试:
果然和我们预测的结果一致
通过查看网页源代码去证明我们的猜测
我们不仅仅可以输入分号,也可以输入&&(前面命令为真,后面才能执行)也可以用||(前面失败后面才执行)
 
问题:
用了DVWA高级别的安全编码:代码的判断,分割写的都很好
 
 
 小结:漏洞的实现是源于我们懂得正向开发的思路
 
posted @ 2019-07-07 20:11  峰中追风  阅读(860)  评论(0编辑  收藏  举报

___________________________________________________________________________________________没有白跑的路