黑客24小时在线接单网站

怎么联系真的黑客,24小时在线黑客联系方式,24小时在线联系黑客,正规黑客私人接单,黑客QQ联系方式

cors漏洞和xss(cors漏洞利用)

本文目录一览:

一个完整的渗透测试流程,分为那几块,每一块有哪些内容

包含以下几个流程:

信息收集

第一步做的就是信息收集,根据网站URL可以查出一系列关于该网站的信息。通过URL我们可以查到该网站的IP、该网站操作系统、脚本语言、在该服务器上是否还有其他网站等等一些列的信息。

漏洞探测

当我们收集到了足够多的信息之后,我们就要开始对网站进行漏洞探测了。探测网站是否存在一些常见的Web漏洞,比如:SQL注入 。

漏洞利用

探测到了该网站存在漏洞之后,就要对该漏洞进行利用了。不同的漏洞有不同的利用工具,很多时候,通过一个漏洞我们很难拿到网站的webshell,我们往往需要结合几个漏洞来拿webshell。

内网渗透

当我们能跟内网主机进行通信后,我们就要开始进行内网渗透了。可以先使用nmap对内网主机进行扫描,探测在线的主机,并且探测其使用的操作系统、开放的端口等信息。

内网中也有可能存在供内网使用的内网服务器,可以进一步渗透拿下其权限。

痕迹清除

达到了目的之后,有时候只是为了黑入网站挂黑页,炫耀一下;或者在网站留下一个后门,作为肉鸡,没事的时候上去溜达溜达;亦或者挂入挖矿木马。

撰写渗透测试保告

在完成了渗透测试之后,就需要对这次渗透测试撰写渗透测试报告了。明确的写出哪里存在漏洞,以及漏洞修补的方法。以便于网站管理员根据我们的渗透测试报告修补这些漏洞和风险,防止被黑客攻击。

跨域有哪几种方式?

跨源资源共享

通过 XHR 实现 Ajax 通信的一个主要限制,来源于跨域安全策略。默认情况下,XHR 对象只能访 问与包含它的页面位于同一个域中的资源。这种安全策略可以预防某些恶意行为。但是,实现合理的跨 域请求对开发某些浏览器应用程序也是至关重要的。

CORS(Cross-Origin Resource Sharing,跨源资源共享)是 W3C 的一个工作草案,定义了在必须访 问跨源资源时,浏览器与服务器应该如何沟通。CORS 背后的基本思想,就是使用自定义的 HTTP 头部 让浏览器与服务器进行沟通,从而决定请求或响应是应该成功,还是应该失败。

比如一个简单的使用 GET 或 POST 发送的请求,它没有自定义的头部,而主体内容是 text/plain。在 发送该请求时,需要给它附加一个额外的 Origin 头部,其中包含请求页面的源信息(协议、域名和端 口),以便服务器根据这个头部信息来决定是否给予响应。下面是 Origin 头部的一个示例:

如果服务器认为这个请求可以接受,就在 Access-Control-Allow-Origin 头部中回发相同的源信息(如果是公共资源,可以回发”*”)。例如:

如果没有这个头部,或者有这个头部但源信息不匹配,浏览器就会驳回请求。正常情况下,浏览器 会处理请求。注意,请求和响应都不包含 cookie 信息。

IE对CORS的实现

微软在 IE8 中引入了 XDR(XDomainRequest)类型。这个对象与 XHR 类似,但能实现安全可靠 的跨域通信。XDR 对象的安全机制部分实现了 W3C 的 CORS 规范。以下是 XDR 与 XHR 的一些不同之 处。

cookie 不会随请求发送,也不会随响应返回。

只能设置请求头部信息中的 Content-Type 字段。  不能访问响应头部信息。 只支持GET和POST请求。

这些变化使 CSRF(Cross-Site Request Forgery,跨站点请求伪造)和 XSS(Cross-Site Scripting,跨 站点脚本)的问题得到了缓解。被请求的资源可以根据它认为合适的任意数据(用户代理、来源页面等) 来决定是否设置 Access-Control- Allow-Origin 头部。作为请求的一部分,Origin 头部的值表示 请求的来源域,以便远程资源明确地识别 XDR 请求。

