zoukankan      html  css  js  c++  java
  • 初识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安全中有一句只关重要的民谚:

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

  • 相关阅读:
    奇异值分解 SVD 的数学解释
    [实现] 利用 Seq2Seq 预测句子后续字词 (Pytorch)2
    [实现] 利用 Seq2Seq 预测句子后续字词 (Pytorch)
    pycharm debug后会出现 step over /step into/step into my code /force step into /step out 分别表示
    单步调试 step into/step out/step over 区别
    终端(terminal)、tty、shell、控制台(console)、bash之间的区别与联系
    pytorch: Variable detach 与 detach_
    RNN,LSTM,GRU基本原理的个人理解
    FMDB官方使用文档-GCD的使用-提高性能(翻译)
    CocoaPods一个Objective-C第三方库的管理利器
  • 原文地址:https://www.cnblogs.com/lin7155/p/13799794.html
Copyright © 2011-2022 走看看