Burp修改response欺骗

我来分享一个小技巧,Burp修改response欺骗

小胖子 (VIP你快回来,园长欺负我!) | 2014-05-29 11:38

上次看到某同学在问,很多人都说用fiddler。

在drops里面的burp教程也是一笔带过,没有很好的实例。

这里就说一下,很多网站,在做验证的时候,是基于js的验证,判断浏览器返回的json也好,布尔值也好,来判断是否跳转,判断是否合法等,我们先不讨论这种方式的合理性和逻辑性,先暂且讨论,如何修改response来达到我们的预期目的。

在某网站的找回密码流程,验证密保答案是否正确,在源代码里看到了如下代码。

 type="text/javascript">
var errMsg = "";
function checkAnswer() {
  var answerObj = document.getElementById("answer");
  var answer_tip = document.getElementById("answer_tip");
  var username = document.getElementById("username").value;

  if(isEmpty(answerObj.value))
  {
    answer_tip.innerHTML = "请填写问题答案!";
    answer_tip.style.display = "block";
    answerObj.focus();
    return false;
  }
  else {
    var flag = $.ajax({url:"/verifyAnswer.shtm",type:"POST",async:false,data:{username:username,answer:escape(answerObj.value.trim())} });
     //返回值
    flag = flag.responseText.trim();
    if(flag == "false")
    {
      answer_tip.innerHTML = "您输入的问题答案有误,请确认!";
      answer_tip.style.display = "block";
      answerObj.focus();
      return false;
    }
  }

  answer_tip.style.display = "none";
  return true;
}

function setErrMsg()
{
  var answer_tip = document.getElementById("answer_tip");
  if(!isEmpty(errMsg))
  {
    answer_tip.innerHTML = errMsg;
    answer_tip.style.display = "block";
  }
}

setErrMsg();

这里看出,只要返回是true,就进入下一个流程。

其实burp很早就给我们提供了这个功能,只是很多文章都是一笔带过没有仔细说明。

我们在密码找回界面随意填写答案wooyun,点击发送。

这里我们看到,它将我们的用户名和密保答案POST到了验证页面。

这里,点击action里的do intercept --> response this request

点击这个选项后,Forward当前包,POST出去。

然后burp就能收到response返回并且截断。

因为我们的乱填的密码,所以返回是FALSE,我们修改成TRUE。

果断看到了密码修改界面。

抛砖引玉,这个的用处当然大得很,欢迎大牛来喷我等小菜,只是昨天又有人问起我这个,我就写出来,方便大家。


你可能感兴趣的:(渗透相关)