网易白帽子视频的一些笔记

攻击类型

针对前端(客户端)的攻击:钓鱼,暗链,xss,点击劫持,CSRF,URL跳转等问题

针对后端(服务端)的攻击:SQL注入、命令注入、文件上传、文件包含、暴力破解等问题

HTML DOM

DOM 是树结构

DOM本质:连接WEB页面和编程语言

可以更直观了解页面元素

最重要的是使用JavaScript通过dom来对html进行任意操作

JavaScript、DOM、BOM

JavaScript是遵循ECMAScript标准的脚本语言

JavaScript可以运行在 HTML的<script></script>之间HTML的事件属性中,如onclick浏览器的JavaScript控制台中

 

JavaScript DOM

HTML源码已经完成,在页面操作HTML需要用到JavaScript HTML DOM函数

获取一个HTML元素内容

第一步,获取元素 : getElementById() 通过id获取元素

第二部,获取元素内容: .innerHTML 获取元素内容

JavaScript BOM

BOM: 浏览器对象模型 Browser Object Model

本质 :连接浏览器和编程语言

使用 JavaScript 获取浏览器信息和操作浏览器就是JavaScript BOM

浏览器警告用户函数

警告弹窗alert() 、确认弹窗confirm()、提示弹窗prompt()(TIPS:常用于简单的调试和信息展示。如XSS漏洞的测试)

Cookie

从浏览器获取用户Cookie

document.cookie

Cookie讲解:通常是服务器发送给用户客户端的一小段文本信息

常见场景:用户输入用户名和密码成功登陆网站后,网站会生成一个cookie给用户,当做用户凭证

这个凭证cookie就相当于我们的钥匙,我们每次访问网站的时候浏览器都会带上钥匙(cookie)

获取浏览器屏幕信息:(window.)screen

获取/控制用户页面URL:(window.)location

获取访问者浏览器信息:(window.)navigator

为何暴力破解可以突破CSRF Token

CSRF Token:我们称这种类型的随机参数为CSRF token,它保证了攻击者无法猜测到所有参数。

因为构造HTTP请求的人不一样:暴力破解的攻击者是当前用户,受害者是其他用户

CSRF的攻击者是其他用户,受害者是当前用户

命令注入

命令注入流程:是否调用系统命令,函数或函数的参数是否可控,是否拼接注入命令

命令注入防御不推荐黑名单,用白名单。

如果过滤敏感命令,windows可以使用双引号绕过"",linux中还可以用单引号绕过''

例如who""ami

如果命令注入不显示输出结果

延时注入:window ping 127.0.0.1 -n 5 >nul linux sleep 5

远程请求:window ping,telnet等, linux wget,curl等,比较流行的是dns解析nslookup

文件上传

合成文件命令:copy 1.jpg/b+1.txt/a 2.jpg

Nginx解析漏洞:需要php.ini中的cgi.fix_pathinfo=1;

畸形解析漏洞:xxx.xxx/xxx.php 只要前一个文件存在,就会当成后面的php文件解析。

防御:

1、阻止非法文件上传:文件名后缀白名单,文件类型校验 content-type,文件内容头部判断

2、阻止非法文件执行:文件重命名,文件压缩重生成,存储目录执行权限(不让文件执行),存储目录与web分离(站库分离)

原文地址:https://www.cnblogs.com/shijiahao/p/13382567.html