360网络安全大学-基础实践-Web安全

SQL注入

定义:

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

执行条件

  1. 用户能够控制输入
  2. 原本程序要执行的SQL语句,拼接了用户输入的恶意数据

SQL注入

  1. 联合查询union
  2. information.schema数据库是MySQL自带的数据库,可以利用information.schema.SCHEMA_NAME来查看所有数据库
  3. 万能密码绕过'or' 1 '=' 1 #
  4. 数字型注入
    检测方法
http://www.test.com/user.php?id=8’返回错误,未对单引号处理
http://www.test.com/user.php?id=8 and 1=1运行正常
http://www.test.com/user.php?id=8 and 1=2运行异常
  1. SQL盲注
  • 布尔盲注
  • 时间盲注
    BENCHMARK(count, expr)
    通过讲expr执行count次来达到延迟的目的
    sleep(time)
    直接延迟time时间
  • 报错型盲注
  1. SQL文件头注入
  • HTTP Header内容
    1) User-Agent:使得服务器能够识别客户使用的操作系统,浏览器版本。(很多数据量大的网站中会记录客户使用的操作系统或浏览器版本等存入数据库中)
    2) Cookie:网站为了辨别用户身份、进行session跟踪二储存在用户本地终端上的数据(通常经过加密)
    3) X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库or某文件【通过修改XFF头可以实现伪造IP】)
    4) Clien-IP:同上
    5) Rerferer:浏览器向Web服务器表明自己是从哪个页面链接过来的
    6) Host:客户端指定自己想访问的Web服务器的域名/IP地址和端口号
  1. 宽字节注入
    GBK
    UTF-8

SQL注入检测绕过

  1. 大小写绕过
    比如拦截了union,那就使用Union UnIoN等等
  2. 编码绕过
    WAF(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,全称:Web应用防护系统)检测关键字,比如检测union,用%55也就是U的16进制编码来代替U,union写成%55nION,结合大小写也可以绕过一些WAF
  3. 注释绕过
    适用于WAF只是过滤了一次危险的语句,而没有阻断我们的整个查询
