说明
pikachu是一个免费的php靶场,类似于dvwa,从github下载对应的项目,解压缩并放到phpstudy的www目录下即可。在phpstudy软件中开启apache、mysql,访问首页:192.168.10.150/pikachu 地址,并根据提示进行初始化。
在初始化之前,需要找到目录下的config.inc.php文件,将mysql的用户名、密码和数据库名修改为正确的名字,如果使用phpstudy的话,默认的名字都是root。
基于表单的暴力破解
打开第一题,随便输入username和password,然后登陆,显示用户名和密码错误。随后将登陆请求发送至burpsuite的intruder模块中,将用户名设置为admin,将密码设置了position点,爆破方式选择sniper,然后在payload中加载一个弱口令文件,进行attack。
attack时,根据响应包进行长度排序,找出长度异常的数据包。如上图所示,用户名为admin、密码为123456。
验证码绕过
验证码绕过一共有两道题,基本跟之前的暴力破解是一样的,属于很简单的静态验证码。设定用户名为admin,密码破解之后为123456。
token防爆破
在页面输入用户名和密码,点击登陆并使用burpsuite查看
从提交请求的响应包中可以得到最新的token值,该token值需要在下次请求的时候使用,既身份标识是实时更新的。
现在我们一方面要不停的替换密码信息,另一方面要不停的从响应包中获取最新的token并替换,将该请求发送至intruder模块中进行attack。
将密码和token都设置为positions,现在两个各自有不同的payload,密码可以使用字典,而token需要使用从响应包中提取的信息,因此Attack type使用Pitchfork,各自使用各自的互不影响。
设置密码的payload,选择简单列表形式,在Payload Options栏加载一个可用的密码列表,答主此处使用了一个网络下载的十万数量级的弱口令文件。
在Options选项中,找到Grep Extract栏,添加一个从响应包中的提取规则。点击Add,并从响应报文中找到对应的token信息位置,选中之后会自动生成匹配规则,然后点击OK确定。确定之后会在Grep-Extract列表中出现这一规则。
添加规则之后,请求包与自己对应的响应包有了顺序以来,因此需要单线程attack,Options中的线程数量修改为1。
然后就是切换到Payloads选项中,选择设置payload 2,此时类型选择Recursive grep,在Payload Options栏会看到刚刚生成的规则信息,选中之后进行attack即可。此时要求输入initial payload for first request,既第一个attack请求中的token值,只要确定第一个密码不是正确密码,此值可不必输入。
点击attack进行暴力破解,可根据长度进行排序,爆破成功之后可轻易区分出来。