XDR 对象的使用方法与 XHR 对象非常相似。也是创建一个 XDomainRequest 的实例,调用 open() 方法,再调用 send()方法。但与 XHR 对象的 open()方法不同,XDR 对象的 open()方法只接收两个 参数:请求的类型和 URL。

所有 XDR 请求都是异步执行的,不能用它来创建同步请求。请求返回之后,会触发 load 事件, 响应的数据也会保存在 responseText 属性中,如下所示。

在接收到响应后,你只能访问响应的原始文本;没有办法确定响应的状态代码。而且,只要响应有 效就会触发 load 事件,如果失败(包括响应中缺少 Access-Control-Allow-Origin 头部)就会触 发 error 事件。遗憾的是,除了错误本身之外,没有其他信息可用,因此唯一能够确定的就只有请求 未成功了。要检测错误,可以像下面这样指定一个 onerror 事件处理程序。

鉴于导致 XDR 请求失败的因素很多,因此建议你不要忘记通过 onerror 事件处 理程序来捕获该事件;否则,即使请求失败也不会有任何提示。

在请求返回前调用 abort()方法可以终止请求:

与 XHR 一样,XDR 对象也支持 timeout 属性以及 ontimeout 事件处理程序。下面是一个例子。

这个例子会在运行 1 秒钟后超时,并随即调用 ontimeout 事件处理程序。

为支持 POST 请求,XDR 对象提供了 contentType 属性,用来表示发送数据的格式,如下面的例子所示。

这个属性是通过 XDR 对象影响头部信息的唯一方式。 其他浏览器对CORS的实现

Firefox 3.5+、Safari 4+、Chrome、iOS 版 Safari 和 Android 平台中的 WebKit 都通过 XMLHttpRequest 对象实现了对 CORS 的原生支持。在尝试打开不同来源的资源时,无需额外编写代码就可以触发这个行 为。要请求位于另一个域中的资源,使用标准的 XHR 对象并在 open()方法中传入绝对 URL 即可,例如:

与 IE 中的 XDR 对象不同,通过跨域 XHR 对象可以访问 status 和 statusText 属性,而且还支 持同步请求。跨域 XHR 对象也有一些限制,但为了安全这些限制是必需的。以下就是这些限制。

不能使用 setRequestHeader()设置自定义头部。

不能发送和接收 cookie。

调用 getAllResponseHeaders()方法总会返回空字符串。

由于无论同源请求还是跨源请求都使用相同的接口,因此对于本地资源,最好使用相对 URL,在访 问远程资源时再使用绝对 URL。这样做能消除歧义,避免出现限制访问头部或本地 cookie 信息等问题。

Preflighted Reqeusts

CORS 通过一种叫做 Preflighted Requests 的透明服务器验证机制支持开发人员使用自定义的头部、 GET 或 POST 之外的方法,以及不同类型的主体内容。在使用下列高级选项来发送请求时,就会向服务 器发送一个 Preflight 请求。这种请求使用 OPTIONS 方法,发送下列头部。

Origin:与简单的请求相同。

Access-Control-Request-Method:请求自身使用的方法。

Access-Control-Request-Headers:(可选)自定义的头部信息,多个头部以逗号分隔。

以下是一个带有自定义头部 NCZ 的使用 POST 方法发送的请求。

跨源资源共享

发送这个请求后,服务器可以决定是否允许这种类型的请求。服务器通过在响应中发送如下头部与 浏览器进行沟通。

Access-Control-Allow-Origin:与简单的请求相同。

Access-Control-Allow-Methods:允许的方法,多个方法以逗号分隔。

Access-Control-Allow-Headers:允许的头部,多个头部以逗号分隔。

Access-Control-Max-Age:应该将这个 Preflight 请求缓存多长时间(以秒表示)。

例如:

支持 withCredentials 属性的浏览器有 Firefox 3.5+、Safari 4+和 Chrome。IE 10 及更早版本都不 9 支持。



Preflight 请求结束后,结果将按照响应中指定的时间缓存起来。而为此付出的代价只是第一次发送 这种请求时会多一次 HTTP 请求。

支持 Preflight 请求的浏览器包括 Firefox 3.5+、Safari 4+和 Chrome。IE 10 及更早版本都不支持。

带凭据的请求

