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

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

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

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

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

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

<script 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();
</script>

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

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

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

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

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

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

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

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

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

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

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

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

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

[原文地址]

相关讨论:

1#

Reserved | 2014-05-29 11:45

消灭O回复

2#

zzR (你说我不能笑- -!) | 2014-05-29 11:46

mk姐夫

3#

zzR (你说我不能笑- -!) | 2014-05-29 11:49

乌云有这样案例的,好像还放到了微博上

4#

大白菜 | 2014-05-29 11:49

。。。新思路哈

5#

魇 | 2014-05-29 12:14

感谢一个,淫荡的头像跟思路

6#

园长 (bluereader.org) | 2014-05-29 12:17

胖妞,看不懂啊。好男好难。

7#

阿布 (的撒放大萨斯大幅度司法的发送放大萨发送飞洒放大) | 2014-05-29 12:19

最后那个图没看懂 改哪里。

8#

B1uH4ck | 2014-05-29 12:36

我在想,他的密码修改界面是存在于客户端的还是服务器动态传回的,他返回的false是给js的,那javascript:也可以控制js的啊。

9#

z7y (谁知女人心,园长卫生巾。) | 2014-05-29 12:43

感谢么么哒!

10#

超威蓝猫 (‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮) | 2014-05-29 12:50

就这个例子来说 直接控制台重写checkAnswer()不就行了

11#

Ki11 (下载我的头像改后缀为rar有惊喜哦) | 2014-05-29 12:54

@阿布 最下面一行中间位置有个FALSE

12#

Jumbo | 2014-05-29 12:56

貌似有人问过这个问题,说直接把错误改成成功,就绕过了

13#

elysier | 2014-05-29 13:10

repeater中还是不行呀。

14#

小学猹 | 2014-05-29 13:36

淫荡的思路又来了

15#

索马里的海贼 | 2014-05-29 13:43

一般来说。。如果如果一个人的js水平能够找到和看懂请求返回的流程并构造合适的请求绕过js判断的话。。。

这个人基本上就已经不用burp构造了,直接js里面扒拉出来跳转地址就完了

如果这个人的js水平不足以分析流程构造合适返回包的话。。那拿着burp也不知道怎么改。。。

所以楼主这个命题。。。

16#

咖啡 (乌云在我们心里搁下一块阴影我聆听沉寂已久的心情) | 2014-05-29 13:45

学习了

17#

NaiBa | 2014-05-29 13:53

这个方法好。 有时候这个功能很需要的。

18#

Hxai11 (求工作) | 2014-05-29 14:24

觉得burp真的很不错,找个时间要好好学学

19#

Ivan (Null.) | 2014-05-29 14:26

方法不错 学习了。

20#

随时回来 (我们做一些很酷的事,去改变世界) | 2014-05-29 14:38

我是捧场王 顶胖子 学到一记

21#

hacker@sina.cn | 2014-05-29 14:43

其实楼主教会了劳苦大众如何修改响应报文内容

22#

applychen | 2014-05-29 14:48

在match and replace里面选择response body把false替换为ture就好了。

23#

beastk | 2014-05-29 14:49

其实在12306中,可以用楼主的方法修改自动刷新的时间,当然JS熟悉的话,可以直接用JS把相关函数HOOK了。

24#

病狗 (你在乌云这么叼,你家人知道吗) | 2014-05-29 15:40

都不知道还有这个选项

25#

Spongebob | 2014-05-29 16:03

get☑

26#

Azui | 2014-05-29 17:45

学习了

27#

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

@索马里的海贼 有的人懂,但不是所有人都懂,不要以偏概全。

28#

/fd (madafaka #swag #yolo) | 2014-05-29 18:34

why not fiddler2

29#

从容 (快点交出0day,我保证不砍死你- -.) | 2014-05-29 18:39

mark

30#

px1624 (aaaaaaaaa) | 2014-05-29 18:42

。。。

31#

Coody (&_&) | 2014-05-29 19:01

32#

xiaoL (http://www.xlixli.net) | 2014-05-29 19:11

不知道楼上几个在纠结这个JS干嘛...

楼主都说是在介绍这个功能了...

33#

核攻击 (统治全球,奴役全人类!毁灭任何胆敢阻拦的有机生物!) | 2014-05-30 09:39

我觉得按F12改“if(flag == "false") ”更快~

34#

her0ma | 2014-05-30 10:39

感谢撸主的分享,学习了~

35#

iskit | 2014-05-30 11:27

@核攻击 同意

36#

Anonymous (园长 - 502 Bad Gateway) | 2014-05-31 01:13

胖爷么么哒

37#

魂淡、 | 2014-05-31 11:52

真棒。

38#

从容 (快点交出0day,我保证不砍死你- -.) | 2014-05-31 12:13

胖妞,楼上的所有人要给你生孩子- -.

39#

Jeremy | 2014-05-31 16:30

fiddler也可以。。。。。。

40#

奎尼 (>///<"') | 2014-05-31 17:14

why not mitmproxy.

41#

Metas (巫的世界里,没有光明) | 2014-06-06 10:59

@核攻击 贱贱的样子。

留言评论(旧系统):

佚名 @ 2014-06-02 15:05:53

如果找回密码要填邮箱的话 就没效果了的吧?

本站回复:

具体看情况灵活使用~