智能合约 CTF 入门:ETHERNAUT WRITE UP (完)

还有最后几道题,赶紧刷完,加油冲鸭! Naught Coin 题目要求我们把自己的余额变为0,但是限制了我们使用转账函数,源码: pragma solidity ^0.4.18; import 'zeppelin-solidity/contracts/token/ERC20/StandardToken.sol'; contract NaughtCoin is StandardToken { using SafeMath for uint256; string public constant name = 'NaughtCoin'; string public constant symbol = '0x0'; uint public constant decimals = 18; uint public timeLock = now + 10 years; uint public...

智能合约 CTF 入门:Ethernaut Write Up (2)

立一个 flag,明天之前刷完,刷不完让 Y1ng 师傅女装 23333 Delegation pragma solidity ^0.4.18; contract Delegate { address public owner; function Delegate(address _owner) public { owner = _owner; } function pwn() public { owner = msg.sender; } } contract Delegation { address public owner; Delegate delegate; function Delegation(address _delegateAddress) public { delegate = Delegate(_delegateAddress); owner = msg...

2020_2nd_BJDCTF BlockChain Wp

2

坚固性?! tags: 智能合约的部署等基本操作Solidity uint 上溢出 下载附件,给了题目源码以及地址,审计源码: 首先有个 getFlag() 函数: function getFlag() public view returns (string){ require(balances[msg.sender] > 9999999); return flag; } 很明显需要通过攻击合约让自己的 balance 变大,继续审计其他函数,发现只有 Transfer() 有对 balance 的操作: function Transfer(address[] _addr, uint256 _value) public returns (bool){ uint times = _addr.length; uint256 amount = uint256(times) *...

智能合约 CTF 入门:Ethernaut Write Up

xctf 的区块链题目打的自闭,fjh 师傅推荐了个能刷区块链题目的平台,正好来练练手。 准备工作 首先当然是要科学上网啦,提供服务的一些网站基本没有在国内的,所以先网上冲浪吧。 其次安装 chrome 扩展小狐狸 MetaMask,这个相当于我们的区块链钱包,一般的区块链题目都是部署在 Ropsten 测试网络上,在测试网络我们可以无限白嫖 ETH(最多好像是持有 5 个 ETH),所以安装完成后先要去嫖几个币,记录一下能用的水龙头地址: 网上找了几个目前只有这个可以用 最后就是熟悉下 solidity 的语法,跟 go 差不多,几分钟就可以上手。 Hello Ethernaut 这个题目主要面向初学者,只要完成了上述准备工作能与网站交互即可,用浏览器 F12 开着 console 一顿瞎捣鼓即可过关。payload : contract...

XCTF 高校联盟出题笔记

X

絮絮叨叨 本来没什么思路出题,想着随便构造一个反序列化的题目,就先看了看 php 的魔法方法,其中 __clone() 基本没怎么出过题目,就研究了一下这个方法的特性。 首先,__clone() 触发的条件是本对象被 clone,例如: $someClass = new Class(); $a = clone $someClass; 在 clone 执行后会拷贝一个一模一样的 $someClass 赋值给 $a,这样一来对于需要多次重复对象操作的实际环境(数据库交互等)就可以用 clone 来提高开发效率。 但是 php 的 clone 存在一个feature,假如 $a 中拷贝的 $someClass 的某个属性也是一个对象(简称为子对象),则 $a 实际上是引用的 $someClass 中的子对象(类似 C 中的指针),即如果 $someClass 中含有子对象 $this...

安恒2月月赛 部分wp

easyflask1 打开是个非常熟悉的魔方前端,然后随意 fuzz 一下目录发现存在 ssti,结合题目名猜测是 flask ssti。 url 中过滤了下划线、句号,群里师傅搜到了这个讲如何 bypass 的项目,简单来说就是换一种代码风格,把 a.b 写成 a[‘b’] 的形式,由于本题目没有过滤中括号和引号,因此成功绕过;同时 ssti 需要调用某些魔法方法来支持 rce,因此还得绕过下划线,传别的参数可以绕过。 这个题目不知道是不是设置的问题,只要 url 里有 [\d*] 就直接 500,因此要用 __getitem__ 绕一下。flask 注入也不太熟,以后知道为什么了再回来补。 最后 rce 的 payload:...

2020 GYCTF WP

2

easy_thinking TP6 的一个漏洞,由于网站给所有未登陆的用户也会发 session,而登陆之后服务器会继续用这个 session_id 对用户进行区分,由于这个过程服务器没有检查 session_id 否合法,且在接下来服务的过程中会把 session_id 当做文件名来存储用户信息,这样就为 getshell 提供了可能性。 由于 tp6 还是会判断 session 长度是否合法,因此在未登录状态下将 session 最后四位修改为 .php,登录后在搜索框直接搜索一句话,再访问 /runtime/session/ 即可看到我们写入的一句话。 修改 session_id 用菜刀直接连接,发现 200 无法执行,仔细看一下报错,看起来下一步是要 bypass disable_function,再看看 phpinfo,发现 allow_url_fopen...

[Buu RCE ME]奇奇怪怪的RCE && Bypass disable_function

[

[极客大挑战 2019]RCE ME tags:无数字字母rce、bypass disable_function难度:困难 当时打这个比赛的时候就没做出来,这个题目难点不在于第一步无字母数字的 RCE,而是能命令执行后 getflag 操作。今天偶然看到这个一个学期之前的题,赶紧做了做。 打开网站十分直接地给了源码: <?php error_reporting(0); if(isset($_GET['code'])){ $code=$_GET['code']; if(strlen($code)>40){ die("This is too Long."); } if(preg_match("/[A-Za-z0-9]+/",$code)){ die("NO."); } @eval($code); } else{...

[Buu Easyweb] 盲注踩坑

[

[CISCN2019 总决赛 Day2 Web1]Easyweb tags:备份文件、盲注、文件上传难度:困难 首先打开网页是个登录框,随着登录操作框里的图片似乎会变化,查看源代码发现是调用了 image.php 中的内容。扫一下目录发现 robot.txt,有 .bak 后缀的 php 备份文件,访问 index.php.bak 没东西,试了下 image.php.bak,得到源码: <?php include "config.php"; $id=isset($_GET["id"])?$_GET["id"]:"1"; $path=isset($_GET["path"])?$_GET["path"]:"";...

Imagin 丨 京ICP备18018700号-1


Your sidebar area is currently empty. Hurry up and add some widgets.