web刷题记录(3)

[NISACTF 2022]checkin

简单的get传参,好久没做过这么简单的题了

王德发?????!,看了源代码以后,本来以为是js脚本的问题,但是禁用js脚本没用,看了大佬的wp以后才发现,是有字符被隐藏了,具体推测是因为对高亮的使用,这里第二段注释部分颜色不对。(url通过show_source函数在高亮源代码时按照php.ini中的设置来渲染)

而且,鼠标扫前面,会有后面的代码被同步

这里尝试复制源代码到winhex里面看看。

确实存在,将这些特殊符号用URL编码以后再次进行传参,这里用到的知识点就是特殊字符识别。

payload

ahahahaha=jitanglailo&%E2%80%AE%E2%81%A6%55%67%65%69%77%6F%E2%81%A9%E2%81%A6%63%75%69%73%68%69%79%75%61%6E=%E2%80%AE%E2%81%A6%20%46%6C%61%67%21%E2%81%A9%E2%81%A6%4E%31%53%41%43%54%46

得到了flag

[UUCTF 2022 新生赛]ez_rce

进来就是一个正则啊,看来这题就是各种过滤了·

        这种题我觉得一般就是过滤了平时比较常用的OS命令,然后要用点稍微冷门的命令或者格式来进行绕过。然后这里有就是php的函数以及讲解(PHP中的输出:echo、print、printf、sprintf、print_r和var_dump-腾讯云开发者社区-腾讯云)

然后就是反引号的作用,之前也遇到过,但是没有仔细的考虑过,这里做出介绍:

1.反引号常见在SQL语句中来包含关键字,比如

$sql = "select `user`,username from `Content`";
  此SQL中有反引号,也没有反引号
  
   加上反引号就不会有因为字段是关键字而出错的问题。
  
   为了保险起见,我们建议在所有字段中都加上反引号,即上面的SQL建议写成

$sql = "select `user`,`username` from `Content`";
  
  2.反引号还有种功能是执行系统命令,比如:echo `dir d:\php`;注意,此句中的引号是反引号,而不是单引号。此句在足够权限的系统环境中,将列举D盘PHP目录的一些文件信息。
  
  3.注:反引号位于键盘左边Esc下面,数字1按钮前,Tab上。
  
  4.例如:SELECT `setting` FROM `$tablename` WHERE $where LIMIT 1

        然后呢,这里的命令执行没有过滤 <> ? \/ 所以可以 ?>闭合(这个闭合针对括号也被过滤,但是这里的括号并没有被过滤,所以还是可以用括号进行过滤)

        构造第一步payload:

?code=printf(`l\s `);

这里用var_dump也可以

看一下根目录,找到了和flag有关的文件

查看的话 ,一种是使用被过滤的字符,但是要用到/,还有一种,也可以用没有被过滤的命令,比如rev和nl(这里的rev是逆序输出,所以输出的flag是反的,需要人为改正一下,或者跑个脚本,有兴趣的可以试试,我看了一下,就没有复制上)。这里因为第一种很简单,所以采用第二种来示例:

得到了flag

[SWPUCTF 2022 新生赛]ez_ez_php(revenge)

进来以后,发现应该是和伪协议有关

尝试读取flag.php

应该是读取到了,尝试解码看看

得到了一段php代码,给了关键信息,大概意思应该是说,真正的flag在'/flag'下,不是flag.php下,

尝试修改以后再次读取

成功得到了flag

 [CISCN 2019华东南]Web11

看起来都是比其他题吊一点

看到了提示

根据下面的三张图提示,可以看出是smart ssti,在XFF处构造payload

介绍一下smart

        smart是php的模板引擎,模板引擎的作用就是分离前端页面和数据的,题目中显示API的URL由于环境的原因无法使用,但我们的IP依旧显示在了页面的右上角,且根据它的提示XFF我们很容易想到,在X-Forwarded-For里构造ssti.然后呢ssti,我也写过相关的博客,详细内容,可以在这里找关于ssti(简介)-CSDN博客

         在利用SSTI注入时,在Smarty中一般用{php}{/php}标签来进行包裹执行php语句,在查询wp和一些资料后,得知{php}标签被强烈建议不使用,只有在SmartyBC中可用;

        然后{if}标签和php中的if判断类似,而且可以正常使用php中的函数和符号,不过在使用时,要配上{/if}

        然后是php的没必要去,模板引擎的作用就是分离前端页面和数据的,题目中显示API的URL由于环境的原因无法使用,但我们的IP依旧显示在了页面的右上角,且根据它的提示XFF我们很容易想到,在X-Forwarded-For里构造ssti:payload

        抓包,改xff

 经典${7*7}回显是$49

 进行下一步判断7{*comment*}7