/?id=1+union+select+1,2,3/*

比如对于上面这条查询,WAF过滤了一次union和select,在之前在写一个注释的语句,让它吧注释里面的过滤掉,并不影响我们的查询。
绕过语句就是:

/?id=1/ * union * /union/ * select * /select+1,2,3/*
  1. 分隔重写绕过
    适用于那种WAF采用了正则表达式的情况,会检测所有敏感字符
/?id=1+un/** ion+sel/** ect+1,2,3-

至于重写绕过,适用于WAF过滤了一次的情况,和我们上传aaspsp的原理一样,我们可以写出类似Ununionion这样的,过滤一次union后就会执行我们的查询了
?id=1 ununionion select 1,2,3-

  1. 同功能函数替换
  • Substring()可以用mid(), substr()这些函数来替换,都是用来取字符串的某一位字符的
  • Ascii()编码可以用hex(), bin()也就是16进制和二进制编码替换
  • 时间盲注中Benchmark()可以用sleep()来替换
  1. WAF绕过脚本

kali的/usr/share/sqlmap/tamper目录下主要存放的是WAF绕过脚本,比如base64encode.py是把base64编码后的字符串展示绕过,其余的请看下方链接
https://blog.csdn.net/qq_34444097/article/details/82717357

敏感信息泄露

目录

  1. 默认账户
  2. 后台/服务对公开发
  3. DEBUG信息
  4. 目录列表
  5. 备份文件
  6. 系统产生的临时文件
  7. GIT泄露
  8. SVN泄露

默认账户

  1. 数据库软件
    MySQL账户:root
    sql server管理员账户:sa
  2. 集成开发环境
  3. CMS内容管理系统
    账户admin
  4. 路由器管理界面
  5. 摄像头管理界面

后台/服务对公开发

  1. 后台地址泄露
  2. 后台地址被爆破
  3. 后台未做授权
  4. 敏感服务未做访问限制,可以直接访问

debug信息

为了开发人员能够快速定位错误的代码,脚本配置文件打开出错误提示选项
debug信息可能会透露部分代码、绝对路径等信息。(比如SQL的报错注入)

目录列表

备份文件

.bak等相关备份文件
.zip等相关压缩命令产物
.tar.tz、.tar等tar命令的产物
.sql等相关数据库

系统产生的临时文件

.tmp文件
.swp文件
.Ds_Store

GIT泄露

分布式版本控制系统
隐藏仓库文件夹.git文件夹
还原仓库文件

SVN泄露

集中式版本控制系统
隐藏仓库文件夹.svn文件夹
还原仓库文件

CSRF&SSRF

CSRF(跨站请求伪造)

原理总结

一个CSRF漏洞攻击的实现,其需要由“三个部分”来组成

  1. 有一个漏洞存在(无需验证、任意修改后台数据、新增请求)
  2. 伪装数据操作请求的恶意链接或者页面
  3. 诱使用户主动访问或登录恶意链接,触发非法操作
漏洞的存在

关键字:跨站请求漏洞(CSR: Cross Site Request)
如果需要CSRF攻击能够成功,首先就需要目标站点或系统存在一个可以
进行数据修改或者新增操作且此操作被提交后台后的过程中,其未提供
任何身份识别或校验的参数。后台只要收到请求,就立即下发数据修改或
新增的操作;
以上漏洞情况的存在,出现比较多的场景有用户密码的修改、购物地址的
修改或后台管理账户的新增等等操作过程中。

漏洞利用的伪装

关键字:伪装请求(F: forgery)
CSRF漏洞存在了,如果需要真正的被利用,还需要对“修改或新增”数
据操作请求的伪装,此时恶意攻击者只要将伪装好的“数据修改或新增
的请求发送给被攻击者,或者通过社工的方式诱使被攻击者在其 cookie还
生效的情况下点击了此请求链接,即可触发csrf漏洞,成功修改或新增当
前用户的数据信息,如修改当前用户的密码、又或者是当前用户为后台管
理员,触发漏洞后新增了一个后台管理员。

用户非本意的操作

关键字:非本意操作
当前用户在不知情的情况下,访问了黑客恶意构造的页面或链接,即在
非本意的情况下完成黑客想完成的“非法操作”,实现了对当前用户个人
信息的恶意操作。

在这里插入图片描述

小结

小结:构造一个恶意链接或者html页面
CSRF漏洞的目的:利用已存在的漏洞构造了一个“恶意链接”或“html页
面”,然后诱使用户点击触发此漏洞。
目标站点存在一个漏洞(CSRF),攻击者利用此类漏洞伪装了一个链接
或者html页面,诱使被攻击者在登录的情况下(即当前 cookie有效的情况
下)点击此伪装请求,随后在用户不知情的情况下完成了对当前用户数
据的修改或者新增操作,而被修改的信息可能是用户的密码、关键信息又
或者新增后台管理员等。

SSRF(服务器端请求伪造)

SSRF简介

SSRF(Server-Side Request Forgery:服务器端请求伪造)是一种由攻击
者构造形成,由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻
击的目标是从外网无法访问的内部系统,正是因为它是由服务端发起
的,所以它能够请求到与它相连而与外网隔离的内部系统。
SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据
的功能且没有对目标地址做过滤与限制,比如从指定URL地址获取网
页文本内容,加载指定地址的图片,下载等等。

SSRF常见危害
  1. 可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的Banner信息等
  2. 攻击运行在内网或本地的应用程序
  3. 对内网Web应用进行指纹识别,通过访问默认文件实现(如 Readme等文件)
  4. 攻击内外网的Web应用,主要是使用GET就可以实现的攻击(比如Struts2,SQLI等)
  5. 用File协议读取本地文件等
SSRF常见应用场景
  1. 分享
  2. 在线翻译
  3. 图片加载与下载
  4. 图片、文章收藏功能
  5. 未公开的API实现以及其他调用URL的功能等

XSS跨站脚本

XSS初探

定义

跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意的Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
主要可以对用户cookie资料窃取、会话劫持、钓鱼欺骗等各种攻击。

攻击流程

在这里插入图片描述

跨站脚本介绍

跨站脚本实例

前端HTML代码+后端PHP代码

在这里插入图片描述

两种利用方式

在这里插入图片描述

跨站脚本的分类

根据特性和利用手法的不同,主要分成三大类型:

  1. 反射型XSS(也叫非持久性XSS)
  2. 存储型XSS(存储性XSS)
  3. DOM型的XSS

在这里插入图片描述

反射型XSS
简介

反射型XSS(也叫非持久型XSS、参数型XSS)
主要用于将恶意脚本附加到URL地址的参数中
例如:

http://127.0.0.1/XSS4.php?name=<script>alert("XSS")</script>
攻击原理

在这里插入图片描述

编码转换

在这里插入图片描述
由此可知,恶意代码经过编码处理后会大大增加其迷惑性

存储型XSS
简介

存储型XSS相当于持久型XSS,此类XSS不需要用户点击特定URL就能执行跨站脚本,攻击者事先吧恶意JavaScript代码上传或存储到漏洞服务器中,当受害者浏览包含此恶意JavaScript代码的页面就会执行恶意代码。

攻击原理

在这里插入图片描述

DOM型XSS
定义:

先以一张w3c的图来说明,到底什么是dom:
在这里插入图片描述
dom就是一个树状的模型,你可以编写Javascript代码根据dom一层一层的节点,去遍历/获取/修改对应的节点,对象,值。了解了这么一个知识点,你就会发现,其实dom xss并不复杂,他也属于反射型xss的一种(domxss取决于输出位置,并不取决于输出环境,因此domxss既有可能是反射型的,也有可能是存储型的),简单去理解就是因为他输出点在DOM。dom - xss是通过url传入参数去控制触发的)分析完dom-xss之后,再说说存储型xss,其实也很好理解,存储型xss,自然就是存入了数据库,再取出来,导致的xss。3,)反射型xss实际上是包括了dom - xss了,关键点仍然是在通过url控制了页面的输出(dom-xss也类似,只因为输出地点不同而导致结果不一致)。

DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。

在网站页面中有许多页面的元素,当页面到达浏览器时浏览器会为页面创建一个顶级的Document object文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。可以通过JS脚本对文档对象进行编辑从而修改页面的元素。也就是说,客户端的脚本程序可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。

可能触发DOM型XSS的属性:

document.referer属性

window.name属性

location属性

innerHTML属性

documen.write属性

······

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言中常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过中序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言中都有相应的实现方式,可以应用于各种不同的场景。C语言中的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存中是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值