第六关 对异常输入的处理不一致
这一关就是通过输入字符长度异常处理的方式,绕过正常的邮箱注册限制,用新注册的的用户去到管理面板删除其他用户
提示:1、靶场未充分验证用户输入
2、可以利用其帐户注册过程中的逻辑缺陷来访问管理功能
3、给了个邮箱客户端,有自己的邮箱地址
具体操作:
1、提示说有admin管理,那就去用burp自带的扫描去看下有没有该路径
2、打开burp-----target------site map-------选中靶场站点地址鼠标右键------Engagement tools------Discover content------配置都保持默认就行,然后点击Session is running开始(操作见第三关)
如图:

去浏览器尝试访问admin路径,发现可以正常访问
页面显示只有以DontWannaCry身份登录,才能访问管理员界面

接着来到注册页面,也提示,如果在DontWannaCry工作,就使用@dontWannaCry.com邮箱

知道注册新用户填写的邮箱地址,靶场客户端给了自己的邮箱地址
复制一下,留作备用
attacker@exploit-0a20004904be8447804d7ab701bd0069.exploit-server.net

如图正常注册用户:

然后跳到页面显示“Please check your emails for your account registration link”(这是个令牌生成的界面),那么再点击页面上的邮箱客户端的按钮
然后如图:点击链接,完成注册

跳到页面显示“Account registration successful!” 注册成功
然后再回到“我的账户”页面进行登录
登录进来,发现没有和上一关类似的更改邮箱的功能那还有什么地方可以利用呢?

看到这一关是exceptional inputexceptional input(输入异常),那就是说应用程序未验证用户的输入。 我的做法是:可以尝试下向应用程序输入超长的输入,看应用程序是否接受该输入
一般说应用程序会做一个字符长度限制,比如说文件名一般最大的长度是255的字符,超出这个长度,就会把你超出的部分给截断
好,那再尝试一下注册用户

然后找到这个注册的POST /register数据包,发往intruder
如图
email地址里面@前面添加变量

payloads设置

线程池保持默认就行
开始攻击

然后回到邮箱客户端,点击300个A的链接完成注册

然后登录300个a的,账号和密码都是test5

因为能够接受的字符长度是255,接下来,先log out注销这个300A的账户
再去重新注册一个用户

找到触发的数据包发往repeater
刷新页面时发现令牌已经过期,注意如果生成令牌的界面,令牌过期,那么就要再重新注册个用户
生成令牌的界面如图:

我这里令牌已经过期,重新再搞一下注册:

跳到页面:

然后再去找到提交注册的这个数据包发往repeater
填写注册资料之前,先改造下要填写的邮箱位置的内容
如图:

插入的邮箱地址:
把@dontwannacry.com当做子域,然后到这个.com截止刚好是255,后面的就被截断了,这样就注册了dontwan的邮箱地址了
email=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA@dontwannacry.com.exploit-0a20004904be8447804d7ab701bd0069.exploit-server.net
把改造后地址复制过来,记得把@编码,ctrl+u快捷键编码
发送数据包后,返回成功,邮箱链接已经生成

直接去邮箱客户端查看,点击链接完成注册

如图完成注册

然后登录注册的test8:test8
就看到成功注册@dontwannacry.com了,以这个身份就可以去管理界面了

进入管理界面,删除carlos用户

如图,完成靶场
