SQL注入(英语:SQL injection),也称SQL注入或SQL注码,是发生于应用程序与数据库层的安全漏洞。
简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了字符检查,那么这些注入进去的恶意指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏或是入侵。
Sql 注入产生原因及威胁:
产生的原因
在应用程序中若有下列状况,则可能应用程序正暴露在SQL Injection的高风险情况下:
-
在应用程序中使用字符串联结方式或联合查询方式组合SQL指令。
-
在应用程序链接数据库时使用权限过大的账户(例如很多开发人员都喜欢用最高权限的系统管理员账户(如常见的root,sa等)连接数据库)。
-
在数据库中开放了不必要但权力过大的功能(例如在Microsoft SQL Server数据库中的xp_cmdshell延伸存储程序或是OLE Automation存储程序等)
-
太过于信任用户所输入的数据,未限制输入的特殊字符,以及未对用户输入的数据做潜在指令的检查。
跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。
ps: 为什么不叫 CSS?为了和层叠样式表(Cascading Style Sheet,CSS )有所区分。
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。
这些恶意网页程序通常是JavaScript,但实际上也可以包括Java,VBScript,ActiveX,Flash或者甚至是普通的HTML。
CRLF 注入是一类漏洞,在用户设法向应用插入 CRLF 时出现。在多种互联网协议中,包括 HTML,CRLF 字符表示了行的末尾,通常表示为 \r\n
,编码后是%0D%0A
。
所以,一旦我们能够控制HTTP 消息头中的字符,注入一些恶意的换行,这样我们就能注入一些会话Cookie或者HTML代码,所以CRLF Injection又叫HTTP Response Splitting,简称HRS。
在和 HTTP 请求或响应头组合时,这可以用于表示一行的结束,并且可能导致不同的漏洞,包括 HTTP 请求走私和 HTTP 响应分割。
前言
我们先看一篇比较常见的解决方式:
实现
拦截器配置
- web.xml
XssSqlFilter
com.xxx.XssFilter
XssSqlFilter
/*
REQUEST
跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。
跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
攻击细节
跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。
就是一些比较常见的避免,比如 123456 这种。
安全永远取决于系统的短板:
比如:mysql 的密码,主机的密码,账户的密码等等,任何一个泄露,基本上就是GG。
解决方案
用户本身
设置较为复杂的密码,原则上至少 8 位以上
服务器
严谨暴力重试,比如一次失败之后,就需要输入验证码。
ps: 第一次输入错误之后,才弹出验证码,这样用户体验比较好。验证码,滑块的用户体验是最好的。
一天错误 3 次,直接冻结。
监控报警等等。
也称URL跳转、URL重定向漏洞,由于目标网站未对程序跳转的URL地址及参数做合法性判断,导致应用程序直接跳转到参数中指定的的URL地址。
攻击者可通过将跳转地址修改为指向恶意站点,即可发起网络钓鱼、诈骗甚至窃取用户凭证等。
常见应用场景
主要是业务逻辑中需要进行跳转的地方。
比如登录处、注册处、访问用户信息、订单信息、加入购物车、分享、收藏等处。

XXE全称是——XML External Entity,也就是XML外部实体注入攻击.漏洞是在对不安全的外部实体数据进行处理时引发的安全问题。
我们可以利用XML注入来做很多有意思的事情,具体看后文,有hacking细节.
关于DTD的那些事
服务端请求伪造(Server Side Request Forgery, SSRF)指的是攻击者在未能取得服务器所有权限时,利用服务器漏洞以服务器的身份发送一条构造好的请求给服务器所在内网。
SSRF攻击通常针对外部网络无法直接访问的内部系统。
原理
很多web应用都提供了从其他的服务器上获取数据的功能。
使用指定的URL,web应用便可以获取图片,下载文件,读取文件内容等。
SSRF的实质是利用存在缺陷的web应用作为代理攻击远程和本地的服务器。
一般情况下, SSRF攻击的目标是外网无法访问的内部系统,黑客可以利用SSRF漏洞获取内部系统的一些信息(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)。