• DVWA全级别之Brute Force(暴力破解)


    Brute Force

    Brute Force,即暴力(破解),是指黑客利用密码字典,使用穷举法猜解出用户口令

    首先我们登录DVWA(admin,password),之后我们看网络是否为无代理,;

     

     

     确认网络为无代理之后,打开burpsuite

     

     然后我们将DVWA网络改为手动代理,

     完成之后在进行操作。

     

     

    Low

    查看服务器端核心代码;

     

    可以看到,服务器只是验证了参数Login是否被设置(isset函数在php中用来检测变量是否设置,该函数返回的是布尔类型的值,即true/false),没有任何的防爆破机制,且对参数username、password没有做任何过滤,存在明显的sql注入漏洞

     方法一,爆破利用burpsuite

     第一步抓包,

    第二步,ctrl+I将包复制到intruder模块,因为要对password参数进行爆破,所以在password参数的内容两边加$

    第三步选中Payloads,载入字典,点击Start attack进行爆破

     

     尝试在爆破结果中找到正确的密码,可以看到password的响应包长度(length)“与众不同”,可推测password为正确密码,手工验证登陆成功。

     

     

    方法二,手工SQL注入

     

    Username :admin’ or ’1′=’1    

     Password为空  注入成功;

     

     

    Username :admin’ #

    Password :(空)  注入成功

     

     

     

     

     

    Medium

    查看服务器端核心代码,

     

     相比Low级别的代码,Medium级别的代码主要增加了mysql_real_escape_string函数,这个函数会对字符串中的特殊符号(x00,n,r,,’,”,x1a)进行转义同时,$pass做了MD5校验,杜绝了通过参数password进行sql注入的可能性

    使用burpsuite进行破解(步骤与LOW一样)

     第一步抓包;

     

    第二步,ctrl+I将包复制到intruder模块,因为要对password参数进行爆破,所以在password参数的内容两边加$

     

     

    第三步选中Payloads,载入字典,点击Start attack进行爆破

     

     尝试在爆破结果中找到正确的密码

     

     

     

    High

    查看服务器端核心代码,

     

    High级别的代码加入了Token,可以抵御CSRF攻击,同时也增加了爆破的难度

    每次服务器返回的登陆页面中都会包含一个随机的user_token的值,用户每次登录时都要将user_token一起提交。服务器收到请求后,会优先做token的检查,再进行sql查询。

    High级别的代码中,使用了stripslashes(去除字符串中的反斜线字符,如果有两个连续的反斜线,则只去掉一个)、 mysql_real_escape_string对参数username、password进行过滤、转义,进一步抵御sql注入。

     通过抓包,可以看到,登录验证时提交了四个参数:username、password、Login以及user_token

     发现增加了user_token参数,所以爆破要选择两个参数来进行,先将请求发送到intruder

     

     设置两个参数 passworduser_token为变量,攻击类型选择pitchfork,意思是草叉模式(Pitchfork ——它可以使用多组Payload集合,在每一个不同的Payload标志位置上(最多20个),遍历所有的Payload

     

     设置参数,在option选项卡中将攻击线程thread设置为1,因为Recursive_Grep模式不支持多线程攻击,然后选择Grep-Extract,意思是用于提取响应消息中的有用信息,点击Add,如下图进行设置,最后将Redirections设置为Always

     

     

     写上value=’  点击刷新相应信息   服务器返回的token选中(即value后面,表示每次从响应中获取该值)

     

     将这个token 值先记录下来

    a5f168e741600adb87c761ac45d016dd

    然后设置payload,设置第一个参数载入字典,第二个参数选择Recursive grep,然后将options中的token作为第一次请求的初始值。

     

     

     点击start attack攻击爆破,结果成功爆破

     

     

     

  • 相关阅读:
    iOS中NSString常用操作合集
    iOS利用Runtime自定义控制器POP手势动画(经典)
    iOS学习之UILable上显示不同的字体和颜色
    iOS学习之UICollectionView使用注解
    iOS学习之new与alloc init,[NSArray array] 和 [[NSArray alloc]init] 及 self. 和 _ 的区别
    iOS学习之常用第三方框架总结(经典/必看)
    iOS学习之block总结及block内存管理(必看)
    Http协议与TCP协议理解
    SDImage框架实现原理详解
    iOS NSFileHandle常用操作
  • 原文地址:https://www.cnblogs.com/199904-04/p/12312769.html
Copyright © 2020-2023  润新知