皇冠信用盘开户
uG环球真人百家乐博彩电竞_荫藏在令人瞩目之下:复盘etherscan的零日罅隙 | BTC
你的位置:| 皇冠信用盘开户 > 新2体育 > uG环球真人百家乐博彩电竞_荫藏在令人瞩目之下:复盘etherscan的零日罅隙 | BTC

uG环球真人百家乐博彩电竞_荫藏在令人瞩目之下:复盘etherscan的零日罅隙 | BTC

发布日期:2023-11-03 09:18    点击次数:134

uG环球真人百家乐博彩电竞_荫藏在令人瞩目之下:复盘etherscan的零日罅隙 | BTC

现代博彩技术已经非常发达,可以确保游戏的公平性和随机性,让每个人都有公平的机会赢得奖金。uG环球真人百家乐博彩电竞_“如若你在etherscan中找到一个0day(零日)罅隙,你会何如作念?我决定构建一个‘弹球机‘。" ——paradigm说合合资东说念主samczsun

注:原文作家是samczsun。

博彩电竞

我心爱挑战假定。

我心爱尝试作念不可能的事情,找到别东说念主错过的东西,用他们从未见过的事来使他们颤抖。旧年的时候,我凭据一个相等浑沌的Solidity罅隙为Paradigm CTF 2021 编写了一个挑战。天然公开表露了一种变体,但我找到的罅隙从未实在被商讨过。效能,险些悉数尝试过挑战它的东说念主,齐被它看似不可能的性质所难倒。

几周前,咱们正在商讨对于Paradigm CTF 2022的诡计,其时Georgios在推特上发布了一条艰辛推文,我以为在启动电话会议的归拢天发布一个挑战会相等酷。但是,这不可能仅仅一次老掉牙的挑战。我念念从这个寰球得到一些东西,一些莫得东说念主会看到的东西,一些突出东说念主们念念象极限的东西。我念念编写第一个愚弄0day(零日)罅隙的以太坊 CTF 挑战。

股票英亚体育官方入口皇冠官方入口

皇冠hg86a

怎么制造0day(零日)罅隙

手脚安全说合东说念主员,为了优化咱们的时刻,咱们会作念出一些基本假定。一是咱们正在阅读的源代码照实产生了咱们正在分析的合约。天然,唯有当咱们从实在的场地读取源代码时,这种假定才成立,比如说Etherscan。因此,如若我能找到一种次第让Etherscan造作地考据某些东西,我就未必围绕它瞎想出一个实在间接的谜题。

为了找出怎么愚弄Etherscan的合约考据系统,我必须考据一些合约。我在Ropsten测试网部署了一些合约来折腾并尝锻练证它们。很快,我就看到了底下的界面。

我聘请了正确的建设并投入下一页。在这里,我被要求提供我的合约源代码。

iba百家乐网址

我输入了源代码并单击了考据按钮,竟然,我的源代码当今附在了我的合约上。

既然我知说念了事情是怎么运作的,我就不错源泉讥笑考据经由了。我尝试的第一件事是部署一个新的合约,将foo鼎新为bar,并用原始源代码考据该合约。绝不奇怪的是,Etherscan圮绝考据我的合约。

但是,当我手动相比两个字节码输出时,我肃穆到一些奇怪的事情。合约字节码应该是十六进制的,但彰着有一些并非是十六进制的。

我知说念Solidity会将合约元数据附加到部署的字节码中,但我从未实在辩论过它是怎么影响合约考据的。彰着,Etherscan 正在扫描元数据的字节码,然后用一个绮丽替换它,“这个区域中的任何东西齐不错不同,咱们仍然会以为它是换取的字节码。”

对于潜在的0day(零日)罅隙,这似乎是一个很有但愿的行踪。如若我不错糊弄 Etherscan 将非元数据解释为元数据,那么我将未必在绮丽为 {ipfs} 的区域中鬈曲我部署的字节码,同期仍然让它考据为正当的字节码。

我能念念到的在创建事务中包含一些淘气字节码的最不祥次第,是将它们编码为构造函数参数。Solidity 通过将 ABI 编码体式平直附加到创建交游数据上来对构造函数参数进行编码。

但是,Etherscan太智谋了,它将构造函数参数排斥在职何类型的元数据嗅探除外。你不错看到构造函数参数是斜体的,以标明它们与代码自身是分开的。

这意味着我需要以某种神志糊弄 Solidity 编译器,使其发出我边界的字节序列,以便使其访佛于镶嵌的元数据。但是,这似乎是一个很难去贬责的问题,因为如若莫得一些严重的编译器争论,我险些无法边界Solidity聘请使用的操作码或字节,之后源代码看起来会相等可疑。

我辩论了已而这个问题,直到我强壮到:导致Solidity发出(险些)淘气字节内容上是相等容易的。以下代码将导致 Solidity 发出 32 个字节的 0xAA。

