首页 > 其他分享 >漏洞随笔

漏洞随笔

时间:2024-11-13 11:43:43浏览次数:1  
标签:XSS 漏洞 SQL 攻击者 随笔 盲注 输入 注入

1、XSS

  • 原理:XSS(Cross-Site Scripting,跨站脚本攻击)是由于服务器对输入数据的过滤和验证不严格,攻击者可以在网页中插入恶意的 JavaScript 代码,这些恶意的 JavaScript 代码会被当作响应的一部分返回给客户端。当浏览器解析来自服务器的响应时,它会执行这些恶意的 JavaScript 代码,从而导致攻击者能够执行恶意操作,如窃取用户信息、劫持会话等。
    XSS攻击的核心在于攻击者通过HTML的script标签或元素属性来执行JavaScript脚本。

  • 分类:XSS攻击可以分为反射型、存储型和DOM-XSS三种类型。
    反射型XSS:攻击者输入可控数据到HTML页面中(通常是URL),输入的数据没有被存储,只能在单次请求中生效。
    存储型XSS:攻击者输入可控数据到HTML页面(通常是POST表单:评论、留言板、登录框等),输入的数据会被存储到数据库中,攻击的次数比反射型XSS多。
    DOM-XSS:攻击者可控数据通过JavaScript和DOM技术输出到HTML中,其实是一种特殊类型的反射型XSS,基于DOM文档对象模型的一种漏洞。

  • 触发场景:
    反射型:举个例子,比如我们在访问一个链接的时候(http://102.3.203.111/Web/reflectedXSS.jsp?param=value...),这个URL中就带了参数(param=value...),如果服务端没有对参数进行必要的校验,直接根据这个请求的参数值构造不同的HTML返回,让value出现在返回的html中(JS,HTML某元素的内容或者属性)并被浏览器解释执行,就可能存在反射型XSS漏洞。(参考地址:https://cloud.tencent.com/developer/article/1375824)
    存储型:用户留言、商品评论区、图片上传、用户个人资料页面等。
    DOM型:这种类型的XSS攻击不依赖于服务器端的数据存储,而是发生在客户端,当攻击者利用浏览器解析和动态修改DOM树的过程中,如果未正确过滤或转义来自不可信源的数据,就可能触发DOM-Based XSS。主要有查询、有道翻译场景。(例子参考地址:https://blog.csdn.net/qq_53577336/article/details/122441536)

  • 测试方法:
    手工检测:通过输入特殊字符和脚本代码,检查应用程序是否执行了这些脚本。
    自动化工具检测:使用如BurpSuite的XSS Validator插件、XSSer等自动化工具进行扫描。

  • 测试工具:
    BurpSuite:通过安装XSS Validator插件,结合Intruder模块进行XSS测试;APSCAN;AWVS。

  • 工具原理:使用内置的Payload处理器来定制攻击载荷(类似口令暴力破解)。

  • 修复方法:防御XSS攻击的关键在于对用户输入进行过滤和转义,确保任何用户提交的数据在返回给客户端之前都被正确地处理。例如,对于服务器端的安全措施,如使用htmlspecialchars()函数,可以将特殊字符转换为HTML实体,从而防止XSS攻击;cookie中设置http-only;响应头设置使用CSP(Content Security Policy)。此外,使用现代Web开发框架和库,这些通常已经内置了防止XSS攻击的机制,也是一个很好的实践。(Django就有防XSS的机制)

2、SQL

  • 原理:
    SQL 注入就是指 Web 应用程序对用户输入的数据合法性没有过滤或者是判断,攻击者可以在Web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。(https://blog.csdn.net/weixin_49349476/article/details/134193558)

  • 分类:
    -----依据注入点类型分类:
    数字类型的注入
    字符串类型的注入
    搜索型注入

-----依据获取信息的方式分类
~一、盲注
基于布尔的盲注

基于时间的盲注
~二、基于报错的注入
~三、联合查询注入(union联合查询适用于有显示列的注入。我们可以通过order by来判断当前表的列数。4时错误,3时正确,可得知,当前表有3列。)
~四、堆查询注入 (可同时执行多条语句)

  • 触发场景:
    SQL注入经常出现在登陆页面、涉及获取HTTP头(user-agent / client-ip等)的功能点及订单处理等地方。例如登陆页面,除常见的万能密码,post 数据注入外也有可能发生在HTTP头中的 client-ip 和 x-forward-for 等字段处。这些字段是用来记录登陆的 i p的,有可能会被存储进数据库中从而与数据库发生交互导致sql注入。

  • 测试方法:
    一:先加单引号'、双引号"、单括号)、双括号))等看看是否报错,如果报错就可能存在SQL注入漏洞了。
    二:还有在URL后面加 and 1=1 、 and 1=2 看页面是否显示一样,显示不一样的话,肯定存在SQL注入漏洞了。
    三:还有就是Timing Attack测试,也就是时间盲注。有时候通过简单的条件语句比如 and 1=2 是无法看出异常的。
    在MySQL中,有一个Benchmark() 函数,它是用于测试性能的。Benchmark(count,expr) ,这个函数执行的结果,是将表达式 expr 执行 count 次 。

因此,利用benchmark函数,可以让同一个函数执行若干次,使得结果返回的时间比平时要长,通过时间长短的变化,可以判断注入语句是否执行成功。这是一种边信道攻击,这个技巧在盲注中被称为Timing Attack,也就是时间盲注。
盲注案例参考地址:https://www.cnblogs.com/qiushuo/p/17485659.html#判断注入类型

问题:SQL注入攻击 - SQL注入无回显,盲注又被封怎么办?
答:如果SQL注入被封锁,开源使用DNSlog进行回显。

  • 测试工具:sqlite

  • 工具原理:

  • 修复方法:

  1. 使用安全框架与中间件
    很多现代Web框架(如Ruby on Rails、Spring Boot)默认会对用户输入进行清理或参数化处理,大大降低了SQL注入的风险。此外,可配置的Web应用防火墙(WAF)也能实时监控并阻止可疑的SQL注入式请求。
    ···Springboot:mybaties框架
    ···java语言:PreparedStatemen预编译
    ···python语言:sqlite3参数化查询
    ···Django框架的orm

  2. 输入验证与净化
    除了预编译和参数化查询,还可以对用户输入进行白名单或黑名单校验。例如,对于日期字段,只接受符合日期格式的字符串;对于整数字段,确保输入是数字类型。

总结:在设计和开发阶段就引入安全性考量,借助于预编译语句、参数化查询、安全框架、输入验证等技术手段,可以有效抵御SQL注入攻击。同时,强化日常运维的监控、审计与测试工作,能够进一步提高系统的整体安全性。

标签:XSS,漏洞,SQL,攻击者,随笔,盲注,输入,注入
From: https://www.cnblogs.com/CaiBeeBlog/p/18529560

相关文章

  • 11.12随笔
    这里是11.12随笔。作业留档:本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表结点定义如下:structListNode{intdata;structListNode*next;};函数接口定义:structListNode*reverse(structListNode*head);其中head是用户传入的链表的头指针......
  • 信息收集、漏洞扫描、漏洞利用、权限提升、数据泄露
    网络安全和黑客攻击信息收集:这是黑客攻击的第一步,旨在收集目标系统的信息。通过信息收集,攻击者可以了解目标系统的IP地址、操作系统类型、开放端口、服务版本等信息。信息收集的方法包括使用网络扫描工具(如Nmap)、搜索引擎(如Google)、社交媒体(如LinkedIn)等。漏洞扫描:在信息......
  • 漏洞扫描工具和漏洞利用工具
    漏洞扫描工具和漏洞利用工具是网络安全领域中两种重要的工具,它们在保障网络安全和进行渗透测试等方面发挥着关键作用。以下是关于这两种工具的详细介绍:漏洞扫描工具定义:漏洞扫描工具是基于漏洞数据库,通过扫描等手段对指定的远程或本地计算机系统的安全脆弱性进行检测,发现可......
  • 2024.11.12随笔&联考总结
    前言心情不好,因为考试时T2T3全看错题了,导致T2没做出来,T3一份没得。然后下午打球眼镜架子坏了,回机房才发现被高二的盒了。但还是稍微写一下总结吧。总结感觉我今天做题状态还行,思路该想的都想到了。只不过我读题不仔细,主要去看完样例。然后题目中加粗加黑的字体没有注意,导......
  • 2024最新版漏洞挖掘教程,零基础入门到精通, 收藏这篇就够了_网络安全挖洞全流程保姆级
    经常有小伙伴问我。为什么自己总是挖不到漏洞呢?渗透到底是什么样的流程呢?所以全网最详细的渗透测试流程来了!!!全篇文章内容较长,请耐心观看!渗透测试渗透测试其实就是通过一些手段来找到网站,APP,网络服务,软件,服务器等网络设备和应用的漏洞,告诉管理员有哪些漏洞,怎么......
  • 文件包含漏洞——练习靶场lfi-labs
    目录 原理lfi-labs1lfi-labs2lfi-labs3lfi-labs4lfi-labs5lfi-lab6 原理文件包含:为了更好地使用代码重用性,引入了文件包含函数,可以通过文件包含函数将文件包含进来,直接使用包含文件的代码原因:在包含文件时候,为了灵活包含文件,将被包含文件设置为变量,通过动态变量......
  • web安全漏洞之文件上传
    文件上传       1什么是文件上传   文件上传就比如上传用户头像,上传图片,上传附件等。在服务端实现文件上传功能时,如果对用户上传的文件没有做好处理,就有可能导致十分严重的安全问题,比如被上传木马文件造成RCE(远程代码执行) php文件上传的基本代码 ......
  • WEB 漏洞 - SQL 注入之 MySQL 注入深度解析
    目录WEB漏洞-SQL注入之MySQL注入深度解析一、从宇宙奇想到SQL注入二、SQL注入原理回顾(一)基本概念(二)以简单PHP代码示例说明三、MySQL注入步骤(一)确定注入点(二)判断注入类型(三)利用注入获取信息或执行恶意操作四、防御MySQL注入的方法(一)使用参数化查询(二)......
  • WEB 漏洞 - 文件上传之解析漏洞与编辑器安全
    目录WEB漏洞-文件上传之解析漏洞与编辑器安全一、漏洞概述二、原理分析三、实现步骤与代码示例一、漏洞概述在WEB应用中,文件上传功能是一个常见的模块,但它也存在着诸多安全隐患。文件上传的解析漏洞以及编辑器相关的安全问题就是其中重要的部分。解析漏洞是指......
  • 「漏洞复现」某融信运维安全审计系统 download 任意文件读取漏洞
    0x01 免责声明请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需......