[BUU] 刷题合集0

[

区块链的内容先告一段落,好久没去 buu 刷题了。buu上有的题目太简单,单开写一篇文章不太合适,所以专门开了个合集简单记录一下。 [SUCTF 2019]CheckIn 文件上传,检测头用 GIF89 绕过,.htaccess 在有脏数据情况下不解析,用 .user.ini (不用重启 apache 也能生效)写入图片马并引用。payload: // .user.ini GIF89a auto_prepend_file=a.png auto_append_file=a.png // 1.png <script language="php">echo file_get_contents("/flag");</script> [CISCN2019 华北赛区 Day2 Web1]Hack World fuzz...

FireShell CTF 2020 WP

F

老外的比赛,老菜狗上去看了两眼没啥思路就溜了,照着国外师傅们的 wp 复现一下。 CaaS 在线c语言编译器,会把输入的 C 代码编译成可执行文件,再以下载文件的方式返回。一开始以为是用任意文件下载收集信息,但是由于比赛的所有题目都是 https 无法用 burp 抓包,因此没有具体定位到下载的 url。 国外师傅的做法是利用 C 语言的 #include 直接将 flag 当做头文件包含,由于包含 flag 无法通过编译会报错,因此会直接在前端显示出来。这个操作确实是没想到,学习了。 URL to PDF 看了师傅们的 wp,这个题目主要考点在这里。题目是个提交框,可以提交一个 url 服务器会访问并转成 pdf 以供下载。用自己的 vps 看一下头信息: 是很不常见的 WeasyPrint,根据上面的考点,这个爬虫虽然不会渲染 js,但是却可以解析 <link...

智能合约 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...

Imagin 丨 京ICP备18018700号-1


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