基本可以判断是是Smarty类型,可以开始包裹php语句进行查询了(除了加个{if}标签,还是用的php语句)

找到了flag相关文件,查看

找到了flag

[LitCTF 2023]这是什么?SQL !注一下 !

这个图我都不敢放加载完的

抓包一下,搞sqlmap,时间盲注,布尔盲注

爆库

感觉应该和ctf有关,看看信息

光是用户名的话,可能没什么用,看看另外一个ctf的库里面有什么

运气很好,找到了flag相关信息,接着往下爆破

 爆字段

得到了flag

[HNCTF 2022 Week1]easy_html

提示了cookie里面有东西

 f12查看

 

%2f是url编码,说明这里给了有关文件地址的提示 ,即f14g.php,访问一下看看

让输入手机号,但是位数被限制了,限制到了十位

然后就弹了这个提示

f12改一下位数限制 ,再登陆

得到了flag

[NISACTF 2022]babyupload 

传🐎啊,我最熟了,先上个图片🐎看看·

传不上,看看源码

给了提示,意思是要叫我下个什么东西,看看

zip文件

解压以后里面是个python文件

这里是全部代码

from flask import Flask, request, redirect, g, send_from_directory
import sqlite3
import os
import uuidapp = Flask(__name__)SCHEMA = """CREATE TABLE files (
id text primary key,
path text
);
"""def db():g_db = getattr(g, '_database', None)if g_db is None:g_db = g._database = sqlite3.connect("database.db")return g_db@app.before_first_request
def setup():os.remove("database.db")cur = db().cursor()cur.executescript(SCHEMA)@app.route('/')
def hello_world():return """<!DOCTYPE html>
<html>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">Select image to upload:<input type="file" name="file"><input type="submit" value="Upload File" name="submit">
</form>
<!-- /source -->
</body>
</html>"""@app.route('/source')
def source():return send_from_directory(directory="/var/www/html/", path="www.zip", as_attachment=True)@app.route('/upload', methods=['POST'])
def upload():if 'file' not in request.files:return redirect('/')file = request.files['file']if "." in file.filename:return "Bad filename!", 403conn = db()cur = conn.cursor()uid = uuid.uuid4().hextry:cur.execute("insert into files (id, path) values (?, ?)", (uid, file.filename,))except sqlite3.IntegrityError:return "Duplicate file"conn.commit()file.save('uploads/' + file.filename)return redirect('/file/' + uid)@app.route('/file/<id>')
def file(id):conn = db()cur = conn.cursor()cur.execute("select path from files where id=?", (id,))res = cur.fetchone()if res is None:return "File not found", 404# print(res[0])with open(os.path.join("uploads/", res[0]), "r") as f:return f.read()if __name__ == '__main__':app.run(host='0.0.0.0', port=80)

 

我们直接看最关键的def uploaddef file里的内容,意思是,上传的文件不能有后缀名,且文件名前会拼接一个前缀upload/,使得输出的文件只能是在目录upload/下的,这里就涉及到os.path.join()的绝对路径拼接漏洞:

绝对路径拼接漏洞

os.path.join(path,*paths)函数用于将多个文件路径连接成一个组合的路径。第一个函数通常包含了基础路径,而之后的每个参数被当作组件拼接到基础路径之后。

然而,这个函数有一个少有人知的特性,如果拼接的某个路径以 / 开头,那么包括基础路径在内的所有前缀路径都将被删除,该路径将视为绝对路径,若我们使得res[0]='/flag',则可以读取到根目录下的flag文件,因此利用bp抓包,修改文件名为/flag即可: 

所以若使得res[0]='/flag',则可以读取到根目录下的flag文件,因此利用bp抓包,修改文件名为/flag即可:

得到路径以后,访问即可

得到了flag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/22758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙轻内核M核源码分析系列六 任务及任务调度(2)任务模块

任务是操作系统一个重要的概念&#xff0c;是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源&#xff0c;并独立于其它任务运行。鸿蒙轻内核的任务模块可以给用户提供多个任务&#xff0c;实现任务间的切换&#xff0c;帮助用户管理业务程序流程。…

智慧校园究竟有何魅力?

随着科技的快速发展&#xff0c;智慧校园已成为教育领域的热门话题。智慧校园利用先进的技术手段&#xff0c;将信息化与教育深度融合&#xff0c;为学生、教师和家长提供更便捷、高效的教育服务。本文将带您深入了解智慧校园的魅力&#xff0c;让您对未来教育的发展充满期待。…

Ego微商项目部署(小程序项目)(全网最详细教程)

目录 1.项目部署前的准备 1.1获取APPID和APPSecret&#xff08;微信小程序&#xff09; 1.2测试工具 1.3微信开发者工具下载与安装 2.Ego微商后端项目部署 2.1部署细节流程 2.2部署架构图 2.3组件要求及版本 2.4后台部署操作 2.4.1安装vm和cenos7 2.4.2本地服务检查…

我们如何利用 0 美元营销将 UX/UI 产品发展到 320k 用户

嘿 &#x1f44b; 我是 Paul&#xff0c;FlowMapp 的联合创始人。 现在&#xff0c;我们是一个由7人&#xff08;少数兼职成员&#xff09;组成的团队&#xff0c;试图将产品扩展到$ 1M ARR。 希望这些对您有所帮助&#xff0c;并祝您未来的产品好运&#xff01; 我决定与…

【AI大模型】Transformers大模型库(四):AutoTokenizer

目录​​​​​​​ 一、引言 二、自动分词器&#xff08;AutoTokenizer&#xff09; 2.1 概述 2.2 主要特点 2.3 代码示例 三、总结 一、引言 这里的Transformers指的是huggingface开发的大模型库&#xff0c;为huggingface上数以万计的预训练大模型提供预测、训练等服…

python字符串的进阶

在上一篇文章的 密码破解器 中&#xff0c;我们回顾了循环专题的知识点。 while 循环和 for 循环是 Python 中的两大循环语句&#xff0c;它们都可以实现循环的功能&#xff0c;但在具体使用时略有差别。当循环次数不确定时&#xff0c;我们选用 while 循环&#xff1b;当循环…

【限免】杂波环境下线性调频脉冲、巴克码、频率步进脉冲雷达MTI、脉冲压缩【附MATLAB代码】

文章来源&#xff1a;​微信公众号&#xff1a;EW Frontier/ 智能电磁频谱算法 本代码主要模拟杂波环境&#xff08;飞机、地杂波、鸟类信号&#xff09;下&#xff0c;Chirp脉冲、巴克码脉冲、频率步进脉冲雷达信号的脉冲压缩及MTI、匹配滤波。 MATLAB主代码 % 生成雷达信号…

做任务赚钱的app有哪些?(真实可靠能做任务赚钱软件app推荐)

在数字化时代&#xff0c;通过手机APP做任务赚钱已成为一种流行的兼职方式。这些APP为用户提供了完成小任务以赚取现金或奖励的机会。以下是一些真实可靠的做任务赚钱的APP推荐&#xff0c;帮助您在空闲时间增加收入。 赏帮赚是一个正规的兼职接单赚钱平台&#xff0c;在这个平…

MariaDB数据导入与导出操作演示

文章目录 整个数据库导出导入先删除库然后再导入 参考这里&#xff1a; MariaDB数据库导出导入. 整个数据库 该部分演示&#xff1a;导出数据库&#xff0c;然后重建数据库&#xff0c;并导入数据的整个过程。 导出 Win R &#xff0c;打开运行输入cmd并回车&#xff0c;然…

迅雷极简易下载

