【Web】“技能兴鲁”网安赛项wp及完赛感想

2024-02-23 15:20

本文主要是介绍【Web】“技能兴鲁”网安赛项wp及完赛感想,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

0.碎碎念

①日志里的FLAG

②购买FLAG

③一只小蜜蜂

④Better_php


0.碎碎念

今天参加了个人第一次的ctf比赛,感触颇多

中间懵逼过很久,但所幸卡点拿了web ak

最后以20名的成绩踩线进入决赛,感谢队友带飞qwq

简单说几点

①这次比赛让我深刻认识到自己现在果然还是太菜了

②边打边学,现学现卖的能力真的很重要

③或许一些赛题会超出当前能力边界,但此时要学会借鉴前人总结的经验

④卡题的时候不要轻言放弃,柳暗花明拨云见日就在下一刻

⑤日后少说多做,不要浮躁,一点一点落实去学

下面贴出自己的wp

①日志里的FLAG

看到提示flag存在于日志文件中

先确定是什么服务器架构

随便输一个不存在的文件访问,报错回显是nginx

那就简单粗暴直接?path=/var/log/nginx/access.log

但对log有替换过滤

所以双写绕过

?path=/var/lologg/nginx/access.lologg

②购买FLAG

打开是登录,尝试{{7*7}},排除ssti

随便登录进去发现有两种功能

发现购买flag需要一亿积分,那就需要充值

不支持充值?还是弹窗的?

应该是前端拦截(其实想过垂直越权啥的啊哈哈)

想着抓包分析一下,发现貌似是纯前端抓不了,那就有思路了,打开控制台

发现注释了一段代码,细看其实就是充值的代码

 

纯前端的话,直接改,最重要的update_my_value(uname, 1)这个函数

就是充值1积分的函数,用其替换button里现有的函数alert

这里,一个一个加太慢了,把后面数值改一下

update_my_value(uname, 1000000000) 十亿

(经过尝试改太大会溢出,如999999999999999999)

然后刷新就发现钱够了,前去购买,flag在控制台里面

③一只小蜜蜂

这题考的是CMS

是一个bees cms

上网查查历史漏洞,能看到网上最多的利用就是后台登录的sql注入,但是这里出题人故意吧验证码搞没了,那就得换条思路

【代码审计】 beescms 变量覆盖漏洞导致后台登陆绕过分析 | CN-SEC 中文网

这篇文章,就讲了变量覆盖漏洞导致后台登陆绕过

于是:

执行过后直接访问admin后台,成功进入

然后看见进入后台有很多图片上传,照着网上的方法上传,成功了但是文件名字没有给回显,奇奇怪怪,只返回后缀

看了一眼,存在模板页管理修改功能,点开后,点击修改一个模板,发现url路径是这样的

http://vt.jnxl2023.sierting.com:32463/admin/admin_template.php?action=xg&nav=list_tpl&admin_p_nav=langsys&lang=cn&file=

file后面跟着文件,那貌似这里还可以任意文件读取?

这里可以修改模板,可以在页面中添加一句话木马

我这里是在index.php页面中添加的

引号执行有问题,内联执行 echo `cat /flag`;

④Better_php

扫目录扫出index.php.bak

访问

 先进行一波信息搜集

?query=select info from information_schema.`PROCESSLIST`

回显有adca4977cb42016071530fb8888105c7.php

访问

burp抓包看响应的中间件信息,如果是nginx,因为nginx缓存机制,可能存在ld_preload劫持rce,但是中间件版本为apache.

则考虑是否存在其他环境变量劫持,比如经典的bash环境变量劫持.

参考文章:p牛神文

需要一个system触发,通过审计index.php.bak的源码,发现提供了system函数,并且执行了echo.

审计大意就是:

当SQL执行有结果时,则会调用system,在php底层中相当于执行了 ``sh -c echo xxx``

所以这里只需要劫持echo函数就行.

正则表达式过滤了很多函数,但基本都是过滤了查看文件的函数,没有过滤sed ,直接sed p conn* 看到有回显`conn*`的源码,说明存在sed命令,可以读文件

使用正则匹配去匹配f1ag即可

[e-g][0-2]* 会去匹配f1*

所以执行命令 ``sed p /[e-h][0-2]*`` 拿到flag

最终payload:

/adca4977cb42016071530fb8888105c7.php?env[BASH_FUNC_echo()]=(){ sed p /[e-g][0-2]* ; }&query=select info from information_schema.`PROCESSLIST`

这篇关于【Web】“技能兴鲁”网安赛项wp及完赛感想的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/739056

相关文章

Java Web指的是什么

Java Web指的是使用Java技术进行Web开发的一种方式。Java在Web开发领域有着广泛的应用,主要通过Java EE(Enterprise Edition)平台来实现。  主要特点和技术包括: 1. Servlets和JSP:     Servlets 是Java编写的服务器端程序,用于处理客户端请求和生成动态网页内容。     JSP(JavaServer Pages)

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果

JavaWeb【day09】--(Mybatis)

1. Mybatis基础操作 学习完mybatis入门后,我们继续学习mybatis基础操作。 1.1 需求 需求说明: 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。 通过分析以上的页面原型和需求,我们确定了功能列表: 查询 根据主键ID查询 条件查询 新增 更新 删除 根据主键ID删除 根据主键ID批量删除

生信代码入门:从零开始掌握生物信息学编程技能

少走弯路,高效分析;了解生信云,访问 【生信圆桌x生信专用云服务器】 : www.tebteb.cc 介绍 生物信息学是一个高度跨学科的领域,结合了生物学、计算机科学和统计学。随着高通量测序技术的发展,海量的生物数据需要通过编程来进行处理和分析。因此,掌握生信编程技能,成为每一个生物信息学研究者的必备能力。 生信代码入门,旨在帮助初学者从零开始学习生物信息学中的编程基础。通过学习常用

利用Django框架快速构建Web应用:从零到上线

随着互联网的发展,Web应用的需求日益增长,而Django作为一个高级的Python Web框架,以其强大的功能和灵活的架构,成为了众多开发者的选择。本文将指导你如何从零开始使用Django框架构建一个简单的Web应用,并将其部署到线上,让世界看到你的作品。 Django简介 Django是由Adrian Holovaty和Simon Willison于2005年开发的一个开源框架,旨在简

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

构建高性能WEB之HTTP首部优化

0x00 前言 在讨论浏览器优化之前,首先我们先分析下从客户端发起一个HTTP请求到用户接收到响应之间,都发生了什么?知己知彼,才能百战不殆。这也是作为一个WEB开发者,为什么一定要深入学习TCP/IP等网络知识。 0x01 到底发生什么了? 当用户发起一个HTTP请求时,首先客户端将与服务端之间建立TCP连接,成功建立连接后,服务端将对请求进行处理,并对客户端做出响应,响应内容一般包括响应

(javaweb)mysql---DDL

一.数据模型,数据库操作 1.二维表:有行有列 2. 3.客户端连接数据库,发送sql语句给DBMS(数据库管理系统),DBMS创建--以文件夹显示 二.表结构操作--创建 database和schema含义一样。 这样就显示出了之前的内容。