总结
大约历时一个月左右,系统学完了WebGoat5.2标准版的所有教程。虽然有些东西学的还是比较浅显,但还是加深了很多地方的理解。
人从一无所有出生,再到一无所有的离开,区区一辈子,80载,人世走一遭,总得留下些什么。因此一定要做一个有梦想的人,特别是在年轻的时候,在面临很多选择的时候,一定要坚持自己的梦想,不能有一丝一毫的妥协。
怀揣创业梦的信安践行者
大约历时一个月左右,系统学完了WebGoat5.2标准版的所有教程。虽然有些东西学的还是比较浅显,但还是加深了很多地方的理解。
人从一无所有出生,再到一无所有的离开,区区一辈子,80载,人世走一遭,总得留下些什么。因此一定要做一个有梦想的人,特别是在年轻的时候,在面临很多选择的时候,一定要坚持自己的梦想,不能有一丝一毫的妥协。
什么是Web Service?
详细内容见这里,它有三要素:WSDL用来描述服务;UDDI用来注册和查找服务;SOAP用来在消费者和服务提供者之间传送消息。
这一节主要是讲线程安全的问题,考虑并发性。一个Web服务器总是同时服务很多人的,并且是同时处理很多的HTTP请求的,如果开发人员使用的变量不是线程安全的话,会存在并发带来的安全威胁。因为所有的线程共享同一个方法区,而所有的类变量都存储在方法区,多个线程试图同时使用相同的类变量,会造成错误。
线程的安全问题。假设有两个用户同时登陆一个网站查看自己的账户,如果他们在同一时间登陆的话,网站的反馈会发生错乱。该部分需要用两个浏览器,一个输入用户名“jeff”,一个输入用户名“dave”,如下图所示:
如图是一个登陆页面,现在要求在不知道用户名和密码的情况下登陆进去。现在我们已经知道的是如果传过去的cookie是对的话,服务器端会跳过验证用户名和密码的环节。也就是说用户名和密码可以随便填写,关键是猜对cookie,并且这个cookie需要是正在使用的会话cookie。我们先随便抓一个看看所提交的是哪些数据:
这是一个购物篮,我们点击购买,要求购买的价格低于正常价格。
用burpsuit拦截之后观察所提交的参数,发现有一项是单价price,因此我们可以修改该price后发送。
这一节主要是讲密码强度的,一个好的密码应该由大写字母,小写字母,数字组成。需要我们把密码都拿到这个网站去测试,然后给出测试结果即可。
由于这个网站关闭了,找到了这个网站用于测试密码强度。该课程设定如下结果会通过:
这节讲不当的错误处理。打开认证失败。Java代码中异常处理部分为成功认证行为进行异常捕获。该异常产生是因为密码字段使用了空指针。
打开是这样的页面: