Web攻击原理(脚本攻击)

攻击分类

  • 脚本攻击(SQL注入、XSS)
  • 授权和认证(COOK劫持和泄露、CSRF跨站脚本请求伪造)
  • 网页篡改
  • 流量攻击(CC攻击、恶意爬虫和扫描)
  • 后门类(挂马、Webshell)
  • 盗链等

SQL注入

SQl注入就是通过把非法的SQL命令插入到Web表单中或页面请求查询字符串中,最终达到欺骗服务器执行恶意的SQL语句的目的。

攻击对象:数据库或服务器

攻击原理:利用输入校验不完整等缺陷,使得输入的数据被作为SQL语句执行

权限和危害:SQL注入可以用数据库权限来执行各种命令

SQL注入攻击典型案例:

业务设计的查询语句:

select * from usrtable where usrname = ‘para1’ and pwd=‘para2’

提交参数 aa’ or 1=1--

效果: select * from usrtable where usrname = ‘aa’ or 1=1--and pwd=‘para2’

在SQL Server中,--是SQL语句的行注释符

SQL注入检测与防御

WAF(WEB应用防火墙)检测原理

特征检测,对SQL语句关键字进行特征匹配,例如select,from,where等

优点:漏报低,可扩展性强

缺点:误报严重,影响用户正常业务

语法检测,通过语法分析来判断是否是SQL注入

优点:精确检测。

缺点:性能比特征检测慢,且如果有漏报要从语法分析来完善,响应慢。

其他注入:操作系统命令注入、XML注入、LDAP注入

注入攻击的发生都是因为对输入没有做详细的验证或编码,导致输入的数据内容被执行。

xml 注入时可以先试一下 xml 中的一些有特殊作用的字符,好比测试 sql 注入我们可能先会输入一些单引号双引号等,测试 xss 时可能先输入尖括号等符号来大概看一下效果。

XML 被设计为传输和存储数据,其焦点是数据的内容。

HTML 被设计用来显示数据,其焦点是数据的外观。

XSS和缓存区溢出,SQL注入攻击是类似的,最终导致的是输入的数据被当成命令执行。

具体说,XSS就是利用各种手段,把数据部分的标签关闭,然后加入各种类型脚本,使得客户端执行嵌入脚本。

例如首页,有welcome xxx字样

Web攻击原理(脚本攻击)

xxx是登录用户名字

如果不对输入内容校验,则输入

xxx

Web攻击原理(脚本攻击)

效果如下图:

Web攻击原理(脚本攻击)

XSS危害:

  1. 窃取Cookie
  2. 窃取个人隐私

XSS检测和防御:一般在Web请求阶段检测,检测方法有

  • 特征方法
  • 特征+script语法方法

所以平时要树立安全意识,超长的URL一般都比较可疑,不要随便乱点。


分享到:


相關文章: