热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

火狐浏览器mac_渗透测试中使用浏览器的正确姿势

渗透的时候使用得最多的就是浏览器和burp了,灵活使用浏览器可以使渗透的效率大大提高,这次就分享下我平时用浏览器的一些技巧。1.浏览器的选择首选chro

渗透的时候使用得最多的就是浏览器和burp了,灵活使用浏览器可以使渗透的效率大大提高,这次就分享下我平时用浏览器的一些技巧。

37284a747c0c7066e0c8e230d2aff0d0.png

1. 浏览器的选择

首选chrome浏览器,火狐浏览器为辅.

mac的话还可以加个Safari来刷下动漫或用下google hack ~ 

首选chrome的原因主要是以下三点,是火狐没法比的:

  • 更强大的账号同步能力

只要能登录google账号,就能使用chrome强大的跨平台账号同步功能,不但能同步书签、账号密码,还可以同步所有的插件!同步插件这一点特别方便,当我们重装系统或者在其它电脑使用chrome时,只要登录google账号,就可以快速恢复成自己熟透的浏览器了。

而火狐的同步功能就不太让人理想,特别是跨平台同步书签时会出现问题。比如在windows收藏了个书签,又在kali上收藏了几个书签,kali上收藏的书签就无法同步到windows的火狐上。

b0b16b2546c4b2e3b3a08a5ed423be9e.png

  • 更强大的F12

现在的chrome的F12,也就是开发工具在很多方面已经超过火狐了,特别是在Javascript调试方面,这一点放在后面详细讲解。

  • 自带flash

很多比较老的网站,像学校、政府等行业的网站都需要用到flash,chrome自带flash。

2.那怎样更好地用浏览器做渗透?

除了在网页上右键查看源码,还能用浏览器来干什么呢?

主要为以下两方面:

  • 使用chrome的开发者工具。

  • 使用一些必备的插件。

3. 开发者工具的使用