默认情况下,跨源请求不提供凭据(cookie、HTTP 认证及客户端 SSL 证明等)。通过将 withCredentials 属性设置为 true,可以指定某个请求应该发送凭据。如果服务器接受带凭据的请 求,会用下面的 HTTP 头部来响应。

如果发送的是带凭据的请求,但服务器的响应中没有包含这个头部,那么浏览器就不会把响应交给JavaScript(于是,responseText 中将是空字符串,status 的值为 0,而且会调用 onerror()事件处 理程序)。另外,服务器还可以在 Preflight 响应中发送这个 HTTP 头部,表示允许源发送带凭据的请求。

跨浏览器的CORS

即使浏览器对 CORS 的支持程度并不都一样,但所有浏览器都支持简单的(非 Preflight 和不带凭据 的)请求,因此有必要实现一个跨浏览器的方案。检测 XHR 是否支持 CORS 的最简单方式,就是检查 是否存在 withCredentials 属性。再结合检测 XDomainRequest 对象是否存在,就可以兼顾所有浏 览器了。

Firefox、Safari 和 Chrome 中的 XMLHttpRequest 对象与 IE 中的 XDomainRequest 对象类似,都 提供了够用的接口,因此以上模式还是相当有用的。这两个对象共同的属性/方法如下。

abort():用于停止正在进行的请求。

onerror:用于替代 onreadystatechange 检测错误。  onload:用于替代 onreadystatechange 检测成功。 - responseText:用于取得响应内容。

send():用于发送请求。

以上成员都包含在 createCORSRequest()函数返回的对象中,在所有浏览器中都能正常使用。

其他跨域技术

在 CORS 出现以前,要实现跨域 Ajax 通信颇费一些周折。开发人员想出了一些办法,利用 DOM 中 能够执行跨域请求的功能,在不依赖 XHR 对象的情况下也能发送某种请求。虽然 CORS 技术已经无处 不在,但开发人员自己发明的这些技术仍然被广泛使用,毕竟这样不需要修改服务器端代码。

图像Ping

上述第一种跨域请求技术是使用img标签。我们知道,一个网页可以从任何网页中加载图像,不 用担心跨域不跨域。这也是在线广告跟踪浏览量的主要方式。正如第 13 章讨论过的,也可以动态地创 建图像,使用它们的 onload 和 onerror 事件处理程序来确定是否接收到了响应。

动态创建图像经常用于图像 Ping。图像 Ping 是与服务器进行简单、单向的跨域通信的一种方式。 请求的数据是通过查询字符串形式发送的,而响应可以是任意内容,但通常是像素图或 204 响应。通过 图像 Ping,浏览器得不到任何具体的数据,但通过侦听 load 和 error 事件,它能知道响应是什么时 候接收到的。来看下面的例子。

这里创建了一个 Image 的实例,然后将 onload 和 onerror 事件处理程序指定为同一个函数。这 样无论是什么响应,只要请求完成,就能得到通知。请求从设置 src 属性那一刻开始,而这个例子在请 求中发送了一个 name 参数。

图像 Ping 最常用于跟踪用户点击页面或动态广告曝光次数。图像 Ping 有两个主要的缺点,一是只 能发送 GET 请求,二是无法访问服务器的响应文本。因此,图像 Ping 只能用于浏览器与服务器间的单向通信。

JSONP

JSONP 是 JSON with padding(填充式 JSON 或参数式 JSON)的简写,是应用 JSON 的一种新方法, 在后来的 Web 服务中非常流行。JSONP 看起来与 JSON 差不多,只不过是被包含在函数调用中的 JSON, 4 就像下面这样。

JSONP 由两部分组成:回调函数和数据。回调函数是当响应到来时应该在页面中调用的函数。回调 函数的名字一般是在请求中指定的。而数据就是传入回调函数中的 JSON 数据。下面是一个典型的 JSONP 请求。

这个 URL 是在请求一个 JSONP 地理定位服务。通过查询字符串来指定 JSONP 服务的回调参数是很 常见的,就像上面的 URL 所示,这里指定的回调函数的名字叫 handleResponse()。

JSONP 是通过动态script元素来使用的,使用时可以为src 属性指定一个跨域 URL。这里的script元素与img元素类似,都有能力不受限制地从其他域 加载资源。因为 JSONP 是有效的 JavaScript 代码,所以在请求完成后,即在 JSONP 响应加载到页面中 以后,就会立即执行。来看一个例子。 

这个例子通过查询地理定位服务来显示你的 IP 地址和位置信息。

JSONP 之所以在开发人员中极为流行,主要原因是它非常简单易用。与图像 Ping 相比,它的优点 在于能够直接访问响应文本,支持在浏览器与服务器之间双向通信。不过,JSONP 也有两点不足。

首先,JSONP 是从其他域中加载代码执行。如果其他域不安全,很可能会在响应中夹带一些恶意代码,而此时除了完全放弃 JSONP 调用之外,没有办法追究。因此在使用不是你自己运维的 Web 服务时, 一定得保证它安全可靠。

其次,要确定 JSONP 请求是否失败并不容易。虽然 HTML5 给script元素新增了一个 onerror 事件处理程序,但目前还没有得到任何浏览器支持。为此,开发人员不得不使用计时器检测指定时间内是否接收到了响应。但就算这样也不能尽如人意,毕竟不是每个用户上网的速度和带宽都一样。

参考:javascript高级程序设计第21章

区块链钱包安全吗?

近年来,数字钱包安全事件频发。

2019年11月19日,Ars Technica报道称两个加密货币钱包数据遭泄露,220万账户信息被盗。安全研究员Troy Hunt证实,被盗数据来自加密货币钱包GateHub和RuneScape机器人提供商EpicBot的账户。

这已经不是Gatehub第一次遭遇数据泄露了。据报道,去年6月,黑客入侵了大约100 个XRP Ledger钱包,导致近1000万美元的资金被盗。

2019年3月29日,Bithumb失窃事件闹得沸沸扬扬。据猜测,这次事件起因为Bithumb拥有的g4ydomrxhege帐户的私钥被黑客盗取。

随即,黑客将窃取的资金分散到各个交易所,包括火币,HitBTC,WB和EXmo。根据非官方数据和用户估计,Bithumb遭受的损失高达300万个EOS币(约1300万美元)和2000万个XRP币(约600万美元)以上。

由于数字货币的匿名性及去中心化,导致被盗资产在一定程度上难以追回。因此,钱包的安全性至关重要。

2020年8月9日,CertiK的安全工程师在DEF CON区块链安全大会上发表了演讲主题为:Exploit Insecure Crypto Wallet(加密钱包漏洞利用与分析)的主题报告,分享了对于加密钱包安全的见解。

加密钱包是一种帮助用户管理帐户和简化交易过程的应用程序。

有些区块链项目发布加密钱包应用程序来支持本链的发展——比如用于CertiK Chain的Deepwallet。

此外,还有像Shapeshift这样的公司,其构建了支持不同区块链协议的钱包。

从安全的角度来看,加密钱包最需重视的问题是防止攻击者窃取用户钱包的助记词和私钥等信息。

近一年来,CertiK技术团队对多个加密钱包进行了测试和研究,并在此分享针对基于软件不同类型的加密钱包进行安全评估的方法及流程。

加密钱包基础审计清单

要对一个应用程序进行评估,首先需要了解其工作原理→代码实现是否遵循最佳安全标准→如何对安全性不足的部分进行修正及提高。

CertiK技术团队针对加密钱包制作了一个基础审计清单,这份清单反映了所有形式的加密钱包应用(手机、web、扩展、桌面),尤其是手机和web钱包是如何生产和储存用户私钥的。

应用程序如何生成私钥?

应用程序如何以及在何处存储原始信息和私钥?

钱包连接到的是否是值得信任的区块链节点?

应用程序允许用户配置自定义区块链节点吗?如果允许,恶意区块链节点会对应用程序造成什么影响?

应用程序是否连接了中心化服务器?如果是,客户端应用会向服务器发送哪些信息?

应用程序是否要求用户设置一个安全性高的密码?

当用户试图访问敏感信息或转账时,应用程序是否要求二次验证?

应用程序是否使用了存在漏洞且可被攻击的第三方库?

有没有秘密(比如:API密钥,AWS凭证)在源代码存储库中泄漏?

有没有明显的不良代码实现(例如对密码学的错误理解)在程序源代码中出现?

应用服务器是否强制TLS连接?

手机钱包

