SQL注入
由于程序中对用户输入检查不严格,用户可利用应用程序根据提交的数据动态生成SQL命令的特性,在URL、表单域,或者其他的输入域中输入自己的SQL命令,改变SQL命令的操作,将被修改的SQL命令注入到后端数据库引擎执行。
成因
(1)程序编写者在处理应用程序和数据库交互时,使用字符串拼接的方式构造SQL语句。
(2)未对用户可控参数进行足够的过滤便将参数内容拼接进入到SQL语句中。
最终,用户提交的参数数据未做充分检查过滤即被代入到SQL命令中,改变了原有SQL命令的“语义”,且成功被数据库执行。
内联式
终止式
攻击者注入一段包含注释符的SQL语句,将原来的语句的一部分注释,注释掉的部分语句不会被执行。
XSS跨站
反射型
反射型跨站通过给别人发送带有恶意脚本代码参数的URL,当URL地址被打开时,特有的恶意代码参数被HTML解析、执行。它的特点是非持久化,必须用户点击带有特定参数的链接才能引起。
存储型
因为存储外部数据而引发的XSS漏洞,存储型XSS漏洞广泛出现在允许Web用户自定义显示信息及允许Web用户上传文件信息的Web应用程序中,大部分的Web应用程序都属于此类
上传漏洞
在Web应用中,上传功能是用户与服务器进行文件交互的重要手段。每个人都会接触到上传功能,以头像和附件上传功能最为常见。在这个过程中,用户会上传自己的信息,服务器接受到用户端的上传信息后将文件保存到服务器某个目录中。
文件上传攻击是指攻击者利用Web应用对上传文件过滤不严的漏洞,将应用程序定义类型范围之外的文件(木马或后门程序)上传到Web服务器,在上传成功后攻击者即可获得当前服务器的webshell。
注: webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。正因如此,也有小部分人将代码修改后当作后门程序使用,以达到控制网站服务器的目的。
攻击条件
- 目标网站具有上传功能且木马能够成功上传。
- 上传的目标文件能够被Web服务器解析执行。
- 知道文件上传到服务器后的存放路径和文件名称。
- 目标文件可被用户访问。