爷辈父辈那个年代离观众已经久远,不一样的价值观,不一样的社会环境,不一样的罪恶压迫感。

依然是徐小雨带的头,“我觉得贺杨评上校草那绝对是没有人反对,”停顿,“程放,我现在能说贺杨吧?”

bytes32 value = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;

受到饱读励,我很快写了一个小合约,它将推送一系列常量,以便 Solidity 会发出与镶嵌的元数据悉数相似的字节码。

令我雀跃的是,Etherscan 在我的合约中间绮丽了IPFS 哈希的存在。

我快速复制了预期的字节码,并用一些就地字节替换了 IPFS 哈希,然后部署了生成的合约。竟然,Etherscan 像平日同样辩论了不同的字节业务,并允许我的合约得到考据。

有了这个合约,源代码建议在调用 example() 时应该复返一个不祥的字节对象。 但是,如若你确切尝试调用它,就会发生这种情况。

$ seth call 0x3cd2138cabfb03c8ed9687561a0ef5c9a153923f 'example()'seth-rpc: {"id":1,"jsonrpc":"2.0","method":"eth_call","params":[{"data":"0x54353f2f","to":"0x3CD2138CAbfB03c8eD9687561a0ef5C9a153923f"},"latest"]}seth-rpc: error: code -32000seth-rpc: error: message stack underflow (5 <=> 16)

我在 Etherscan 中奏凯发现了一个0day(零日)罅隙,当今我不错考据步履与源代码建议悉数不同的合约。而当今,我只需要围绕它瞎想一个解密游戏。

一个造作的源泉

彰着,这个解密游戏将围绕这么一个念念法,即 Etherscan 上看到的源代码并不虞味着合约的内容步履神志。我还念念确保玩家不成不祥地平直重放交游,因此贬责决议必须是每个地址独一的。最佳的次第彰着是要求签名。

但是在什么情况下会要求玩家签署一些数据呢?我的第一个瞎想是一个具有单一公开函数的不祥puzzle。玩家将使用一些输入调用该函数,对数据进行签名以确认他们建议了贬责决议,如若输入通过了悉数各式检查,那么他们将被绮丽为solver。但是,皇冠信用盘开户当我在接下来的几个小时内充实这个瞎想时,我很快就对事情的效能感到不惬意了,它源泉变得相等深重和不优雅,我无法哑忍在一个瞎想如斯灾祸的puzzle上废弃如斯棒的0day(零日)罅隙念念法。

不得不承认,我无法在周五前完成这件事,于是我决定睡一觉。

Pinball弹球艰辛

周末我陆续尝试迭代我的启动瞎想,但莫得取得更多的施展。就好像我当今的次第碰壁了,尽管我不念念承认,但我知说念如若我念念要我惬意的东西,我可能不得不再活源泉。

最终,我发现我方从第一旨趣再行凝视了这个问题。我念念要的是一个解密游戏,玩家必须在其中完成各式常识检查。但是,我莫得要求完成常识检查自身等于奏凯的条款,相背,这可能是允许玩家聘请的繁密旅途之一。也许玩家不错在悉数这个词puzzle中积累分数,愚弄这个罅隙不错得回某种奖励。赢的条款仅仅最高的分数,因此间接饱读励使用罅隙。

我回念念起我旧年瞎想的一个挑战,Lockbox‌,它迫使玩家构建一个单一的数据块,以知足六个不同合约的要求。书册合对换取的字节应用不同的敛迹,迫使玩家在构建灵验载荷的神志上变得智谋。我强壮到我念念在这里作念一些访佛的事情,我会要求玩家提交一个单一的数据blob,我会凭据知足特定要求的某些数据部分来奖励分数。

皇冠客服飞机:@seo3687

恰是在这少许上,我强壮到我基本上是在形色 pinboooll‌,这是我在 DEFCON CTF 2020 决赛本领濒临的一个挑战。pinboooll 的噱头是当你实施二进制文献时,实施会在边界流图上反弹,就像一个球在弹球机中反弹同样。通过正确构造输入,你将未必找到特定的代码部分并得回分数。天然,也有一个罅隙,但坦率地说,我仍是健忘了它是什么,我也不诡计再去寻找它。除此除外,我仍是有了我方念念要愚弄的罅隙。

体育彩票 线上

由于我在处理的是一个运行当中的零日罅隙,我决定要尽快贬责这个艰辛。临了,我花了几个小时让我方再行强壮pinboooll的使命旨趣,并花了几天时刻将其再行终了。这就贬责了puzzle的支架问题,当今我只需要集成这个罅隙。

武装化一个零日罅隙