相比于笔记本电脑,手机等移动设备更容易丢失或被盗。

在分析针对移动设备的威胁时,必须考虑攻击者可以直接访问用户设备的情况。

在评估过程中,如果攻击者获得访问用户设备的权限,或者用户设备感染恶意软件,我们需要设法识别导致账户和密码资产受损的潜在问题。

除了基础清单以外,以下是在评估手机钱包时要增加检查的审计类目:

应用程序是否警告用户不要对敏感数据进行截屏——在显示敏感数据时,安卓应用是否会阻止用户截屏?iOS应用是否警告用户不要对敏感数据进行截屏?

应用程序是否在后台截图中泄漏敏感信息?

应用程序是否检测设备是否越狱/root?

应用程序是否锁定后台服务器的证书?

应用程序是否在程序的log中记录了敏感信息?

应用程序是否包含配置错误的deeplink和intent,它们可被利用吗?

应用程序包是否混淆代码?

应用程序是否实现了反调试功能?

应用程序是否检查应用程序重新打包?

(iOS)储存在iOS Keychain中的数据是否具有足够安全的属性?

应用程序是否受到密钥链数据持久性的影响?

当用户输入敏感信息时,应用程序是否禁用自定义键盘?

应用程序是否安全使用“webview”来加载外部网站?

Web钱包

对于一个完全去中心化的钱包来说,Web应用程序逐渐成为不太受欢迎的选择。MyCrypto不允许用户在web应用程序中使用密钥库/助记词/私钥访问钱包,MyEtherWallet也同样建议用户不要这样做。

与在其他三种平台上运行的钱包相比,以web应用程序的形式对钱包进行钓鱼攻击相对来说更容易;如果攻击者入侵了web服务器,他可以通过向web页面注入恶意的JavaScript,轻松窃取用户的钱包信息。

然而,一个安全构建并经过彻底测试的web钱包依旧是用户管理其加密资产的不二之选。

除了上面常规的基础审计类目之外,我们在评估客户端web钱包时,还列出了以下需要审计的类目列表:

应用程序存在跨站点脚本XSS漏洞吗?

应用程序存在点击劫持漏洞吗?

应用程序有没有有效的Content Security Policy?

应用程序存在开放式重定向漏洞吗?

应用程序存在HTML注入漏洞吗?

现在网页钱包使用cookie的情况很少见,但如果有的话,应检查:

Cookie属性

跨站请求伪造(CSRF)

跨域资源共享(CORS)配置错误

该应用程序是否包含除基本钱包功能之外的其他功能? 这些功能存在可被利用的漏洞吗?

OWASP Top 10中未在上文提到的漏洞。

扩展钱包

Metamask是最有名和最常用的加密钱包之一,它以浏览器扩展的形式出现。

扩展钱包在内部的工作方式与web应用程序非常相似。

不同之处在于它包含被称为content script和background script的独特组件。

网站通过content script和background script传递事件或消息来与扩展页面进行交流。

在扩展钱包评估期间,最重要的事情之一就是测试一个恶意网站是否可以在未经用户同意的情况下读取或写入属于扩展钱包的数据。

除了基础清单以外,以下是在评估扩展钱包时要增加检查的审计类目:

扩展要求了哪些权限?

扩展应用如何决定哪个网站允许与扩展钱包进行交流?

扩展钱包如何与web页面交互?

恶意网站是否可以通过扩展中的漏洞来攻击扩展本身或浏览器中其他的页面?

恶意网站是否可以在未经用户同意的情况下读取或修改属于扩展的数据?

扩展钱包存在点击劫持漏洞吗?

扩展钱包(通常是background script)在处理消息之前是否已检查消息来源?

应用程序是否实现了有效的内容安全策略?

Electron桌面钱包

在编写了web应用程序的代码之后,为什么不用这些代码来建造一个Electron中桌面应用程序呢?

在以往测试过的桌面钱包中,大约80%的桌面钱包是基于Electron框架的。在测试基于Electron的桌面应用程序时,不仅要寻找web应用程序中可能存在的漏洞,还要检查Electron配置是否安全。

CertiK曾针对Electron的桌面应用程序漏洞进行了分析,你可以点击访问此文章了解详情。

以下是基于Electron的桌面钱包受评估时要增加检查的审计类目:

