使用Burp suite,先配置浏览器代理,使其访问页面经过Burp suite,使用HTTP代理,IP为本机IP,可以用127.0.0.1,端口号随意,只要未被占用即可。然后配置Burp suite的代理选项,即Proxy的option,选择增加Proxy Listeners,interface与浏览器配置的一样即可。
在打开的页面上点击刷新,即可拦截浏览器发出的请求。单击Forward即将拦截下的消息向服务器发送。Drop选项为丢弃拦截的信息,Action是个下拉菜单,有很多选项,常用的为send to Instruder和send to Repeater.send to Instruder用于爆破,send to repeater用于发送页面获得返回信息。
以铁三的“你是管理员吗?”为例,使用Burp suite:
从网页的源代码最下面可以发现注释掉的信息
将index.php替换为password.txt,获得一个文本文件。
打开Burp suite代理,将拦截到的信息,选择Action,send to Instruder,在Instruder界面进行密码爆破:在Instruder界面中可以看到拦截的信息。通过Clear § 选项清除所有标记,选择需要爆破的地方点击Add §进行标记,即标记123.
通过Payloads选项进行设置爆破密码。在Payload Options选项中,可以使用Paste将剪切板中(即已经Ctrl+C或Ctrl+X)密码粘贴上。Load是将一个文件中的所有密码导入,add from list可以选择让Burp suite自己生成密码。
本题使用load将下载下来的password.txt中的密码导入。选择Start attacked。
对爆破结果返回长度进行排序,发现只有使用Nsf0cuS密码返回结果字节长度不一样,所以密码肯定是Nsf0cuS。
从页面源代码可以看出页面对输入密码长度有限制,所以选择将在拦截的信息中修改密码,打开Burp suite代理,将拦截到的信息,选择Action,send to Repeater。
在Repeater中进行修改,选择go,获得返回信息,返回信息HTML页面与登录页面没区别,但是从Raw界面可以看出设置返回的网页设置了一个cookie,Set-Cookie: newpage=MjkwYmNhNzBjN2RhZTkzZGI2NjQ0ZmEwMGI5ZDgzYjkucGhw; expires=Wed, 21-Mar-2018。将其中有newpag=MjkwYmNhNzBjN2RhZTkzZGI2NjQ0ZmE wMGI5ZDgzYjkucGhw,对MjkwYmNhNzBjN2RhZTkzZGI2NjQ0ZmEwMGI5ZDgzYjkucGhw进行Base64解码,为290bca70c7dae93db6644fa00b9d83b9.php,将其替换index.php。获得一个留言界面。
随便留点言点击留言,使用Burp suite拦截,选择Action,send to Repeater,修改IsLogin=1,userlevel=root,点击go,获得返回信息,包含flag。
将flag%7BC0ngratulati0n%7D进行URL解码,获得答案flag{C0ngratulati0n}。