chrome为我们提供了强大的开发者工具,下面我主要介绍下渗透中常用到的功能,更详细的资料请查阅官方文档(https://developers.google.com/web/tools/chrome-devtools/)

打开开发者工具

有几种方式可以打开chrome的开发者工具

  • 在Chrome菜单中选择 更多工具 > 开发者工具

  • F12

  • 在页面元素上右键点击,选择 “检查”

  • 使用 快捷键Ctrl+Shift+I (Windows) 或 Cmd+Opt+I (Mac)

da1107d48bd0b5f1f0ff3cfa2f475917.png

调整面板

我们首先来调整下面板,让视野更好点:

点击右上方的三个点,在Dock side的地方有四个图标,可以把面板放到屏幕的不同侧

9a82591fddb675b4aa1f30e76ac098a6.png

如在屏幕的左侧是最后一个图标

7c4e478c1a65291c5731fc97c6971865.png

手机模拟

接下来看下左上方的手机图标,这个功能主要是使网页变成移动版本,也就是手机模拟。

在渗透一些专门为手机设计的网站时特别有用!

85afd44b7efe5f67928354e832819e2c.png

比如https://m.jd.com/ 直接用chrome打开的界面是很不友好的

549d66f2fd4e8e56bffc3be03ca30032.png

使用手机模拟后可以说是相当的舒服:

3887df99b388b21c1cf47676749b6d15.png

还有一点是手机模拟的鼠标是模拟触屏的,这一点在一些移动网站需要感应用户的触摸动作时特别有用。在我不知道开发者工具有这个功能时,遇到要触摸动作(如滑动验证码、画轨迹的验证码)的时候,我只能默默的打开我的夜神。。。

HTML元素选择

手机模拟左边的图标也是用得比较多的,点一下它可以在网页上选择元素

a752a862a2fdf1d7d18ef19863efc6ce.png

控制台

点击面板中的console,可以进入控制台

934f02d5d8194f0330fa85f3b46ff919.png

控制台功能十分强大,可以用来执行Javascript代码

比如在控制面板上输入以下代码

alert('hacker by timeshatter')

可以轻松黑掉百度

da21f6435cdb51489cd70683f8765f5e.png说笑的,表哥们别打我,逃~

这个功能在渗透中主要有以下的作用

1. 调用函数、打印或计算一些变量的值

在控制台中可以调用页面中的任意函数,如登录页面的一些加密和解密函数。

72b7438acfdb141512ea1d218aae1ace.png

也可以打印或者计算变量的值,这在调试Javascript代码时特别有用,这一点在后面介绍调试功能时再详细讲解。

2. 验证一些存在漏洞的Javascript库

比如验证下JQuery版本过低漏洞:

在(http://research.insecurelabs.org/jquery/test/)查找对应版本的漏洞

ea3639054a639d076679547763cb8630.png

然后在控制台中输入POC验证

d2693045171779c68dfc074cc2894a2b.png

3. 验证一些低危漏洞

如未开启httponly

输入

alert(document.COOKIE)

可以验证哪些重要的COOKIE未开启httponly

0549d8cad44126da822067169eaa4f32.png

网络功能

点击Network菜单可以打开网络面板

这个功能主要用来查看HTTP请求的状态、请求内容,请求头,响应头,响应内容等,这些功能burp都有,就不详细说了。

用处就是还没开burp时,可以用来快速查看下网页的哪里出错了。

d790953d322c0e7c9841476d005d91d8.png

值得注意的是,火狐的网络功能可以重新编辑并发送请求,而chrome的不行,这是火狐的一个优点。

在一种情况下比较有用:需要远程登录windows服务器来渗透,并且不能给那台windows上传工具,而电脑上只有一个火狐的时候,只能用火狐手动日了。

88c59268a1a5aec9257db0f3ece20d17.png

9834fce01b83bd44578a875a41703378.png

调试功能

在Souces菜单中,点击js文件或者有js的页面,可以查看网页的Javascript源码,并且可以下断点来调试。这对于分析登录页面使用的加密逻辑、跟踪变量的值和查找DOM XSS特别有用。

040933795889efa69d607ea074989fc2.png

下面详细介绍下这个功能

bfc296fd45c4fbf7fdc1e94ca2049740.png

Sources 面板界面的 3 个部分

1. File Navigator 窗格。此处列出页面请求的每个文件。

2. Code Editor 窗格。在 File Navigator 窗格中选择文件后,此处会显示该文件的内容。

3. Javascript Debugging 窗格。检查页面 Javascript 的各种工具。如果 DevTools 窗口布局较宽,此窗格会显示在 Code Editor 窗格右侧。

在调试前,先做两个设置,点击此处的设置

64c4ebfc77c0b3a5a7aa28e0dccea6f1.png\

确保Enable Javascript souce maps选项和Blackbox content scripts被勾选上了

75fab8f0ee7bfbb4301d21e84e5762ac.png

227a8352c885595ba70ae1f8b35dade3.png

Enable Javascript souce maps可以开启Javascript souce maps,因为有些js源码是压缩过的,可读性很差,不方便调试,有可能在这些js源码中声明了未压缩源码的地址,这样chrome的开发者工具可以映射到未压缩的源码来调度,从而提高可读性。

d0182c36e7bd361c1e29569ab981ffbf.png

而Blackbox content scripts功能可以禁用插件的js代码,遇到插件的js函数这些时,可以直接跳过。

接着,源码页面左下角的 {} 图标可以把代码格式化,由于很多js为了节省空间,只有一行,可读性很差,点击{}图标后会跳转到一个格式化后的代码文件中来阅读和下断点

格式化前的代码,只有一行:

5ff4d412b07db6337354977a2afee517.png

格式化后的代码:

110106b7e74ec1e59bc32b5fe3ee5314.png

现在正式开始介绍怎样调试Javascript代码

Javascript Debugging 窗格中可以下各种类型的断点,如下图所示,而火狐可以下的断点类型少得可怜:

f726c4bd5d4081ced3ca4c45e651b12d.png

9beb5ee4341389632973dae456dd481b.png

其中的Event Listener Breakpoints可以根据各种事件来下断点,如鼠标的点击事件,键盘的输入事件等,以下面的例子来调试

https://googlechrome.github.io/devtools-samples/debug-js/get-started

1. 在 Javascript Debugging 窗格中,点击 Event Listener Breakpoints 以展开该部分。DevTools 会显示 Animation 和 Clipboard 等可展开的事件类别列表。

2. 在 Mouse 事件类别旁,点击三角型按钮。DevTools 会显示 click 和 mousedown 等鼠标事件列表。每个事件旁都有一个复选框。

3. 勾选 click 复选框。DevTools 现在经过设置可以在任何 click 事件侦听器运行时自动暂停。

435ab4252be11e8b7ac85bf260a09cd3.png

返回至演示页面,再次点击 Add Number 1 and Number 2。DevTools 会暂停演示并在 Sources 面板中突出显示一行代码。DevTools 应在此代码行暂停:

function onClick() {

6f5fe2ad0515f883095534e7ca11c79a.png

如果是在其他代码行暂停,请按 Resume Script Execution,直到在正确的代码行暂停为止,这种情况一般是插件捕获了点击事件。

注:如果是在其他代码行暂停,可使用浏览器扩展程序在您访问的每一页上注册一个 click 事件侦听器。使用扩展程序的 click 侦听器可执行暂停操作。如果是采用无痕模式进行隐私浏览,将会停用所有扩展程序,而且您会发现您每次都在正确的代码行暂停。

c2f458bb66714b168213593f10acf12f.png

接下来开始调试代码

1. 在 DevTools 的 Sources 面板上,点击 Step into next function call,以便一次一行地单步调试 onClick() 函数的执行。DevTools 突出显示下面这行代码:

if (inputsAreEmpty()) {

a7614b57bf32f1dc0c5c75c10904f85f.png

2. 点击 Step over next function call 。DevTools 执行但不进入 inputsAreEmpty()。请注意 DevTools 是如何跳过几行代码的。这是因为 inputsAreEmpty() 求值结果为 false,所以 if 语句的代码块未执行。

43d6596247ff96d3973fad027066c728.png

设置代码行断点

代码行断点是最常见的断点类型。如果您想在执行到某一行代码时暂停,请使用代码行断点:

1.看一下 updateLabel() 中的最后一行代码:

label.textContent = addend1 + ' + ' + addend2 + ' = ' + sum;

2. 在这行代码的左侧,您可以看到这行代码的行号是 32。点击 32。DevTools 会在 32 上方放置一个蓝色图标。这意味着这行代码上有一个代码行断点。DevTools 现在始终会在执行此行代码之前暂停。

3. 点击 Resume script execution。脚本将继续执行,直到第 32 行。在第 29 行、第 30 行和第 31 行上,DevTools 会在各行分号右侧输出 addend1、addend2 和 sum 的值。

1579ed2f39054265c47b3d2ff1bead8b.png

调试时,可以检查变量的值

方法 1:Scope 窗格

在某代码行暂停时,Scope 窗格会显示当前定义的局部和全局变量,以及各变量值。其中还会显示闭包变量(如果适用)。双击变量值可进行编辑。如果不在任何代码行暂停,则 Scope 窗格为空。

b30bff4a3fc056ccdc3d5a692a760d18.png

方法 2:控制台

除了查看 console.log() 消息以外,您还可以使用控制台对任意 Javascript 语句求值。 

在 Console 中,输入 parseInt(addend1) + parseInt(addend2)。此语句有效,因为您会在特定代码行暂停,其中 addend1 和 addend2 在范围内。

按 Enter 键。DevTools 对语句求值并打印输出 6,即您预计演示页面会产生的结果。

3765c5f48a2d1b73b0c2f1fab9b1a9c6.png

以上就是常用的一些调试js代码的方法,熟练使用调试功能可以在渗透时分析网页的功能带来巨大的帮助!更多详细的用法请查看:(https://developers.google.com/web/tools/chrome-devtools/Javascript/breakpoints)

编辑HTML功能

开发工具也看开发工具也可以修改HTML源码,比如把一些隐藏的忘记密码步骤显示出来在在Elements功能中,双击要修改的内容,修改完后单击下外面,即可生效:

05fde40e9e1b0e1e76bfade24fbf2ab7.png

把hide和display: none去掉后,效果如下图

c2ea572a0f7c0a139f1d288d571609b6.png

好了,以上就是常用的开发者功能,更多详细的介绍请查看

https://developers.google.com/web/tools/chrome-devtools/

3. 一些常用的插件

最后,我分享下我的一些必备的插件

1. SwitchyOmega

这个插件主要用来方便切换代理,有了它就可以方便地在burp代理和正常浏览中切换了,不用手动设置代理。

387d49f2f42572c3711c0e70603304e7.png

2.沙拉查词-聚合词典划词翻译

这个插件主要用于看英文博客,十分好用

e8032882c9d392d3057528a5795b7b3c.png

3.Retire.js

这个插件主要用于查看网页是否存在有漏洞的js库

d890995b38ece80fef47855bee9c8fb9.png

4.wappalyzer

这个插件用于查看网站使用的技术,如中间件、语言、框架等

503cac05f2e0bb976cabbd0555851046.png

5.OneTab

这个插件用于管理标签页,渗透时经常打开大量标签页,点一下它会全部变成一个标签列表,以后用到时再打开需要查看的标签页

0189bc0fe88a82ec852e31248daf506b.png

6.Shodan 或者 IP Address and Domain Information

这两个方便快速查看开放的端口和ip地址等信息

ac6c9bf16f1c9b02417738441820ece4.png

d89851618c2fe5de912ccb096b80f55a.png

我常用的浏览器姿势介绍完了,如果觉得有用,欢迎转发!


往期文章

我的安全专家之路公众号的定位




推荐阅读
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • VSCode快速查看函数定义和代码追踪方法详解
    本文详细介绍了在VSCode中快速查看函数定义和代码追踪的方法,包括跳转到定义位置的三种方式和返回跳转前的位置的快捷键。同时,还介绍了代码追踪插件的使用以及对符号跳转的不足之处。文章指出,直接跳转到定义和实现的位置对于程序员来说非常重要,但需要语言本身的支持。以TypeScript为例,按下F12即可跳转到函数的定义处。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
author-avatar
丙尔金开发_448
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有