我让 Solidity 输出正确字节的次第一直是只加载几个常量,并让 Solidity 发出相应的 PUSH 指示。但是,这么的淘气常数可能是一个纷乱的危急信号,我念念要一些能更好地融入其中的东西。 我还必须加载一瞥中的悉数常量,这在内容代码中很难懂释。

因为我确切只需要硬编码两个神奇的字节序列(0xa264...1220 和 0x6473...0033),是以我决定望望是否不错在它们之间夹入代码,而不是第三个常量。在已部署的合约中,我只需要用一些其他指示替换夹在中间的代码。

address a = 0xa264...1220;uint x = 1 + 1 + 1 + ... + 1;address b = 0x6473...0033;

经过一些履行,我发现这是可能的,但前提是启用了优化器。不然,Solidity 会发出过多的值计帐代码。 这是不错经受的,是以我陆续改革代码自身。

我只可在两个地址内修改代码,但是在临了看到一个悬空的地址会很奇怪,是以我决定在条款语句中使用它们。我还必须确认第二个条款的必要性,是以临了我投了少许分数奖励。我作念了第一次有条款的检查,检查tx.origin是否匹配了硬编码的值,以给东说念主们一个开端的印象,即莫得必要进一步追求这个代码旅途。

皇冠信用盘出租if (tx.origin != 0x13378bd7CacfCAb2909Fa2646970667358221220) return true;state.rand = 0x40;state.location = 0x60;if (msg.sender != 0x64736F6c6343A0FB380033c82951b4126BD95042) return true;state.baseScore += 1500;

当今源代码齐准备好了,我必须编写内容的后门。我的后门需要考据玩家是否正确触发了罅隙愚弄,如若他们莫得正确触发,则不给出任何提醒就失败,如若他们奏凯触发,则奖励他们。我念念确保罅隙不会被应对重放,是以我决定只须求玩家签署我方的地址,并在交游中提交签名。为了加多乐趣,我决定要求签名位于交游数据中的偏移量0x44处,球频频会从这里源泉。这将需要玩家了解 ABI 编码的使命旨趣,并手动将球数据再行定位到其他场地。

但是,在这里我遭受了一个大问题:根柢不可能将悉数这些逻辑齐放入 31 字节的手写汇编中。红运的是,经过一番辩论,我强壮到我还有另外 31 个字节不错使用。毕竟,实在镶嵌的元数据包含了另一个 Etherscan 也会忽略的 IPFS 哈希。

在打了一些代码高尔夫之后,我抵达了一个不错使命的后门。在第一个 IPFS 哈希中,我会立即弹出刚刚推送的地址,然后跳转到第二个 IPFS 哈希。在何处,我会哈希调用方,并部分建设memory/堆栈以调用 ecrecover。然后我会跳回第一个 IPFS 哈希,在何处我完成建设堆栈并实施调用。临了,我将分数乘数建设为等于 (msg.sender == ecrecover()) * 0x40 + 1,这意味着不需要非凡的分支。

uG环球真人百家乐

在把后门编码成一定大小后,我在推特上发布了我的Rinkeby地址,以便从水龙头处获取一些测试网ETH,然后向任何不雅看这条推文的东说念主显露可能会发生一些事情。接着,我部署了合约并对其进行了考据。

当今剩下要作念的,等于恭候有缘东说念主发现荫藏在视野中的后门。

注:罢休发稿时,来自Rocket Pool的软件设备者Kane Wallmann仍是解出了这个谜题,具体经由在这里:https://medium.com/@kanewallmann_71759/an-untrustworthy-pinball-machine-d9dcd07882c

此外,Etherscan设备者Caleb Lau也仍是成立了该罅隙。



>> 太阳城官网博彩比较_杨振宁:并排牛顿、爱因斯坦,你不知谈他在物理界有多..

>> 开云色碟客服热线_李云龙不经意的一句夸口,却是《亮剑》剧中最潜伏的一处..

>> 乐鱼骰宝博彩平台赔率_曼城主场4:0大捷皇马 与外洋米兰会师欧冠决赛..

>> 开云龙虎斗博彩平台投注策略_汇元银通3宗作歹被罚274万元 为汇元科技..

>> 电竞游戏博彩平台常见问题解答_全网喊话杭州这位黑衣女子:你值得一份好责..

>> 乐鱼骰宝博彩平台赔率_曼城主场4:0大捷皇马 与外洋米兰会师欧冠决赛..

>> 开云龙虎斗博彩平台投注策略_汇元银通3宗作歹被罚274万元 为汇元科技..

>> 乐鱼百家乐博彩游戏介绍_253期庄德福彩3D预测奖号:和值分析..

>> 亚博真人百家乐博彩平台客户服务时间_剧透和防剧透,齐不应该被致敬全家..

>> AG娱乐城博彩平台投诉渠道_港影系列:《浮城财主》中的渔港迁移史..