参考文章

思路决定成败:F12给了我黑色的眼睛我却用它来挖洞

前言

了解大佬的思路才知道自己现在学的到底有多浅。

还没有到点,我就已经进入状态了,生而为人,我很抱歉。

F12 的骚操作

Elements

  • ctrl+f 找可能的 XSS 参数输出点

  • 找后台

有时候拿个网站路径扫描工具扫后台时,没有一个强大的字典很难真正扫到东西,即使有个好字典也不一定能扫出来。有时候其后台登陆藏得很深。

有的网站为了不让一般用户轻易找到后台入口,常常给 a 标签设置一个 hidden 属性,把后台登陆链接隐藏起来,让用户不能直接看到。

如:<a href="manage/xxxxx/login.php" hidden>后台管理</a>

此时不妨在网站首页等页面搜索一下 loginmanagehoutaidengluguanli 等一些常见后台关键词,说不定其后台路径就藏在网页的 html 源代码中。

  • 找可能存在 sql 注入的接口

如 360 某次靶场考核试题

  • 寻找一些敏感信息

如一些程序员开发时的注释,一些敏感路径、子域名等等

小脚本:提取网页中存在的注释与路径信息

# 网页注释与路径信息提取脚本

import requests
import re headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
} url = "http://baidu.com" # 提取注释
def getNotes(rep):
result = re.findall(r'<!--(.*?)-->', rep, re.DOTALL)
result = result + re.findall(r'<!--(.*?)--!>', rep, re.DOTALL)
return result # 提取 url
def getUrls(rep):
result = re.findall(r'[\'"](http.*?)[\'"]', rep, re.DOTALL)
result = result + re.findall(r'[\'"](https.*?)[\'"]', rep, re.DOTALL)
result2 = re.findall(r'href=[\'"](.*?)[\'"]', rep, re.DOTALL)
result2 = result2 + re.findall(r'src=[\'"](.*?)[\'"]', rep, re.DOTALL)
for i in result2:
if not i.startswith('http'):
result.append(url+i)
return result def main():
try:
rep = requests.get(url, headers=headers).content.decode("utf-8")
notes = getNotes(rep)
urls = getUrls(rep)
print(notes)
print(urls)
except:
print("Error happend!") if __name__ == '__main__':
main()
  • 当然还有白嫖漂亮的 css 代码

我之前用 flask 写的简单个人博客系统,就借鉴了许多我认为好看的网页的 css

Console

  • 可以看到一些网页报错信息,以及一些输出

就比如说你正在看的这篇博客

当更改一些提交的参数,导致网页报错时,有可能一个 dom-xss 就在向你挥手

  • 执行 js 代码

    无数的 self-xss 等待各位老板挖掘

    当然也可以在开发网页时测试 js 代码

Sources

这里以博客园为例

  • 打断点调试 js 代码

这一操作在前端加密的时候很有用

  • js 文件泄露敏感信息

仔细看看 js 文件内容,有时候可以找到如后台地址、子域名、账号密码等等敏感信息,当然也有脚本工具:JSFinder

有时候眼睛扫一扫后台登陆页面的 js 代码说不定就有惊喜。

Network

一般关注的响应码跟加载时间吧。

响应码的话可以简单的找找302跳转,万一一个任意 url 跳转就成了呢?当然,在这里找也不大合适,一般推荐使用 burp 来找。

响应时间的话,这个在寻找 ssrf 时可以用用

其他

  • Application



可以看看网站缓存,session、cookie 等信息

  • Performance



这是个啥呀?一般没什么用,除非你做开发的话。

  • Memory



一般记录网页资源占用内存大小、以及该网页各个时段的运存占用情况。如果你怀疑网页在利用你挖矿的话应该可以看看,一般不大现实

  • Security



网站安全性,查看证书等等。一般没有设置 https ,会显示网页不安全。没什么用。

  • 插件

这个就要具体看自己安装了什么插件,每个具体插件都会有使用说明。

比如 hackbar 用来发送请求、cookie editor 用来编辑 cookie