应用程序使用什么版本的Electron?

应用程序是否加载远程内容?

应用程序是否禁用“nodeIntegration”和“enableRemoteModule”?

应用程序是否启用了“contextisolation”, “sandbox” and “webSecurity”选项?

应用程序是否允许用户在同一窗口中从当前钱包页面跳转到任意的外部页面?

应用程序是否实现了有效的内容安全策略?

preload script是否包含可能被滥用的代码?

应用程序是否将用户输入直接传递到危险函数中(如“openExternal”)?

应用程序会使不安全的自定义协议吗?

服务器端漏洞检查列表

在我们测试过的加密钱包应用程序中,有一半以上是没有中心化服务器的,他们直接与区块链节点相连。

CertiK技术团队认为这是减少攻击面和保护用户隐私的方法。

但是,如果应用程序希望为客户提供除了帐户管理和令牌传输之外的更多功能,那么该应用程序可能需要一个带有数据库和服务器端代码的中心化服务器。

服务器端组件要测试的项目高度依赖于应用程序特性。

根据在研究以及与客户接触中发现的服务器端漏洞,我们编写了下文的漏洞检查表。当然,它并不包含所有可能产生的服务器端漏洞。

认证和授权

KYC及其有效性

竞赛条件

云端服务器配置错误

Web服务器配置错误

不安全的直接对象引用(IDOR)

服务端请求伪造(SSRF)

不安全的文件上传

任何类型的注入(SQL,命令,template)漏洞

任意文件读/写

业务逻辑错误

速率限制

拒绝服务

信息泄漏

总结

随着技术的发展,黑客们实施的欺诈和攻击手段也越来越多样化。

CertiK安全技术团队希望通过对加密钱包安全隐患的分享让用户更清楚的认识和了解数字货币钱包的安全性问题、提高警惕。

现阶段,许多开发团队对于安全的问题重视程度远远低于对于业务的重视程度,对自身的钱包产品并未做到足够的安全防护。通过分享加密钱包的安全审计类目,CertiK期望加密钱包项目方对于产品的安全标准拥有清晰的认知,从而促进产品安全升级,共同保护用户资产的安全性。

数字货币攻击是多技术维度的综合攻击,需要考虑到在数字货币管理流通过程中所有涉及到的应用安全,包括电脑硬件、区块链软件,钱包等区块链服务软件,智能合约等。

加密钱包需要重视对于潜在攻击方式的检测和监视,避免多次受到同一方式的攻击,并且加强数字货币账户安全保护方法,使用物理加密的离线冷存储(cold storage)来保存重要数字货币。除此之外,需要聘请专业的安全团队进行网络层面的测试,并通过远程模拟攻击来寻找漏洞。

  • 评论列表:
  •  黑客技术
     发布于 2022-07-11 05:36:11  回复该评论
  • 个域中的资源。这种安全策略可以预防某些恶意行为。但是,实现合理的跨 域请求对开发某些浏览器应用程序也是至关重要的。CORS(Cross-Origin Resource Sharing,跨源资源共享)是 W3C 的一个工作草案,定义了在必须访 问跨源资源时,浏览器与服务器应该如何沟通。
  •  黑客技术
     发布于 2022-07-11 04:49:39  回复该评论
  • d script传递事件或消息来与扩展页面进行交流。在扩展钱包评估期间,最重要的事情之一就是测试一个恶意网站是否可以在未经用户同意的情况下读取或写入属于扩展钱包的数据。除了基础清单以外,以下是在评估扩展钱包时要增加检查的审计类目:扩展要求了哪些权限?扩展应用如何决定哪个网站
  •  黑客技术
     发布于 2022-07-11 06:16:06  回复该评论
  • igin 头部)就会触 发 error 事件。遗憾的是,除了错误本身之外,没有其他信息可用,因此唯一能够确定的就只有请求 未成功了。要检测错误,可以像下面这样指定一个 onerror 事
  •  黑客技术
     发布于 2022-07-11 03:41:49  回复该评论
  • 用户不要对敏感数据进行截屏?应用程序是否在后台截图中泄漏敏感信息?应用程序是否检测设备是否越狱/root?应用程序是否锁定后台服务器的证书?应用程序是否在程序的log中记录了敏感信息?应用程

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.