1.跨站脚本(XSS)
XSS又叫CSS(CROSS SET SCRIPT),跨站脚本攻击。它指的是恶意攻击者往WEB页面里插入恶意的html代码,当用户浏览该页面时,嵌入其中的html代码会被执行,从而达到恶意用户的特殊目的;(钓鱼、盗取cookie、操纵受害者的浏览器、蠕虫攻击)
2.反射型跨站(Reflected XSS)
服务器端获取http请求中的参数,未经过滤直接输出到客户端。如果这些参数是脚本,它将在客户端执行(钓鱼常见)。
3.存储型跨站(Stored XSS)
用户输入的数据存在服务器端(一般存在数据库中),其他用户访问某个页面时,这些数据未经过滤直接输出。这些数据可能是恶意的脚本,对其他用户造成危害。(挂马
常见)
在允许上传文件的应用中,攻击者上传一个包含恶意代码的html或者txt文件,用户浏览这些文件执行恶意代码;
一般的应用中上传图片最普遍,如果图片中包含恶意代码的html或者txt文件,,低版的IE直接请求这个图片时,将忽略Content-Type执行图片中的代码。
4.DOM跨站(DOM-Based XSS)
攻击者构造一个包含恶意Javascript的URL,然后引诱用户请求这个URL。服务器收到请求后没有返回恶意的Javascript。
浏览器在处理URL中的数据时,执行恶意代码。
5.跨站请求伪造(CSRF)
强迫受害者的浏览器向一个易受攻击的Web应用程序发送请求,最后达到攻击者所需要的操作行为。
恶意请求会带上浏览器的Cookie。受攻击的Web应用信任浏览器的Cookie。
6.SQL注入
用户输入的数据未经验证就用来构造SQL
查询语句,查询数据库中的敏感内容,绕过认证添加、删除、修改数据、拒绝服务。
7.XML注入
和SQL注入原理一样,XML是存储数据的地方,如果在查询或修改时,如果没有做转义,直接输入或输出数据,都将导致XML注入漏洞。攻击者可以修改XML数据格式,增加新的XML节点,对数据处理流程产生影响。
8.URL跳转
Web应用程序接收到用户提交的URL参数后,没有对参数做”可信任URL”的验证,就向用户浏览器返回跳转到该URL的指令。(钓鱼攻击)
9.文件系统跨越
文件系统中../代表上级目录,通过一个或多个../跨越目录限制。
10.系统命令
用户提交的参数用于执行系统命令的参数。
使用”|”或”;”执行多条命令。
11.文件上传
Web应用程序在处理用户上传的文件时,没有判断文件的扩展名是否在允许的范围内,或者没检测文件内容的合法性,就把文件保存在服务器上,甚至上传脚本木马到web服务器上,直接控制web服务器。(未限制扩展名、未检查文件内容、病毒文件)
12.任意文件下载
下载附件等功能
Apache虚拟目录指向
Java/PHP读取文件
下载数据库配置文件等
目录浏览
13.权限控制
有没有权限
有些系统不需要权限控制
有没有设置权限
有了强大的权限系统,但是没有使用
有没有偷工减料权限
URL级别
菜单级别
14.访问控制
水平权限
Web应用程序接收到用户请求,修改某条数据时,没有判断数据的所属人,或判断数据所属人时,从用户提交的request参数(用户可控数据)中,获取了数据所属人id,导致恶意攻击者可以通过变换数据ID,或变换所属人id,修改不属于自己的数据。
垂直权限
由于web应用程序没有做权限控制,或仅仅在菜单上做了权限控制,导致的恶意用户只要猜测其他管理页面的URL,就可以访问或控制其他角色拥有的数据或页面,达到权限提升目的。
15.Session Expires
会话过期
浏览器过期
服务器30分钟无动作过期
服务器24小时强制过期
保持会话