firefox

3. 逻辑漏洞之支付漏洞

五迷三道 提交于 2020-04-25 05:43:45
支付漏洞 乌云案例之顺丰宝业务逻辑漏洞 案例说明 顺丰宝存在支付逻辑漏洞,可以允许用户1元变1亿元。这个漏洞在其他网站很难存在,原因是页面交互都使用了对字段做签名。但是顺丰宝没做签名,导致支付金额可以被修改为任意数值。猜测成因是开发人员为了快速实现功能,而忽略了其中数据签名的步骤。可以想象,如果我充值1个亿,然后再使用取款功能,会产生神马效果。 利用过程 1 登录顺风宝查看余额 2 充值,选择招商银行。填写充值金额1,如下图: 提交之后如下: 3 开启firefox的tamper,点击支付,截取数据包,修改参数Amount为一分 4 提交跳转到招行支付 5 支付成功后,招行扣去一分 6 查询余额 乌云案例之乐视商城逻辑支付漏洞 案例说明 订单的价格在支付链接中出现,导致用户可以修改任意金额购买产品 利用过程 1 下单后选择支付,如图: 2 注意下面的连接,orderPrice参数为商品总额 3 将价格改成0.1 乌云案例之读览天下支付逻辑漏洞 案例说明 通过替换支付订单号的方式,来完成花小钱买大东西。同时生成两个订单号,一个贵的一个便宜,首先支付便宜的,银行往回返回的时候,替换订单号,然后就可以完成两个订单的同时支付。 漏洞成因 服务端只检查支付是否完成,并没有确认订单金额与银行支付金额是否相同,过分信任客户端提交的数据 修复方案 检查支付完成后价格和买的产品的价格是一样的。

Vue- vue devtools安装

血红的双手。 提交于 2020-04-25 05:03:54
使用Vue开发过程中,需Chrome浏览器的调试插件Vue devtools 1、下载 https://github.com/vuejs/vue-devtools 选择下载安装整个ZIP压缩包 2.然后进行解压缩,并在解压后的文件夹里面打开命令提示符, 3.然后在相同的路径里面输入:npm install 再输入:npm run build 注意:npm install的时候会报错: npm ERR! Unexpected end of JSON input while parsing near '...a1a6ec9096c30d3954dd5' 解决方法:npm cache clean --force 4.在编译好的文件夹找到manifest.json这个文件,一般所在的路径是: 自己安装的路径\vue-devtools-dev\shells\chrome\manifest.json 然后打开这个manifest.json, 将persistent的值改为true 5.打开chrome浏览器的扩展程序,( chrome://extensions/ ) 打开开发者模式,并将整个chrome文件夹拖入空白处,即可加载出vue devtools插件 6、验证 二、火狐安装 安装 web-ext npm install -- global web -ext

vue2.0模拟锚点实现定位平滑滚动

独自空忆成欢 提交于 2020-04-25 01:50:54
vue2.0模拟锚点实现定位平滑滚动   效果为点击哪一个标题,平滑滚动到具体的详情。   如果是传统项目,这个效果就非常简单。但是放到 Vue 中,就有两大难题:   1. 在没有 jQuery 的 animate() 方法的情况下,如何实现平滑滚动?   2. 如何监听页面滚动事件?   进行多次尝试之后,终于解决了这些问题   期间主要涉及到了 setTimeout 的递归用法,和 Vue 生命周期中的 mounted   首先导航处 <h3 class = " current " ><a href= " javascript:; " class = " button " @click= " jump(0) " >产品详情</a></h3> <h3><a href= " javascript:; " class = " button " @click= " jump(1) " >预定须知</a></h3> <h3><a href= " javascript:; " class = " button " @click= " jump(2) " >费用明细</a></h3> <h3><a href= " javascript:; " class = " button " @click= " jump(3) " >温馨提示</a></h3>   添加一个 jump 方法 jump

html5页面资源预加载(Link prefetch)