一、简介 1、迅雷是一家全球领先的去中心化服务商&#xff0c;以技术构建商业&#xff0c;以服务创造共识&#xff0c;从而建立一个高效可信的存储与传输网络。 迅雷成立于2003年&#xff0c;总部位于中国深圳&#xff0c;2014年于纳斯达克上市&#xff08;纳斯达克股票代码&a…

OPPO 文件传输 - 将文件从 OPPO 手机传输到 PC 的 5 种方法

OPPO手机以其出色的拍照功能而闻名&#xff0c;尤其是新推出的OPPO Find X2系列&#xff0c;它配备了高清前置镜头和超夜景模式&#xff0c;让您轻松拍出精彩瞬间。当您需要将这些照片或其他文件从OPPO手机传输到PC时&#xff0c;以下是五种简便的方法。 第 1 部分&#xff…

UI设计公司-蓝蓝设计-交通行业ui设计解决方案

来百度APP畅享高清图片 这是北京兰亭妙微科技有限公司&#xff08;简称蓝蓝设计&#xff09;在交通行业的一些ui设计经验&#xff0c;我们建立了UI设计分享群&#xff0c;每天会分享国内外的一些优秀设计&#xff0c;如果有兴趣的话&#xff0c;可以进入一起成长学习&#xff0…

电路方案分析(十九)快速响应过流事件检测电路

快速响应过流事件检测电路 1.设计需求2.设计方案3.设计说明4.仿真验证 tips&#xff1a;方案参考来自TI参考设计&#xff0c;仅供学习交流使用。 1.设计需求 2.设计方案 这是一种快速响应单向电流检测解决方案&#xff0c;通常称为过流保护 (OCP)&#xff0c;可提供 < 2μ…

【AI大模型】基于Langchain和Openai借口实现英文翻译中文应用

&#x1f680; 作者 &#xff1a;“大数据小禅” &#x1f680; 文章简介 &#xff1a;本专栏后续将持续更新大模型相关文章&#xff0c;从开发到微调到应用&#xff0c;需要下载好的模型包可私。 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 目…

【python009】Python处理某区域边界经纬度数据至geohash

1.熟悉、梳理、总结项目研发实战中的Python开发日常使用中的问题、知识点等&#xff0c;如Python处理某区域边界经纬度数据至geohash&#xff0c;便于时空交集。 2.欢迎点赞、关注、批评、指正&#xff0c;互三走起来&#xff0c;小手动起来&#xff01; 3.欢迎点赞、关注、批评…

【数据库初阶】SQL--DCL

文章目录 DCL1. 基本介绍2. 用户管理2.1 查询用户2.2 创建用户2.3 修改用户密码2.4 删除用户 3. 权限控制3.1 查询权限3.2 授予权限3.3 撤销权限 4. DCL总结 DCL 更多数据库MySQL系统内容就在以下专栏&#xff1a; 专栏链接&#xff1a;数据库MySQL 1. 基本介绍 DCL英文全称是…

45-3 护网溯源 - 为什么要做溯源工作

官网:CVERC-国家计算机病毒应急处理中心 西工大遭网络攻击再曝细节!13名攻击者身份查明→ (baidu.com) 护网溯源是指通过技术手段追踪网络攻击的来源和行为,其重要性体现在以下几个方面: 安全防御:了解攻击源头可以帮助组织加强网络安全防御,及时采取措施防止攻击的再次…

NXP i.MX8系列平台开发讲解 - 3.14 Linux 之Power Supply子系统(二)

专栏文章目录传送门&#xff1a;返回专栏目录 Hi, 我是你们的老朋友&#xff0c;主要专注于嵌入式软件开发&#xff0c;有兴趣不要忘记点击关注【码思途远】 目录 1. 前言 2. 芯片简介 2. 系统原理设计 2. 设备树相关 本文实操是基于Android11 系统下i.MX8MQ环境下&#x…

代码随想录算法训练营第十三天| 102. 二叉树的层序遍历、226.翻转二叉树、101. 对称二叉树

102. 二叉树的层序遍历 题目链接&#xff1a;102. 二叉树的层序遍历 文档讲解&#xff1a;代码随想录 状态&#xff1a;dfs没写出来&#xff0c;bfs不知道如何分层 import java.util.*;public class BinaryTreeLevelOrderTraversal {// 用于存储每一层的节点值List<List<…