web安全学习笔记(15)

记一下第25-26课的内容。弱口令爆破的四种模式与判断成功失败的三种方案;爆破中的验证码拦截+错误次数+IP限制+密码加密绕过 + IP获取的原理以及绕过CDN获取客户真实IP

一、弱口令的分类

1.常规弱口令:如123456,666666,888888等

2.默认弱口令:如防火墙、路由器出厂时的默认密码。

例,天融信防火墙的默认密码:

又例如,深信服防火墙默认密码Sangfor888

二、使用burp进行弱口令爆破

打开我们的靶场,找到admin登录页面后台登录

1.随便在后台输入登录信息,抓一个登录数据包,并选择“发送到Intruder”

2.通过文件加载字典,进行爆破

然后选择攻击类型为sniper,在密码处添加payload位置,设置好后,点击开始攻击:

通常而言,爆破成功所返回的“长度”字段的值要么会很大,要么会很小,会和正常返回的值不一样,不过此处登录成功和登录失败都有715的长度,这里的原因是,登录成功里面,url是非空的,登录失败里面,url是空的,然而登录成功的msg字段为“登录成功”,登录失败的msg字段为“用户名或密码错误”,正好抵消了字段长度差,因此具体情况要具体分析。

另外,我们在已知这里登录成功会出现"code":1字段的情况下,我们可以在攻击的结果页面,点击“设置”,找到“检索-提取”,选择“从相应包中获取以下项目”,点击“添加”,并拉选"1"的相应位置,点击“确认”。

然后我们回到结果页面,就会有相应的显示:

除了sniper类型的攻击外,burp共支持四种类型的攻击,如下图所示:

①Sniper,单向模式,就是我们刚才演示的,爆破用户名或密码

②Battering ram,可以同时爆破用户名和密码(或者其他多个变量),通常用于寻找用户名和密码相同的账户,这时就要将用户名的变量位置和密码的变量位置都添加payload位置

③Pitchfork,这里要导入多个字典。攻击同时遍历所有payload集,因此它使用每个集中的第一个payload,然后使用每个集中的第二个payload,依此类推。对于哪一个变量使用哪一个字典,遵循“从上至下,从左至右”的原则。而对于字典的设置,在payload->payload集中进行设置

④Clusterbomb,集束炸弹,类似于交集,取第一个字典中的第i个元素,与第二个字典的所有元素进行遍历。

然而在实际应用中,我们往往面临各种各样的问题,下面对几个常见的问题进行讲解:

三、实践中的问题

1.验证码校验无法爆破

我们打开有验证码登录的靶场:

随便输入用户名密码,输入对应的验证码,在burp中开启拦截,点击登录

如果我们不去请求验证码接口,验证码就不会改变,所以我们先把它send to Intruder,然后直接丢弃这个数据包。这时候页面会提示有未知错误:

如何验证网页是否存在验证码漏洞呢?我们可以在intruder里面,连续两次提交,如果都提示“用户名或密码错误”,说明存在验证码漏洞,如果第一次提示“用户名或密码错误”,但第二次提交就提示“验证码错误”,说明这里的验证码不能这么办他。

至此总结验证码校验的绕过思路:

①在提交信息之后是否及时销毁掉了SESSION中的验证码,如果没有销毁,那么我们就可以无限调用。

②通过验证码识别软件或者某些burp插件去绕过。

③关于点触验证码(给一张图片让你依次点击文字)和滑动验证码的知识暂时不讲。

2.密码错误次数限制

实现过程:

①使用数据库进行验证,这个就很难进行爆破

②使用SESSION,就可以删除SESSION进行爆破

3.密码进行了某种加密

例如该网站的内容,我们随便输入用户名密码然后登陆,直接在网页中找到数据包,发现用户名和密码都被加密。

下面讲述尝试查看其如何加密的三种方法

在网页中找到用户名的位置,右键检查,发现其位置,并得知其name属性为username,id属性为u01。

然后进行查找,先查找其id在网页中出现的地方,发现并没有给我们提供有用的信息:

于是我们查找username,发现有相关内容,其加密可能是在此处进行的:

<!--if (document.loginForm.username.value == '') {document.loginForm.username.focus();} else {document.loginForm.password.focus();}//-->var publicKeyString = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSUmOXyQmYYSnZacp0btvAZCOvCNPtzixAp7eJmzmAG4mgy/VgrY/s1BDLh9qTNHIRWXepUtwMrf1kYul/A45qE/2oxIbeeq4238YDWQ7ModOVXR9ytEHsT0jpCFvoYfYXYZnnoWRrLIBylQeXzqxbLDxxBxGCs4AjoRKh5S7nNQIDAQAB';function rsa_encrypt(data) {var encrypt = new JSEncrypt();encrypt.setPublicKey(publicKeyString);return encrypt.encrypt(data);}function submitForm() {time(document.getElementById("myform"));var theForm = document.forms[0];if (theForm.username.value != '' && theForm.password.value != '') {if(theForm.username.value == 'sysadmin') {theForm.username.value = 'admin'}theForm.password.value = rsa_encrypt(theForm.password.value);theForm.username.value = rsa_encrypt(theForm.username.value);theForm.submit();}}// 提醒后连续三次登录失败锁定账号后,出现按钮登录倒计时var wait = -2;function time(object) { //如果没有缓存或者是登录锁定前,不进行按钮禁用if (wait == 0 || (true)) {object.removeAttribute("disabled");} else {object.setAttribute("disabled", true);wait--;if (wait == 0) {object.value = "登录";} else {object.value = "请在" + wait + "秒后重新尝试";}setTimeout(function () {time(object)}, 1000);}}

通过查看代码,我们可以判断出这里使用了rsa加密,并且可以找到其公钥publicKeyString = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSUmOXyQmYYSnZacp0btvAZCOvCNPtzixAp7eJmzmAG4mgy/VgrY/s1BDLh9qTNHIRWXepUtwMrf1kYul/A45qE/2oxIbeeq4238YDWQ7ModOVXR9ytEHsT0jpCFvoYfYXYZnnoWRrLIBylQeXzqxbLDxxBxGCs4AjoRKh5S7nNQIDAQAB'

这样,我们就可以通过他的代码,对我们的输入进行加密,然后放到数据包里面,实现爆破。

或者也可以在burp里面实现简单的编码,要记得将最下面的框去掉勾选,此外我们可以多次编码,只需要多次add即可:

四、PHP中获取IP的原理以及绕过CDN获取客户真实IP

function getClientIP(){//getenv()函数定义:取得系统的环境变量if (getenv("HTTP_CLIENT_IP")) {$ip = getenv("HTTP_CLIENT_IP");} elseif (getenv("HTTP_X_FORWARDED_FOR")) {$ip = getenv("HTTP_X_FORWARDED_FOR");} elseif (getenv("REMOTE_ADDR")) {$ip = getenv("REMOTE_ADDR");} else {$ip = "Unknow";}if ($ip == '::1'){//本地$ip = '127.0.0.1';}return $ip;
}

绕过CDN寻找网站真实IP的方法汇总_如何查找到网站真实ip-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/12882.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【软件测试】需求概念|软件的⽣命周期|开发模型|测试模型