你一个 F12 能秒我?的更多相关文章

  1. 云计算之路-阿里云上:Wireshark抓包分析一个耗时20秒的请求

    这篇博文分享的是我们针对一个耗时20秒的请求,用Wireshark进行抓包分析的过程. 请求的流程是这样的:客户端浏览器 -> SLB(负载均衡) -> ECS(云服务器) -> S ...

  2. 通向高可扩展性之路(推特篇) ---- 一个推特用来支撑1亿5千万活跃用户、30万QPS、22MB每秒Firehose、以及5秒内推送信息的架构

    原文链接:http://highscalability.com/blog/2013/7/8/the-architecture-twitter-uses-to-deal-with-150m-active ...

  3. Android由一个activity 间隔5秒自动跳转到另外一个activity

    Android由一个activity 间隔5秒自动跳转到另外一个activity 2013年10月10日18:03:42 //一.写一个定时器 5秒后开启        final Intent lo ...

  4. PHP date 格式化一个本地时间/日期

    PHP date 格式化一个本地时间/日期 date (PHP 4, PHP 5) date — 格式化一个本地时间/日期 说明 string date ( string $format [, int ...

  5. EXCEL中讲 10分10秒转换成610秒

    前几天宝贝跟我打赌100W说我20天给她打电话不到10小时,我说绝对超过10小时了,但是由于宝贝的赖皮死活不承认,所以我被迫掉出通话记录,拿到通话记录我有点小郁闷,因为通话记录里的时间格式00分00秒 ...

  6. get/close not same thread Druid 连接池一个设置

    我就郁闷了,1000W+数据审核每次总是到一半就出这么个错,仔细找找原来是一个配置项的小问题,removeAbandonedTimeout 这个代表你从连接池取出一个连接多少秒之后你还没还回来,那就强 ...

  7. 假设写一个android桌面滑动切换屏幕的控件(一)

    首先这个控件应该是继承ViewGroup: 初始化: public class MyGroup extends ViewGroup{ private Scroller mScroller; priva ...

  8. iOS 10 的一个重要更新-新的通知推送 API

    iOS 10 最重要的变化可能就是通知 API 的重构了.本文用一个简单闹钟的例子介绍了 User Notification 的 API 变化和新功能. 简介 很久以前,开发者就可以在 iOS 里预约 ...

  9. Three-js 创建第一个3D场景

    1.一个场景至少需要的三种类型组件 相机/决定哪些东西将在屏幕上渲染    光源/他们会对材质如何显示,以及生成阴影时材质如何使用产生影响    物体/他们是在相机透视图里主要的渲染队形:方块.球体等 ...

随机推荐

  1. 前端走进机器学习生态,在 Node.js 中使用 Python

    这次给大家带来一个好东西,它的主要用途就是能让大家在 Node.js 中使用 Python 的接口和函数.可能你看到这里会好奇,会疑惑,会不解,我 Node.js 大法那么好,干嘛要用 Python ...

  2. angular弹出对话框结构

    angular dialog标准结构,注意有checkbox时,需要外包一层div,checkbox-wrapper类的这个样式控制了不显示滚动条.

  3. JAVA7新属性之放宽switch的使用限制

    在Java7发布之后,关于switch的用法上,除了char,byte,short,int之外,允许了String.例如(不可以为null): public class Title { public ...

  4. 一个神奇的SQL语句

    题目是这样的: 分别往这两张表中添加3条数据... 查询营业额最高商家的商品总价与营业额最低商家的商品总价差是多少(5分)CREATE VIEW vm2 AS SELECT price*limit_n ...

  5. java IO流 (四) 缓冲流的使用

    1.缓冲流涉及到的类: * BufferedInputStream* BufferedOutputStream* BufferedReader* BufferedWriter 2.作用:作用:提供流的 ...

  6. flask 源码专题(六):session处理机制

    前言 flask_session是flask框架实现session功能的一个插件,用来替代flask自带的session实现机制,flask默认的session信息保存在cookie中,不够安全和灵活 ...

  7. 数据可视化之powerBI入门(四)Power BI与PowerQuery、PowerPivot有什么关系

    https://zhuanlan.zhihu.com/p/64146209 Power BI与PowerQuery.PowerPivot有什么关系? 刚开始学习PowerBI的时候,总是能碰到Powe ...

  8. Resource exhausted: OOM when allocating tensor with shape[3,3,384,384] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0。。。。。

    报错信息: OP_REQUIRES failed at assign_op.h:111 : Resource exhausted: OOM when allocating tensor with sh ...

  9. 绕过CDN查找真实IP方法

    0x01 验证是否存在CDN 方法1: 很简单,使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有:http://ping.china ...

  10. C++ RMQ问题

    RMQ问题是区间求最值问题,就是求一个数组第i个到第j个中最大数或最小数的算法. 这个算法有一些倍增思想,也有一些二分思想.具体是一个数组,m[i][j]表示从i开始往后数2的j次方个数的最大值或最小 ...