常见的网络安全漏洞

admin 2023年4月19日03:36:32评论31 views字数 2448阅读8分9秒阅读模式

瞎编乱造

以下内容纯属自嗨

  • 从代码审计来看,分析可能存在漏洞的位置是否外部可控,比如命令执行函数中的参数是否来自外部http,是否进行了顺利过滤或白名单。

  • 漏洞是一些功能上的流程的漏,逻辑代码表示上完全疏忽。

  • 不能急,要仔细观察每个链接,分析每个流程,分析代码实现逻辑。

SQL注入

漏洞原理

攻击者注入精彩的SQL,到达成功执行。

漏洞测试

  1. 引号或双引号或输入单等

  2. 常用测试payload

    https://github.com/payloadbox/sql-injection-payload-list
  3. 存在数据的链接

测试工具

  1. Burpsuite

  • 使用intruder功能自带SQL插入爆破字典,可探测插入点

  • sqlmap

    可联动CO2插件

    使用手册
    https://sqlmap.kvko.live/usage
    
    常用命令
    python sqlmap.py -u http://xxx.xom --random-agent --cookie=COOKIE --batch -v 3 --delay 2
    
    从http请求探测
    -r
    
    测试指定参数 加*
    python sqlmap.py -u "http://targeturl/param1/value1*/param2/value2/"
    
    指纹识别
    默认识别指纹,如果想更准确识别开启下列参数
    -f 或 --fingerprint
    
    并发
    --threads
    
    使用技巧
    - 没检测到问题时可提升level等级探测尝试一下

漏洞防御

  • WAF

  • 预编译

    形式是确定正确的 SQL 语法,用户输入不能改变 SQL 语法

身份验证漏洞

漏洞原理

身份验证和授权的区别:一个是身份验证,另一个是被允许做某事。

  1. 身份验证机制弱,无法防爆破

  2. 代码逻辑存在问题,可以随意

漏洞测试

  1. 基于密码登录

  • 检查验证码、错误消息、响应差异

  • 有时,这里也有一个不同寻常的可能获得成功

  • 例如,如果请求同样以的响应时间,大多数用户在此时间的请求都可能显示出不同的情况。这猜测只是可能正在正确处理用户;步骤会导致可能会出现不同的密码。不同的可能会通过这个有效输入才能使攻击者有一个额外的时间,但攻击者可以通过长时间的密码来明显地检查是否。明显的时间来处理。

  • 爆破用户名密码

  • 固定密码爆破用户名或固定用户名爆破密码

  • 用户名枚举

    靶练习场1

    靶练习场2

  • 多身份认证

    例如带验证码

  • 当输入和验证码输入不在一个页面

    试用自己的账户确认或已知登录后的URL,然后切换其他账户跳转验证码。

  • 测试验证码是否可以绕行

  • 爆破验证码

  • 限制限制

    根据目标限制制定爆破方式

  • 失败失败阻止IP,若登录成功重置计数

    可结合已知用户登录添加到字典,在规定时间内,多次实施限制。

  • 存在逻辑缺陷的锁IP

    在一定次数爆破后报错信息可能出现差异,因此爆破出用户名

    靶场

  • JSON请求,一次填充多个队列

    靶场

  • 分析逻辑,考虑不同

测试工具

  • Burpsuite

目录遍历

漏洞原理

加载文件内容链接没有过滤,或者文件名后台没有进行层层处理处理,攻击者可以展示系统绝对路径或上层目录的方式获取任意文件。

漏洞测试

  1. 在读取文件内容或加载文件的参数后添加payload

    ../../ect/passwd
    直接添加绝对路径:/etc/passwd
  2. 在网页页面图片新链接打开,更改文件名为payload

  3. 限制限制

  • 双写有效载荷

  • URL 编码或 URL 编码

  • 给定文件目录后添加payload

  • 后缀名前%00截断

测试工具

  • Burpsuit 目录遍历搜索,或使用自己的,包含经常测试有效负载。

  • 爆破位置:文件名处、后缀前、指定目录文件名后边

漏洞防御

  1. 白话过滤

  2. 后台使用路径规范化函数过滤

注射命令

漏洞原理

(白盒)后台代码调用系统命令的位置可以被外部控制。

漏洞测试