目录 推荐 一、什么是需求 1.1 ⽤⼾需求 1.2 软件需求 二、开发模型 2.1 什么是“模型” 2.2 软件的⽣命周期 2.3 常⻅开发模型 2.3.1 瀑布模型 2.3.2 螺旋模型 2.3.3 增量模型、迭代模型 2.3.4 敏捷模型 2.4 测试模型 2.4.1 V模型 2.4.2 W模型(双V模型&#xff0…

使用RN的kitten框架的日历组件的修改

官方网页地址 下面就是我参考官方封装的时间日期组件&#xff08;主要是功能和使用方法&#xff0c;页面粗略做了下&#xff0c;不好看勿怪&#xff09; import React, {useState} from react; import {StyleSheet, View, TouchableOpacity, SafeAreaView} from react-native; …

FreeRTOS消息队列queue.c文件详解

消息队列的作用 消息队列主要用来传递消息&#xff0c;可以在任务与任务之间、中断与任务之间传递消息。 传递消息是通过复制的形式&#xff0c;发送方发送时需要不断复制&#xff0c;接收方接收时也需要不断复制。虽然会有内存资源的浪费&#xff0c;但是可以保证安全。 假…

Java项目:基于ssm框架实现的实验室耗材管理系统(B/S架构+源码+数据库+毕业论文+答辩PPT)

一、项目简介 本项目是一套基于ssm框架实现的实验室耗材管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 二、技术实现 jdk版本&#xff1a;1.8 …

2024年最新最全面的软件测试面试题(四)

1、在项目中如何保证软件质量? 项目质量不仅仅是某个人或某个团队来保障的&#xff0c;而是整个团队一起努力的结果&#xff0c;因此&#xff0c;在公司级别需要 有一个规范的项目流程。 产品&#xff0c;保证迭代过程中的产品逻辑&#xff0c;对于可能的兼容&#xff0c;升…

基于Springboot+Vue的Java项目-宠物商城网站系统开发实战(附演示视频+源码+LW)

大家好&#xff01;我是程序员一帆&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &am…

C++列表实现

文章目录 一、listView相关内容主要思想实例全部代码 二、QTreeView 一、listView 相关内容 QAbstractItemModel&#xff1a;一个抽象的类&#xff0c;为数据项模型提供抽象的接口&#xff0c;常见的的数据模型列如&#xff1a;QStringListModel,QStandardItemMode,QDirModel…

AI大模型探索之路-训练篇23:ChatGLM3微调实战-基于P-Tuning V2技术的实践指南

系列篇章&#x1f4a5; AI大模型探索之路-训练篇1&#xff1a;大语言模型微调基础认知 AI大模型探索之路-训练篇2&#xff1a;大语言模型预训练基础认知 AI大模型探索之路-训练篇3&#xff1a;大语言模型全景解读 AI大模型探索之路-训练篇4&#xff1a;大语言模型训练数据集概…

PG 检查点管理与Oracle的比较

之前介绍过&#xff0c;在任何数据库中&#xff0c;一条DML操作执行都需要在内存中执行&#xff0c;但当操作越来越多&#xff0c;总有时候内存会写满&#xff0c;这时候就需要把内存中的块写入到磁盘&#xff0c;释放内存&#xff0c;保存数据。 写入到磁盘这一步&#xff0c;…

报错:(idea端口被占用)Web server failed to start. Port 9090 was already in use.

cmd里面输入&#xff1a; netstat -ano|findstr "9090" 可以看到pid是9644 然后再打开任务管理器

特斯拉全自动驾驶(FSD)系统发展与解析

引言 自动驾驶技术在近年来迅猛发展&#xff0c;多家科技巨头和汽车制造商纷纷投入巨资研发&#xff0c;试图领跑这一未来出行的革命。在众多企业中&#xff0c;特斯拉的全自动驾驶&#xff08;Full Self-Driving, FSD&#xff09;系统以其独特的“纯视觉”策略脱颖而出&#…

白酒:酒精度数对白酒风味的影响与品鉴技巧

云仓酒庄豪迈白酒作为品质的白酒品牌&#xff0c;其酒精度数对白酒风味的影响与品鉴技巧是品鉴爱好者关注的重点。酒精度数作为衡量白酒质量的一项重要指标&#xff0c;不仅决定了白酒的口感和风格&#xff0c;更在一定程度上体现了白酒的品质和价值。本文将探讨酒精度数对云仓…

用友U8_dialog_moreUser_check.jsp SQL注入漏洞复现

简介 用友GRP-U8是用友软件针对政府及公共部门推出的管理软件产品。 GRP是Government Resource Planning的缩写,即政府资源计划。 这个产品设计用于满足政府部门在财务管理、人力资源管理、资产管理、供应链管理等方面的需求。 漏洞复现 FOFA: app="用友-GRP-U8&quo…

【Mysql数据库进阶02】第一范式~第四范式 Normal Form

第一范式~第四范式Normal Form 0 引言1 第一范式2 第二范式3 第三范式4 BC范式5 第四范式总结 0 引言 因为软考&#xff0c;我又重新拾起了数据库&#xff0c;那么到底如何去判断它属于第几范式呢 1 第一范式 设R是一个关系模式&#xff0c;R属于第一范式当且仅当R中每一个…

Zookeeper and RPC dubbo

javaguide zookeeper面试题 Zookeeper 啥是Zookeeper干啥的 ZooKeeper 可以被用作注册中心、分布式锁&#xff1b; ZooKeeper 是 Hadoop 生态系统的一员&#xff1b; 构建 ZooKeeper 集群的时候&#xff0c;使用的服务器最好是奇数台。 启动ZK 下载安装解压 不过多赘述 我的…

仿C#或Java基础类型自定义

class Int{ private:int _value 0; public:operator int() const{ // 隐式转换return _value;}// 显式转换explicit operator int*() const { return nullptr; }operator(const int page){_value page;}operator float() const{return static_cast<float>(_value);}ope…

字节跳动在2024年春季火山引擎Force原动力大会上隆重推出了“豆包大模型”家族

此次大会以AI为主题&#xff0c;聚焦大模型的应用与发展&#xff0c;旨在引领AI技术的落地和推动各行各业的数字化转型。 字节跳动官网&#xff1a;https://www.bytedance.com/zh/ 豆包官网&#xff1a;https://www.doubao.com/chat/ 更多消息&#xff1a;https://heehel.co…

Transformer - Self-Attention层的复杂度的计算

Transformer - Self-Attention层的复杂度的计算 flyfish 矩阵的维度 下面矩阵的维度是32即 3行&#xff0c;2列 6,10等都是矩阵里的元素 如果矩阵A的列数与矩阵B的行数相同&#xff0c;那么这两个矩阵可以相乘。即&#xff0c;若A是一个mn矩阵&#xff0c;B是一个np矩阵&am…

(论文笔记)TABDDPM:使用扩散模型对表格数据进行建模

了解diffusion model&#xff1a;什么是diffusion model? 它为什么好用&#xff1f; - 知乎 摘要 去噪扩散概率模型目前正成为许多重要数据模式生成建模的主要范式。扩散模型在计算机视觉社区中最为流行&#xff0c;最近也在其他领域引起了一些关注&#xff0c;包括语音、NLP…