初识web安全

web默认运行在服务器的  80 端口

搜索信息,利用google hack

常用语法:

site 搜索子域名

intext 正文中存在的关键字

intitle 标题存在的关键字

info

inurl URL存在关键字的网页

filetype

漏洞篇

SQL注入

根据SQL语言的参数类型,可以大体分为两大类型,一是数字型注入,二是字符串注入

数字型注入,在SQL语句的where 字段 添加 OR 1=1 时SQL语句为真,顺利执行结果

字符型注入,需要字符闭合,把数字转换成为字符注入

SQL注入还可以利用数据库本身的特点进行注入,比如利用数据库的函数,错误信息注入等。

预防的手段:

严格的数据类型,在传递给SQL语句参数时,判断输入的参数类型是否符合规范

如果输入的参数有特殊的字符,需要进行转义

使用预编译语句,即PreparedStatement

使用框架技术,如Hibernate,mybatis

上传漏洞

只有存在上传文件的地方,就可能存在漏洞,攻击者可以通过隐蔽的方法,比如在图片中隐藏木马,包含恶意代码的文件上传到服务器,而服务器 解析 文件,就可能执行这些恶意文件。

比如IIS容器中,会把 *.asa , *.asp 文件夹中的文件当作代码解析,如果攻击者把文件上传到这些文件夹里,就能窃取服务器内容。

类似的有Apache 解析文件时,是根据扩展名向前解析,碰到 Apache能识别的文件扩展名,就会成功解析,比如用户上传了 1.php.rar.ss 文件,Apache 不能识别ss , rar 后缀,但能识别php,所以用户上传的文件会以PHP文件解析。

PHP CGI也是一个著名的文件扩展名向前解析漏洞。

服务端预防措施:

建立黑名单,白名单,如果上传文件的扩展存在黑名单目录,那么上传失败;如果文件的扩展名存在白名单目录,上传成功。效果不好,非常容易更改扩展名 破解黑名单和白名单。

MIME验证,MIME设定某种扩展名的打开方式,可以查看MIME的类型,判断上传文件的类型。

目录验证,将文件上传到指定的目录,如果目录不存在则新建一个目录,文件存入服务器本地时,随机新设立一个名字。

上传漏洞发生的原因:

目录过滤不严格,攻击者可能利用畸形目录;文件未重名,攻击者利用WEB容器的解析规则

XSS漏洞,跨脚本漏洞

前端攻击,在用户的HTML界面嵌入JavaScript代码,获取信息,比如cookie,服务器信息。

常见的XSS攻击,在用户输入的地方 插入JavaScript代码,利用webshell 获取服务端信息。

预防的手段:

对用户的输入进行过滤,过滤掉那些特殊的字符 ; 对用户的输出 进行 转义,转义掉那些特殊的字符。

命令执行漏洞

 OS漏洞,获取直接执行系统命令的能力,最常发送的是在PHP页面,发送OS漏洞,相当于在webshell上执行命令。

CSRF漏洞,跨站点请求伪造

 发生的场景:

一是 你正在与服务器进行一个会话

二是  在会话没有关闭期间,攻击者根据链接信息,伪造了一个URL请求,你点击了这个请求。

预防手段:

二次确认,对于重要的URL访问链接,加上二次验证,比如图片验证,确认验证。

Token验证,在会话期间服务器发送一个唯一的token字段,每次URL请求都需要加上这个token字段。 注意如果用户遇上了XSS请求,攻击者会根据cookie信息,窃取token,那么token验证就失效了。

逻辑漏洞

权限漏洞

密码找回漏洞,在用户发送找回连接时,在用户验证完成后,修改密码之前,劫持数据包,修改数据包中的 用户邮箱连接,这时服务器根本不知道 用户 的找回邮箱修改了,也会发送新设密码页面,攻击者可以根据页面 修改 邮箱的密码。

支付逻辑漏洞,如果在用户购买商品时,闯入的商品数量,不是正数,而是一个负数,那么就会发送漏洞。

代码注入,根据用户的输入xml, json , xpath信息 传递恶意代码

WEB服务器本身的漏洞

在WEB安全中有一句只关重要的民谚:

对用户的一切输入信息 要进行过滤,对用户的输出要进行转义。

原文地址:https://www.cnblogs.com/lin7155/p/13799794.html