老子叫甜甜 提交于 2020-04-25 01:41:54
---恢复内容开始--- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <base > <title></title> <script> function bro(){ // var is360 = false; //application/vnd.chromium.remoting-viewer 可能为360特有 var is360 = _mime("type", "application/vnd.chromium.remoting-viewer"); var isIE = false; var isFirefox = false; var isCrome = false; var broName = ''; if(window.navigator.userAgent.indexOf('MSIE')!=-1&&window.navigator.appName.indexOf("Microsoft") != -1){ isIE = true; broName = 'IE'; alert(ie) } if(window.navigator.userAgent

js中clientWidth, scrollWidth, innerWidth, outerWidth和offsetWidth属性的区别

。_饼干妹妹 提交于 2020-04-24 23:38:48
js中clientWidth, scrollWidth, innerWidth, outerWidth,offsetWidth的属性汇总,测试浏览器:ie7~ie11、chrome 和 firefox等。 一、测试1:无滚动条时,dom对象的offsetWidth、clientWidth和scrollWidth (1)测试代码 <!DOCTYPE HTML> <html lang="zh-cn"> <head> <meta charset="utf-8" /> <title>Javascript</title> <style> *{margin: 0;padding: 0 ;} body{font: 12px /2 Arial;background-color: #ccc;padding: 20px;} #b1{width: 530px;height: 320px;background- color: #fff;position: relative;} #b2{width: 220px;height: 130px;background - color: orange;border: 10px solid #085A90;padding: 10px;position: relative;left: 140px;top: 90px;} </style> </head> <body>

Python网络爬虫实战(三)照片定位与B站弹幕

試著忘記壹切 提交于 2020-04-24 23:27:01
之前两篇已经说完了如何爬取网页以及如何解析其中的数据,那么今天我们就可以开始第一次实战了。 这篇实战包含两个内容。 * 利用爬虫调用Api来解析照片的拍摄位置 * 利用爬虫爬取Bilibili视频中的弹幕 关于爬虫调用Api这一说法,其实就是通过get或者post请求携带着参数,将内容发给对方服务器,服务器会根据请求的Api是哪个来进行处理。 比如说/delete?id=2和/save?id=1&name=antz这两个请求就分别是删除id等于2的数据,保存一条id等于1姓名为antz的数据。 此时我们就只需要向对方服务器发送出这个请求就可以了,requests.get(url)就这么简单。 一.根据照片解析定位 不知道你平常拍照片有没有在你手机的设置里仔细查看过,比如说下面这个选项【地理位置】。 打开它之后,我拍的照片上也没有显示地理位置啊? 这是因为这些数据被放在了照片文件数据里面,可能你很难理解,你可以回想一下之前我们说的get之后的响应,响应体分为响应头和响应体。照片的数据也是一样,有信息头(随便叫的)和数据体,信息头里面有你这张照片的各种信息,拍摄时间地点设备等,而数据体就是你用看图软件打开时显示在你眼中的那些了,我们平常关注到的只有数据体,只关心照片是不是好看,而信息头的内容对我们来说其实无关紧要。 下面是我之前拍的一张照片经过解析获得的信息头数据

CSRF(跨站请求伪造)

|▌冷眼眸甩不掉的悲伤 提交于 2020-04-24 13:11:14
CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)。 CSRF与XSS最大的区别就在于,CSRF并没有盗取cookie而是直接利用。 Low 可以看到,服务器收到修改密码的请求后,会检查参数password_new与password_conf是否相同,如果相同,就会修改密码,并没有任何的防CSRF机制(当然服务器对请求的发送者是做了身份验证的,是检查的cookie,只是这里的代码没有体现= =)。 抓包得到,URL: 方法一:http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change# 当用户A在访问该网站时,只要用户A点击黑客B精心构造的这个URL时就能造成CSRF攻击 不能跨浏览器,例如之前用的火狐,现在不能用Chrome浏览器,因为chrome不会利用火狐的cookie。 当然,这个URL过于明显,稍微有一点知识的人都能看出来这是一个改密码的链接,所以说我们就应该想一下隐藏的放法, 方法二

如何理解data URL?

大憨熊 提交于 2020-04-24 11:22:49
canvas有一个非常常用的方法canvas.toDataURL(),它会将canvas转化为data URL的格式。 通常情况下这个data URL的类型为image。 看看下面的例子: <canvas id= "canvas" height= "2" width= "2" > </ canvas > var canvas = document .getElementById( 'canvas' ); var dataURL = canvas.toDataURL(); console .log(dataURL); /* * data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAADklEQVQYV2NkgAJGGAMAAC0AA03DhRMAAAAASUVORK5CYII= */ 复制代码 那么这个以 data:[MIME type];base64, 开头的data URL到底是什么东西呢? 初识data URL data URL与传统的url有什么区别? data URL在浏览器地址栏输入后是怎样的? data URL语法 data URL由哪四部分组成? [<mediatype>] 详情 [;base64] 和 <data> 详情 常见的data URL形式

如何隐藏scroll-Y纵向滚动条,并不影响内容滚动的方法

南楼画角 提交于 2020-04-24 08:31:37
网上搜了很多关于隐藏滚动条的文章,发现很多都是只说了如何隐藏scroll-X横向滚动条,对scroll-Y纵向滚动条并没有明确的述说。本文章将介绍3种隐藏滚动条的方法,大家可以结合实际情况,参考文章内容。 纯DIV+CSS方法 在容器外面再嵌套一层 overflow:hidden 内部内容再限制尺寸和外部嵌套层一样,就变相隐藏了。该方法兼容所有浏览器。 <div class="outer-container"> <div class="container"> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> <li>10</li> </ul> </div> </div> .outer-container{ overflow: hidden; width: 200px; } .container{ overflow-x: hidden; overflow-y: scroll; width: 220px; height: 100px; background-color: yellow; } CSS3 自定义滚动条的伪对象选择器 css3有一个直接调用的css,保证隐藏滚动条的同时还可以继续通过滚轮向下翻。 ::-webkit

为何GET只发一次TCP连接,POST发两次TCP连接

╄→尐↘猪︶ㄣ 提交于 2020-04-23 23:18:29
转自微信公众号WebTechGarden GET和POST是HTTP请求的两种基本方法,要说他们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚的知道什么时候该用什么。 当你在面试中遇到这个问题时,你的内心充满了喜悦。 你轻轻松松的给出了一个“标准答案”: 1、GET在浏览器回退时是无害的,而POST会再次提交请求。 2、GET产生的URL地址可以被Bookmark,而POST不可以。 3、GET请求会被浏览器主动cache,而POST不会,除非手动设置。 4、GET请求的参数会完整的被保存在历史记录里,POST不会。 5、GET请求参数放在URL中,POST放在request body中。 6、GET请求只能进行url编码,POST请求支持多种编码方式。 7、对于参数类型,GET只接受ASCII字符,而POST没有限制。 8、GET请求在URL中传递的参数是有长度限制的,而POST没有。 9、GET比POST更不安全,因为参数直接暴露在URL中,所以不能传递敏感信息。 but,这不是我们想要的回答!!!! 请告诉我真想…. 如果我告诉你GET和POST本质上没有区别,你信吗? GET和POST是什么