这是我参与「第四届青训营 」笔记创作活动的的第4天
XSS
XSS全程是Cross-site scripting 跨站脚本攻击,也就是常说的js注入。
XSS攻击经常发生在两种情况,一种是数据从一个不可靠连接进入到一个web应用程序时候,另一种是没有过滤掉恶意代码的动态内容被发送给web用户。
XSS可以窃取Cookie信息,可以模拟用户登录及其他操作,也可以监听用户行为,获得个人信息。甚至可以修改DOM伪造假的登录窗口,欺骗用户输入用户名和密码等个人信息。
存储是上传有漏洞的服务器中,最终存入服务器,比如提交评论一类的。
而反射型、DOM的xss攻击则是不存入服务器。
CSRF
Cross Site Request Forgery 跨站点请求伪造
攻击者会盗用用户身份,发送恶意请求。
页面中Cookie确定用户的登陆,但无法确定一定是当前用户触发的,如果本身是get请求,那么将命令、url地址内嵌到img或者HTML中,就可以多次完成一个转账。
一个比较简单的例子就是如果用户使用get请求进行了转账或者其他操作,最后的url请求地址为ip:端口号/get?userid=123&give=1000,那么当黑客使用内嵌的DOM元素(例如img),使得img的url指向这个url请求地址,那么就会导致服务器重新执行一遍对此url的访问。
在防止CSRF攻击中,我们可以遵循以下几个原则。
- 1、尽量使用POST请求
- 2、加入验证码、
- 3、加入Referer
SQL注入
由于我之前学过数据库,所以对SQL注入稍微有一定了解,感觉记得还挺清楚,所以就不在重新写一遍笔记了,总之感觉和CSRF也差不多,大概就是在原本应该输入用户、密码或者其他数据的地方改为类似过滤条件的样式。
例如后台提供的是 select * from user where userid = 用户输入值 ,正常用户输入数字或文字,那么最终会返回一个查找结果,但如果输入的是 1 or 1 = 1 就会发现后面的数据永远是正确的,那么前面userid= 1 的条件自然就被忽略了。
SSRF
ssrf是一种由攻击者构造请求,由服务端发起请求的安全漏洞一般情况下,SSRF攻击的目标是外网无法访问的内网系统
攻击方法
- 1.对外网,服务器所在内网,本地进行端口扫描,获取一些服务的banner信息
- 2.攻击运行在内网或本地的应用程序
- 3.对内网Web应用进行指纹识别,识别企业内部的资产信息
- 4.利用file协议读取本地文件等一些方法
防御方法
- 1.限制请求的端口只能为Web端口,只允许访问HTTP和HTTPS请求
- 2.限制不能访问的内网IP,以防止对内网进行攻击
- 3.屏蔽返回的详细信息
- 4.使用DNS缓存或者Host白名单的方式。
Dos
DOS攻击可以理解为攻击方长期占线,导致其他用户的请求受到限制。
浅浅总结一下
之前两节课觉得并没有很多实操,于是也就听完就过去了,但感觉这节课还比较重要,而且了解不多,于是决定记一下,但是因为最近有点感冒,所以课程上慢了一些。这部分粗浅看了一下没有记,等想起来的时候回放已经看不了了,于是转向b站开始补了起来,所以可能和老师上的课有些区别。。