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-腾讯云开发者社区-腾讯云](https://cloud.tencent.com/developer/article/1481475 "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的[模板引擎](https://so.csdn.net/so/search?q=%E6%A8%A1%E6%9D%BF%E5%BC%95%E6%93%8E&spm=1001.2101.3001.7020 "模板引擎"),模板引擎的作用就是分离前端页面和数据的,题目中显示API的URL由于环境的原因无法使用,但我们的IP依旧显示在了页面的右上角,且根据它的提示XFF我们很容易想到,在X-Forwarded-For里构造ssti.然后呢ssti,我也写过相关的博客,详细内容,可以在这里找[关于ssti(简介)-CSDN博客](https://blog.csdn.net/2301_81841047/article/details/138380318?spm=1001.2014.3001.5501 "关于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 uuid app = 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 """
""" @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!", 403 conn = db() cur = conn.cursor() uid = uuid.uuid4().hex try: 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/web刷题记录(3)
关于清词2024-06-09 5:07
相关推荐
花开花落的博客5 分钟前
uniapp 不同路由之间的区别whatever who cares9 分钟前
React 中 useMemo 和 useEffect 的区别(计算与监听方面)老兵发新帖9 分钟前
前端知识-hookt_hj14 分钟前
Ajax的原理和解析蓝婷儿1 小时前
前端面试每日三题 - Day 29小白上线*^_^*1 小时前
Vue——Axios一直在学习的小白~2 小时前
HTML字符串转换为React元素实现gxn_mmf2 小时前
典籍知识问答模块AI问答功能feedbackBug修改+添加对话名称修改功能samroom2 小时前
Webpack基本用法学习总结万能程序员-传康Kk3 小时前
食物数据分析系统vue+flask