白盒代码审计可利用参数的覆盖范围的漏洞类型,外部参数执行函数,分析是否可控,是否过滤。

逻辑漏洞

漏洞原理

开发过程中对各种功能或流程不考虑,用户输入不考虑,导致流程交付或输入全面产生。

漏洞测试

  1. 常见场景

  • 代表修改数量、价格的参数值

  • 数量不小于0最大不超过,抓包也无法修改,爆破数量试一试

  • 首先正常走完流程功能,然后分析可能出现的逻辑缺陷

测试工具

Burpsuite

  • 修改、爆破

漏洞防御

  • 充分考虑用户的各种输入

越权漏洞

漏洞原理

使用不通过访问URL的访问方式,如参数来访问资源,攻击判罚者可以查看访问资源逻辑,达到越权控制的目的。

漏洞测试

  • 结合burpsuite Autorize插件可检测

    在测试的时候要仔细,仔细地访问每个链接,测试是否可以越权

  • 其他方式

    分析逻辑,找到自然的方式

上传文件漏洞

漏洞原理

网络服务器充分验证上传文件的类型、内容或大小的情况下将文件上传到文件系统的这些,不符合上传文件对系统造成的影响。

漏洞测试

跨跨 zip 类型的黑盒测试无法或者看到类似的结果,并且可能造成破坏。外部找到点,结合白盒代码审计上传可高效目录测试。

  1. 文件类型

  2. 文件名称

    java跨目录上传,文件名包含../

    之前是否同意

  3. 文件大小

    过大文件可造成资源

  4. 文件内容

    包含恶意代码

  5. 压缩文件上传

  • 文件大小,zip 炸弹

  • 文件内容,跨目录

  • 白盒代码审计

测试工具

  • burpsuite抓包修改

  • find-sec-bugs+IDEA审计代码(java)

漏洞防御

  • 图形文件类型、名称、大小

  • 白厅、路径指标

SSRF漏洞(待补充)

漏洞原理

服务端请求,鼓励服务者向非预期的位置发出请求。

漏洞测试

  • 重点关注存在URL、加载资源的链接

  • 爆破

  • 探测端口

测试工具

burpsuite

跨站脚本漏洞

漏洞原理

  1. 反射型XSS

    输入接口处过滤器,没有解析对用户输入安全,浏览器被过滤。

  2. 存储型XSS

    恶意脚本插入数据库,用户访问漏洞页面,加载恶意脚本。

  3. DOM型XSS

    图片从用户输入获取内容,目标DOM脚本被DOM解析。

漏洞测试

  1. 手工测试

  • 如在输入点输入一串数字:111111

  • 观察是否原样返回

  • 输入测试payload

  • 有效载荷常用技巧

    写、大小写、双协议

  • XSS备忘单

  • 自动化测试

  • burpsuite爆破点插件

  • x射线被动扫描

  • AWVS和appscan也能扫描

漏洞防御

  • 输入过滤,后台过滤

  • 输出内容编码

跨站

漏洞原理

攻击者伪装成网站用户对网站发起恶意请求。

使用条件

  • 用户已经登录网站

  • 用户使用浏览器访问恶意链接

  • 没有不可预测的参数

漏洞测试

  • 使用burpsuite自带poc生成工具进行测试

  • 测试cftk

    测试是否可以截断、退出登录后是否有效,在cookie中是无法防御的

相关知识

  1. 攻击条件是利用浏览器访问网站自动携带认证cookie的特性

  2. 同源策略可以通过html标签加载资源,同源策略不能拦截跨域请求可以通过阻止返回结果,参考

  3. 注意攻击请求和正常请求代码区别,攻击请求是在嵌入内容的黑客网站页面请求代码中的,这部分代码没有获取正常用户请求令牌字段

漏洞防御

  • 表单令牌

    每次请求发送的时候,发送给用户的每次请求的数字,攻击网站可以构造请求的方法是没有攻击者网站获取服务器代码给用户的。

  • 头标

    每次请求服务器返回token,每次请求,请求Ajax请求头获取用户请求中的token值

转自:网络安全者
如有侵权,请联系删除

原文始发于微信公众号(橘猫学安全):常见的网络安全漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月19日03:36:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   常见的网络安全漏洞http://cn-sec.com/archives/1678700.html

发表评论

匿名网友 填写信息