WebGoat Client side -- Client side filtering

一、习题通关

第2页

背景:作为CSO,可以看到除CEO(Neville Bartholomew)之外的其他员工的工资,没有权限看CEO的工资

任务:找到CEO(Neville Bartholomew)的工资

解题步骤:

这题老简单了,2步过关

1、准备好burpsuite抓包,网页上select user选项框那里随便选一个人

2、如上图所示,网页上看确实只能看到一个员工的 ,但是burpsuite里面可就不是了,在proxy模块http history中找到下图这个url,看Response,数据部分以json格式返回了所有员工包括CEO的salary,拉到最下面找到Neville Bartholomew的salary,复制到网页上submit即可过关

另外其实如果懒懒地不想开burpsuite的话,这关也能过,在salary那个表上鼠标点右键,再点 检查(chrome浏览器),然后往前找一找,能找到下图这个隐藏的table,把最后一个tr(id=112)标签点开,就能看到Neville Bartholomew的salary

第3页

任务:0元买手机

解题步骤:

这一题比上一题难一些。从上图可见,有个checkout code输入框,应该是要在这个输入框中填入折扣码之类的东西。

1、首先想到的是查看网页元素,会不会注释或者隐藏域中有泄露checkout code呢?对准checkout code输入框点鼠标右键,再点 检查,果然注释里面泄露checkout code了

2、可是哪有这么容易的事情。。。三个code输进去提交之后,都是有一定的折扣,但是并没有免费。比如下图这样,加个只是从899降到了674.25,并没有达到免费的目标。

这可把我整不会了,burpsuite抓包也没抓到什么东西。倒是想过看看js代码,但是茫茫代码海,我也不知道根据什么搜索呀(没有调试前端代码的经验)。后来看了这篇 WebGoat之路-7-Client side | riChar ,又自己琢磨了一下,终于弄出来了

3、在价格(PRICE下面)那儿点鼠标右键,菜单里面点 检查。

4、找到上图的红框框,在上图红框框的位置点鼠标右键,菜单里面选Break on,再选subtree modifications,这样就可以在价格数值这个text子节点有变化的时候设置断点。

5、改一下checkout code输入框里面的内容,然后点buy,此时开发者工具会自动跳转到断点,会展现出奇奇怪怪的代码,点一下pretty-print,代码就会变乖了

6、得到好看的代码之后,一边点下图红框框起来的弯弯的箭头,一边观察代码

7、点呀点呀,点了好多下,终于看到checkoutcode了,下图红框里面有个url,从下图来看,这个url应该和checkoutcode拼接使用的,可以得到相应的discount,但如果不拼接checkoutcode呢?

8、把上图的url拼接到webgoat根目录下面,后面不拼接checkout code,就可以看到所有的checkout code及其对应的discount。如下图所示,discount为100的checkout code是get_it_for_free,把这个填入网页,点buy按钮即可过关。

二、课程内容

本课主要是想提醒:服务器返回客户端的信息应该在服务器端过滤,而不是在客户端过滤。永远不要把多于客户端应该得到的信息返回给客户端。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值